text = b'' for chunk inrange(3): intermedia = [0] * 16 for i inrange(1, 16 + 1): for j inrange(256): intermedia[-i] = j iv = [i] * 16 for k inrange(16): iv[k] ^= intermedia[k] result = get(iv + groups[chunk + 1]) print('{:3d} => {}'.format(j, result)) if result == 'False': break print(intermedia) text += strxor(bytes(intermedia), bytes(groups[chunk])) print(unpad(text))
whilenot q.empty(): now, father, path, visited = q.get() if now == 'last': print(len(path), path) continue
for key, next_name in get_next(now): if next_name in visited: continue visited_copy = visited.copy() visited_copy.add(next_name) q.put((next_name, now, path + key, visited_copy))
advanced_dfs()
拿所有输出爆本地服务器:
1 2 3 4 5 6 7
# dat='''上边IDA-Python的输出''' import requests for i in dat.split("\n"): r=requests.get("http://ip:1447/?flag="+i.split(" ")[1]) if ("flag{"in r.text): print(r.text) print(i)
在所有结果中跑出了正确的那个
1 2 3 4 5
[debug]: verify(374) flag!!!<br>int(0) SUCCESS <br><br>win! your flag is: flag{4ed4c7872f71240d75624ff04d25631f} 374 FSTVHUReZ13z9UYDNTwDUwJSAFjPEUbs1oii61Q79GZnqWoIMu4W8e6n6iy9oi9ElOcRKA8yMwRjJblt5xu5KOBOc3XBOPM3VDFrihROOMpjPs4ZevQrDmkppC74k2XjzqbiJkMuVHeq8iVWWyiw9W0glTEth348odMbKTABtjoZEE94uqQomly4emxwKLZyPsMPCUXyFmacSXFebwIZmbHBDaRw0AAKMEVpbaIFV3p57WiTsbDkey1UL4LBttYIH4BXQZJ51p7hjRdW8yo6WH33XROfXnFpYBP44wkRJhxQHWGVDdmluUTEHDu0DdhsDCghrGqrBoZIJttSwrIjisxdeBtj5A6Ch2LKkanHNguUefegZrqVCo
from math import gcd from Crypto.Util.number import long_to_bytes
q = 159525841996122259638149337206281835567662617929665920269309853980712285666023866332657448035118551608001550994903698308487351441079422360280138462655773347141043597936907238815312380200758714954107355308055568297512583285577797251677925038300853004432614390391636707991425386888624638839063346101278704535117 p = 103688092798943310982647402600171114966652177364073806894252414673051932505190807013641061853384728919598237520908212107621239686924781921343629185171175594445990343702682252985633398911055809553488617609113015580598645062510893878938013992487439634057319597008364777435777902433026095622460842345150901944567
n = 1715097516831775561161353747739509313962850384763754284193603064705990003183954750857689649540587082555847904377918426763475079170697690469267290454724999354302036981034615698694153403754870938739225201770934147845874793740053505575413463153429315475539039712818850905666950096326806695688446947957198050957270336443016980023115464136303403780696015358461369838964806435293267645492940773964907954737849962270208167145137818071024789445448292917016422004351584109968952746852305729861258178402122017513103311904147173869605944992973485253275501741635308107788593258463591060922145241960065862813218690280146883588390356662245698217956617720339878472430817614915509896516775918109916920083183701011823993137753987826242193055167215287839864164955881557719443664876504155709359476375455266912247205663953373944852046907623883953483708248467223346798885142046228485310724692353541792975390854356153906879056788972704718688261213 x = 13693034247131001247611357013365838905472128629161269384100755984286945944986882779020879733934334461215591081830359749241927901759168319107452036275703768755532293338513836146556306490425526394420440685291299327486258632666082657664827474947846307949205548526817689180357262646108048851554962291154624349603853599623877095789135051759890435127891210971940795915429197420232561510826760487552089621705187244655827668509013761027910519038664267576214742561936826964572261315984043602119812357324667105678247267841445497640859880436819217418374184256023378843611198818733281625017307272013394628328908242726204785568269 c = 1207106262178445359018459948589897274651891185968586806427714234447059397099330669443037189913958678506147447588787686432870791586266645067569198511010947847769438531195366288233395081813524859121328300315116211130908169351354477893647936383056584771268247471788727296968981371535384241445434057942795625350351461517179136190258136244456887118978348223420158887403238429201791427682781494296473806409015961385580794909106746874670027369932286414096790928966277930586468864071103687837936910843559150279603968747213779555572156135983177121194768041838538456267670795923361920648635769732101772513407467158904982779342496410211785417729464008786654808126619152228029357660596380038858050797654917902576424059433048290426186067840363899227577713800670585547473870112798624948349947633855963137174688403113603549470708467306886181387445601800049442519922530086418265660642841544022198981442640591637598035257382429976435264690303
assert n == p * p * q
e = 65537 phi = p * (p - 1) * (q - 1) d = pow(e, -1, phi) m = pow(c, d, n) print(long_to_bytes(m))
raise Exception()
r = n * x - 1 while r % 2 == 0: r //= 2
w = 3793879 w = pow(w, r, n) v = pow(w, 2, n) while v != 1: w = v v = pow(w, 2, n) if gcd(w - 1, n) != 1: print(gcd(w - 1, n)) if gcd(w + 1, n) != 1: print(gcd(w + 1, n))
s = json.load(open("e:\\desk\\2.json", "r", encoding="utf8")) d = ['*'for _ inrange(99)] for i in s: try: r = i['_source']['layers']['iec60870_asdu'].keys() for j in r: if"IOA"in j: dat = i['_source']['layers']['iec60870_asdu'][j] idx = int(dat['iec60870_asdu.ioa']) c = chr(int(dat["iec60870_asdu.bcr.count"])) print(dat) if d[idx] != "*"and d[idx] != c: raise Exception("FUCK") if dat['iec60870_asdu.bcr.iv'] != '1': d[idx] = c except KeyError: pass