Newstar2024
Newstar2024 个人题解
Newstar2024 个人题解
总排第28名,后续会对web复现 week1 Misc 签到题 公众号发对应内容就可以得到flag Rasterizing Traffic 给的流量包,wireshark导出全部内容,中间的三个flag拼接是假的 ...
前言:总排23,新生赛道11 Round 1 crypto [round1]BREAK e有范围,由于e的范围不算大,可以进行爆破得到e,求出d,解出flag from Crypto.Util.number import * from gmpy2 import invert, gcd p = 112201812592436732390795120344111949417282805598314874949132199714697698933980025001138515893011073823715376332558632580563147885418631793000008453933543935617128269371275964779672888059389120797503550397834151733721290859419396400302434404551112484195071653351729447294368676427327217463094723449293599543541 q = 177020901129489152716203177604566447047904210970788458377477238771801463954823395388149502481778049515384638107090852884561335334330598757905074879935774091890632735202395688784335456371467073899458492800214225585277983419966028073512968573622161412555169766112847647015717557828009246475428909355149575012613 c = 2924474039245207571198784141495689937992753969132480503242933533024162740004938423057237165017818906240932582715571015311615140080805023083962661783117059081563515779040295926885648843373271315827557447038547354198633841318619550200065416569879422309228789074212184023902170629973366868476512892731022218074481334467704848598178703915477912059538625730030159772883926139645914921352787315268142917830673283253131667111029720811149494108036204927030497411599878456477044315081343437693246136153310194047948564341148092314660072088671342677689405603317615027453036593857501070187347664725660962477605859064071664385456 n = p * q phi = (p - 1) * (q - 1) def generate_primes(start, end): primes = [] for num in range(start, end + 1): if isPrime(num): primes.append(num) return primes for e in generate_primes(55555, 66666): if gcd(e, phi) == 1: try: d = invert(e, phi) m = pow(c, d, n) flag = long_to_bytes(m).decode('utf-8') print(f"找到 e = {e}, 解密后的 flag: {flag}") break except ZeroDivisionError: continue # 如果 invert 失败,则继续尝试下一个 e except UnicodeDecodeError: continue # 如果解码失败,则继续尝试下一个 e # YLCTF{fbb6186c-6603-11ef-ba80-deb857dc15be} [round1]signrsa RSA 模数 n1 和 n2 之间有公因子 q,从而使得可以分别对这两个模数进行分解,然后使用对应的私钥对密文进行解密,通过共模攻击解密 ...
个人排名第25,后期就没怎么打了,复盘整理一下。 0基础入门 看完pdf,在群里输入识别码,获得flag 安全杂项 signin 登入网址,按照要求,给luo选择缺勤,其他签到 注意:完成所有要求再提交 ...
Misc Nemophila import base64 print("这里有一个藏宝室,镇守着一个宝箱怪,当你说出正确的口令时,你也就快获得了这个屋子里最至高无上的宝物。") print("提示:宝箱怪只会提示你口令正确与否,请你试试吧!") flag = input('Turn in your guess: ') if len(flag) !=48: print("长度不对!") exit(1) if ord(flag.capitalize()[0]) != 83 or not flag[0].islower(): print("Please try again!") exit(1) if flag[-3:] != "ve}": print("Please try again!") exit(1) if flag.count(chr(95)) != 4: print("Please try again!") exit(1) if base64.b64encode((flag[10:13]+flag[28:31]).encode('utf-8')).decode() != 'RnJpSGlt': print("Please try again!") exit(1) if int(flag[24:26]) > 10 and int(flag[24:26]) < 20 and pow(int(flag[24:26]),2,5) != 0: print("好像有点不对!") exit(1) number = flag[33] + flag[41] + flag[43:45] if int(number) * 9_27 != 1028970 and not number.isnumeric(): print("还是不对呢!") exit(1) if flag[35:41].replace("e", "1") != "1t1rna": print("Please try again!") exit(1) if flag[31:33].swapcase() != "ME": print("这不是我!") exit(1) if list(map(len,flag.split("_"))) != [6, 12, 14, 7, 5] and list(map(len,flag.split("&"))) != [17, 9, 20]: print("换个顺序!") exit(1) if ord(min(flag[:2].swapcase())) != 69: print("Please try again!") exit(1) if flag[2] + flag[4:6] != "cet4"[:3]: print("我不想考四级!") exit(1) new="" for i in flag[7:10] + flag[18] + flag[26]: new += chr(ord(i) + 1) if new != "jt|Df": print("Please try again!") exit(1) if "SunR" in flag and "eren" in flag: print("好像对了!可以先去试试!") exit(1) print("恭喜你~发现了上个世纪的秘密~快去向冒险家协会索要报酬吧!") exp ...