看雪2022 KCTF 秋季赛 | 第九题设计思路及解析
2022-12-8 18:7:22
Author: 看雪学苑(查看原文)
阅读量:7
收藏
看雪 2022 KCTF秋季赛 已于11月15日中午12点正式开始!比赛延续上一届的模式并进行优化,对每道题设置了难度值、火力值、精致度等多类积分,用规则引导题目的难度和趣味度。大家请注意:签到题(https://ctf.pediy.com/game-season_fight-216.htm)将持续开放,整个比赛期间均可提交答案,获得积分哦~
今天中午12点,第九题《乡绅压迫》已经关闭答题通道。此题一共持续了4天,最终没有战队成功提交flag。战队成员id:T_N_T、Rt1Text、et232e、F@rewell、aa747由于作者用的云影解密工具有bug,其运算结果与系统编码有关,导致作者计算出来的结果出错,这样正确的云隐解密,就得不到flag。因此这题无解,直接会影响此题成绩和排名。
此题无人提交解析,以下是出题作者自己在电脑上的分析过程,仅供参考。
首先解压密码包含a中文,如果用mac自带的解压是不行的,这里推荐使用bandizip。用010edit打开首先头部发现全局加密位是没有加密的,所以很明显是伪加密,查找504b0102的第五位加密位,把09改成08即可正常解压。全部为数字但是是0-9,排除ascii或者16进制,常规base解密也不考虑在内。熟悉密码学的应该会知道是云影解密。解出来的结果可以发现全是大写的英文字母加数字组合就想到base32解密。Base32之后明显是JJEncode特征,故用JJEncode解密。得到的字符串用一键解码工具可以发现只有艾特巴什码解密解出来的内容在ascii范围内,所以判定艾特巴什码解密。同样是全大写字母组合,尝试使用base32解出内容,得到Unicode特征。c1= 15607899289774752607745060640112255709584348056319300169675827088066545531052329055212475749916522602075087343995012560136522770780008169510716823289397779568651449463933095364917494301536008284214773203125839428300473218398961860575001550880707751765747943049845939343166556794908700384135165292528213058360224609924346188052068611879008421630442049699706199303391008331070479964099095091480815178325456657676154336417367846398480026498036542713756446773399794078872111383965893801785321378587638392345479643544976155845219551980902853316127518000204650028086944700122652612590911024559523635338190707554814200380486改后缀为liyou.exe运行输入ascii字符发现明显python应用的特征提示class ‘str’是个字符串,放入ida里面查看字符串也能明显发现python特征。提示class ‘str’是个字符串,放入ida里面查看字符串也能明显发现python特征:(3) 使用pydumpck可汇编出python源代码(pydumpck可在github下载,使用方法:pydumpck xxx.exe)010edit发现这是真加密,文件名是498把他当作前坠爆破数字(或者直接爆破数字即可)首先第二个文件名same to就是bao.7z的密码,解压后如下:NewFile.txt.zip使用010edit同理是伪加密。很明显在base85b范围内,使用base一键解密脚本或者每一层尝试base解密最后是:n= 26224780915746061171356900429211732907894133411825479719182498123964593046336645332186203017329096536728059066689042858165122989786178704838192642452809207585702043097467928891461018275353250786973471650494194372733779805807489907702141929843845278434884845352669740952041282423301305382858988793901043066209319303541040768595770413615909193635343887983001348320031799793442749287722273494363072729567998654591480541261852992180312943525820070353921502978892785291668530018272413373333023152500812351061427484075521491773070096927124526178143538470265400525381556167325594691165766654450050879959570189329514244646397共模攻击即用两个及以上的公钥(n,e)来加密同一条信息m根据扩展欧几里德算法,对于不完全为 0 的整数 a,b,gcd(a,b)表示 a,b 的最大公约数。那么一定存在整数x,y 使得 gcd(a,b)=ax+by因为e1和e2为正整数,所以s1、s2皆为整数,但是一正一负,此时假设s1为正数,s2为负数。通过脚本解出最后的flag
c1,c2,n,e1= 15607899289774752607745060640112255709584348056319300169675827088066545531052329055212475749916522602075087343995012560136522770780008169510716823289397779568651449463933095364917494301536008284214773203125839428300473218398961860575001550880707751765747943049845939343166556794908700384135165292528213058360224609924346188052068611879008421630442049699706199303391008331070479964099095091480815178325456657676154336417367846398480026498036542713756446773399794078872111383965893801785321378587638392345479643544976155845219551980902853316127518000204650028086944700122652612590911024559523635338190707554814200380486,9912145489658329063703116908130176375055506252353090158015020311359292968312531569743161728224569782005722216681399507818161788920830081064374252569718505004306324849118122179373113040412359784788890801415154852860588871824968417755511278333566988728360648915665920705782006580503622949713412004783709159110938297766541761012806638519144120185871912223675579905285601415931229013786735966073876266949856675319002370156239251410963101700078457935458560924743822548840463104683307540166435054824255359755162675074962666533368293982884206605526505018027277728046653165275392280548209270327864691747721570633243796277571,26224780915746061171356900429211732907894133411825479719182498123964593046336645332186203017329096536728059066689042858165122989786178704838192642452809207585702043097467928891461018275353250786973471650494194372733779805807489907702141929843845278434884845352669740952041282423301305382858988793901043066209319303541040768595770413615909193635343887983001348320031799793442749287722273494363072729567998654591480541261852992180312943525820070353921502978892785291668530018272413373333023152500812351061427484075521491773070096927124526178143538470265400525381556167325594691165766654450050879959570189329514244646397,2333defgongmo(e1,e2,c1,c2,n):e1, e2, c1, c2, n=int(e1),int(e2),int(c1),int(c2),int(n)m = (pow(c1,s1,n) * pow(c2 ,s2 ,n)) % nm = gongmo(e1,e2,c1,c2,n)print(libnum.n2s(int(m)).decode())flag{6ed4c74e022cb18c8039e96de93aa9ce}https://ctf.pediy.com/game-season_fight-225.htm欢迎参赛或围观
文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458486839&idx=1&sn=040769b72d597c6ad82456d92362d693&chksm=b18eb8bd86f931abea882268dfea12dc39f701af16821cbce9a1925e4147e1d4b907a5118055#rd
如有侵权请联系:admin#unsafe.sh