帕鲁杯wp
MISC
MISC-签到
- 给了个文本
- 还给了个提示:
- A什么码
- 中文的A什么码
- 比赛的时候还一脸懵,结果看赛后wp,竟然中文也有asicc码,难绷,直接Python一把梭
1 | 27880 |
1 | s = '''27880 |
江
- 题目

- 题目给了个图片,搜索店名得到

1 | flag{湖北省武汉市江汉二路与江汉路步行街交叉路口} |
Crypto
Crypto-签到
- 题目

- nc进去得到

1 | c: 38478719731456920254584229193195504721267806083622874429885761346123119637467296552401249903011711712278965100132294859648217698057571573068034404537319685057454141160369595161460764219533558882338917673834773396449511689811007680636283289180782460840261693504283947872469616316457812072732251884997891935383 |
- 简单的分解n的题目,况且p都已经知道了

- exp:
1 | import libnum |
两元钱的铜匠
- 没数论基础,现代密码有只会一些基础的,太灵活的不会
玛卡巴卡有什么坏心思呢
- 当时搜了一下玛卡巴卡解密,结果没有,没想到在github上
Add files via upload · ChinaRan0/Drt-AAV@8f42d48 (github.com)
- 看wp抄的脚本
1 | def decode_message(encoded_message, encoding_rules): |
PWN
- 赛后复现
Palu
- 当时看这题,以为挺复杂的,结果一看是格式化字符串漏洞,并且开了canary保护。一些复杂的加密解密算法看不懂也能写这题。
- 查看题目附件,给了三个文件,分别是ld文件、so文件和Palu文件

checksec
- 习惯性的先checksec文件一下,看看保护
- 发现没开RELRO和PIE保护,开启了NX和Canary保护

运行程序
- 发现有三个输入点

IDA分析
- 查看main函数


- 查看palu64_decode函数,发现有个gift

- 再查看palu64_encode,没啥发现,就一堆算法的代码

思路
- 在输入点1和输入点2按照要求输入
- 在输入点3输入
Palu得到其解码 - 将解码复制进exp里面
- 在输入点1进行格式化字符串漏洞,泄露canary的值,和返回地址
- 在输入点2中输入
2.,输入加密后的Palu,得到gift,然后Canary绕过 - 最后在ROP链
解题
- 运行程序,得到Palu加密后的数据
UGFsdQ==

- 然后构造输入

- gdb动调,利用格式化字符串漏洞得到正确的libc_main的地址和Canary的值,并且进行接收

- 剩下的就是ret2libc+canary绕过了
- gdb动调计算libc的基址

- exp:
1 | from pwn import * |
复现问题
- 发现对patchelf不是很会,没搞明白,导致计算libc基址的时候出现错误,打很久都打不出来。最后还是看了一下别人wp才知道是要减去
240 - canary绕过第一次做到,通过泄露canary的值,然后在进行栈溢出的时候,在存储canary值的位置原样输入canary的值,再溢出到返回地址,进而绕过canary
应急响应
题目1
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 iyheart的博客!

