CTF萌新赛-re_signin解题思路分享
前言心得总结
此题目是考点是冒泡法排序,根据分析代码中的等式逻辑,计算出flag。
- 下载题目
1、下载ZIP压缩包,具体如下图
- 点击“View Hint”,获得提示“冒泡排序次数”,具体如下图
- 分析过程
根据提示“冒泡排序次数”,此题目大概率是计算冒泡排序的次数得到flag,具体操作还需要根据下载下来的代码进行分析。
三、解题过程和结果
1、反编译
解压以后的文件为flag.pyc,经过反编译后得到flag.py,具体反编译指令如下
uncompyle6 D:\ctf\learn\web\001re_signin\so_ez_re\flag.pyc > D:\ctf\learn\web\001re_signin\so_ez_re\flag.py
2、分析冒泡排序原理
分析一下,这个代码就一个冒泡排序,然后当count==c[t]的时候,C[t]是ord(flag)得到的,所以当count与ord(flag[i])相等的时候输出,根据描述count is times,结合那个flag.txt的内容,可以知道就是将每行拿去冒泡排序并计算排序次数,就可以得到flag了,具体代码如下图:
运行好后的到如下结果:
synt{jrypbzr_gb_arjfpgs
3、Rot13解密
看到synt的时候,首先想到跟flag的位数一样,应该经过古典的加密方法,优先使用Rot13解密后得到如下结果:
密文:
synt{jrypbzr_gb_arjfpgs
Rot13解密后的原文:
flag{welcome_to_newsctf
4、最终flag
看到解密结果为flag{welcome_to_newsctf,补充一下最后边的},得到最终的flag为flag{welcome_to_newsctf} 。
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录