TJU D.I.E选拔赛 WP
Web
Warmup
Crypto
Paillier的考试
查了查Paillier同态加密算法
试了试这个快速生成密钥是错的。。。必须得手动算
好在伟大GOOGLE
直接算lambda和miu就可以得出结果
首先得到pq,然后顺水推舟了
1 | from Crypto.Util.number import * |
Misc
ASCII&BIN
知识点:二进制ASCII码

二进制ASCII码
根据提示 56/8 = 7
可读的ASCII码都是0开头,补零(如果直接转问题不大)
crc
知识点:png图片crc参数修改
下载后是png的一张图
mac能打开,linux不能打开,判断是参数破坏,010editor打开
参考文档:https://blog.csdn.net/joqian/article/details/8290389
129cb69b就是crc,跑python
1 | #!/usr/bin/python |
得到 i = 0x1c7 j = 0x175
改写后保存即得flag
霍乱时期的CTF
知识点:zip 明文攻击 docx隐写
下载后是一个压缩包
有一个未加密text.txt大小相同,可以利用明文攻击
“已知明文攻击”的概念和原理
我们为zip压缩文件所设定的密码,首先被转换成3个32bit的key,所以可能的key的组合是2^96,这是个天文数字,如果用暴力穷举的方式是不太可能的,除非你的密码比较短或者有个厉害的字典。压缩软件用这3个key加密所有包中的文件,也就是说,所有文件的key是一样的,如果我们能够找到这个key,就能解开所有的文件。如果我们找到加密压缩包中的任意一个文件,这个文件和压缩包里的文件是一样的,我们把这个文件用同样的压缩软件同样的压缩方式进行无密码的压缩,得到的文件就是我们的Known plaintext(已知明文)。用这个无密码的压缩包和有密码的压缩包进行比较,分析两个包中相同的那个文件,抽取出两个文件的不同点,就是那3个key了,如此就能得到key。两个相同文件在压缩包中的字节数应该相差12个byte,就是那3个key了。虽然我们还是无法通过这个key还原出密码,但是我们已经可以用这个key解开所有的文件,所以已经满足我们的要求了,毕竟对我们而言,得到解压后的文件比得到密码本身更重要。
拉出来发现txt里是7z的介绍

那么直接用7z压缩txt(不加密),用AZPR进行明文攻击
几分钟后停止就破解成功了。。。我等了一个小时以为解不完
然后会让你保存一个新的zip,解压那一个就得到了docx文件
打开后发现是霍乱时期的爱情。。。没看到flag,工具选项里勾选上隐藏文字,在文末发现了莫斯密码
Reverse
baby_re
知识点:读代码 动态调试
拖到kali里面,运行,是输入一个什么东西
ida打开ELF
是明文比较,直接动态调试(懒得读代码),网上教程很多~(这可比安卓的简单些)
到断点后在debugger的view里打开locals
base
知识点:字符串查找,base64
法1:动态调试
法2:shift + F12打开字符串面板
看到base64密钥和密文,但是密钥是63位的根据规律是qwer4连,前添一个Q,得到flag
maze
知识点:迷宫 读代码
发现一些条件,最后符合条件才能胜利
int ar[] = {11, 13, 14, 15, 21, 23, 25, 26, 27, 28, 31, 32, 33};
v4开始是11最后是28,这算是很简单的迷宫了,而且根据条件,v4不会-1,如果v7等于0就-10,等于1就+1,其他就是+10,直接看出来是“xx110011x111”但是不知道x是什么,在程序里x可以随便输都能过关,去提交了几遍发现就是2
得到flag: tjuCTF{221100112111}