0.前言
第三周的受苦。
1.CRYPTO
1-1.Block Cipher
不会。
1-2.Multi Prime RSA
这题主要是考欧拉函数求逆元。
task.py的源码如下:
1 | from Crypto.Util.number import getPrime |
由n的推导可求出phi_n。
完整的脚本如下:
1 | from primefac import * |
运行可得到flag。
1-3.RSA Attack 3
经典wiener攻击。
task.py的源码如下:
1 | from Crypto.Util.number import getPrime |
从github下载的脚本经过一些修改可以破解出d:
1 | import ContinuedFractions, Arithmetic, RSAvulnerableKeyGenerator |
之后按普通的RSA解即可:
1 | d=13094612077654083919 |
2.IoT
2-1.饭卡的UNO2.0
不会。
3.MISC
3-1.卡中毒
经典的内存取证,不难。
先查看内存镜像信息:
直接查找含flag的文件:
提取内存文件:
查看后发现一堆乱码:
搜索可疑的拓展名后发现这个文件被一种勒索病毒感染,所幸病毒作者公布了解密密钥,因此可以找到恢复的工具。
恢复后打开:
拿去解密即可得到flag。
3-2.谁不喜欢猫猫呢
像素点隐写,提取出来后就不会了(
4.PWN
4-1.changeable_note
考的是unlink,但是不会。
4-2.elder_note
简单常见的fastbin attack,经典的菜单题,libc很好心地给了2.23。
由于free函数释放堆块后未清空指针,因此存在UAF,又由于没有edit函数,因此考虑double free。
直接上exp:
1 | #!/usr/bin/env python |
4-3.sized_note
考的是offbyone,但不会(
5.REVERSE
5-1.Answer’s Windows
不会。
5-2.creakme3
不会。
5-3.hardened
不会。
5-4.fishman
不会。
6.WEB
6-1.SecurityCenter
不会。
6-2.Vidar shop demo
存在逻辑漏洞,删除订单即可返回钱。
因此考虑未支付删除订单,修改表单发包即可。
可以看到余额多了10000:
再下单购买一个10000元的flag即可。
6-3.LoginMe
不会。