Pwnable.kr 题目总结记录
复制本地路径 | 在线编辑
这是我之前做 pwnable.kr 的一些题目记录,当时是本科快毕业前,疫情在家做了一些,然后读研的时候,上半学期也做了不少,后面就没太做了。
简单题目摘要
大部分是[Toddle's Bottle]的题目,也有一些[Rookiss]里我感觉比较简单可以用一两句话总结的题目。
- 知道加壳的程序是长什么样:完全很乱,没有
main方法,去壳加壳命令:upx rand()随机数如果没有srand(),默认种子为 1,所以会被直接暴力破解rand()随机数如果为srand(time(0)),可以通过获取当前时间暴力破解,具体方式查询Python那个记录XXM 寄存器&&movntps需要地址 0x10 对齐- 遇到
fopen,fclose返回值没有处理的,尝试使用ulimit -f 0,这样会使文件写入大小为 0,无法写入内容 - 一般来说,一个程序的
canary是始终一致的,也就是其各个函数的canary都是一样的。
题目总结
| 题目 | 总结 | 情况 |
|---|---|---|
fd |
水题 | |
collision |
水题 | |
bof |
水题 | |
flag |
水题,初步了解了什么是加壳去壳 | |
passcode |
好题,一是如何输入不可打印字符,二是对函数并列要敏感一些 | 05.passcode.md |
random |
水题,只要知道 (2, 3) | |
input |
好题,非常能够帮助理解 C++ 的一些特性 | 07.input.md |
leg |
好题,非常能够帮助理解 ARM 汇编 | 08.leg.md |
mistake |
水题,就是将 C++ 运算符优先级,关键还不好看出来,太坑 | |
shellshock |
水题,就是一个简单已发布的bash漏洞 |
|
coin1 |
水题,就是用 Python 写个二分算法即可 | |
blackjack |
水题,就是尝试输入负数找到漏洞 | |
lotto |
水题 | |
cmd1 |
中等,处理命令行过滤系列 | 14.cmd1.md |
cmd2 |
中等,处理命令行过滤系列 | 15.cmd2.md |
uaf |
中等,C++ 虚函数 | 16.uaf.md |
memcpy |
中等,只要知道 (4) | |
asm |
水题,写汇编,使用shellcraft即可 |
|
unlink |
好题,需要总结 | 19.unlink.pdf |
blukat |
水题 | |
horcruxes |
中等偏下,没什么特别的技术 | |
brainfuck |
好题,需要总结 | 22.brain_fuck.md |
md5 calculator |
中等,需要知道 (6)(3) | |
simple login |
好题,Control ebp,control the world | |
otp |
水题,只要知道 (5) | |
ascii_easy |
水题,里面用了奇技淫巧,现实生活应该用不到,不过还是记录一下 | 26.ascii_easy.md |
tiny_easy |
好题,首先记录题解,然后是 debug 过程,最后是 pwntools 的注意点 | 27.tiny_easy.md |
fsb |
中等,但是需要总结一下 FSB 的利用方式 | 39.fsb.md |
dragon |
水题,是程序逻辑上的漏洞,也算是第一次遇到吧 | |
fix |
中等,但是需要总结一下出错的原因,输入理解汇编代码执行原理 | 30.fix.md |
syscall |
好题,内核权限提升题,需要写一下 | 31.syscall.md |
crypto1 |
中等,只要把找到的 AES 讲解记录一下就好 | 32.crypto1.md |
echo1 |
水题,缓冲区溢出而已 | |
echo2 |
中题,我竟然直接用缓冲区单独就做出来了,可以记录一下 | 34.echo2.md |
rsa calculator |
好题,我竟然也是直接用缓冲区单独就做出来了,有好几种做法 | 33.rsa_calc.md |
note |
好题,太精美的题目 | 35.note.md |
alloca |
好题,首先要说 alloca 是什么,然后我的想法为什么不对 | 36.alloca.md |
loveletter |
中等,我就不应该看题解的,这种自己可以做出来的就不要看题解!! | 37.loveletter.md |
rootkit |
好题,需要写几篇相关文章 | 38.rootkit.md |
dos4fun |
好题,必须好题啊,没做出来! | TODO |
ascii |
好题,主要就是可打印的写法,竟然我自己就写出来了,还有使用到了 VDSO | 40.ascii.md |
aeg |
好题,首先是 angr 使用,然后就是这道题的做法步骤了 | 41.aeg.md |
coin2 |
中等,转成经典的毒药问题这种思想非常值得借鉴 | |
maze |
好题,主要是有一个多重 if 语句要强调一下,然后就是思路利用 | 43.maze.md |
wtf |
水题,就一个难点,父子进程的缓冲区变量问题 | |
sudoku |
水题,简单的算法题目 | |
starcraft |
好题,必须好题啊,必须要全过程写一遍,有很多综合点 | 46.starcraft.md |
cmd3 |
中等, 处理命令行过滤 系列 | 47.cmd3.md |
elf |
好题,同样需要把思路写一遍,属于回头看也很有收获的那种 | 48.elf.md |
lfh |
好题,一天半完成,主要是调试思路可以写一下 | TODO |
asg |
好题,必须要记录的题目 | 50.asg.md |
exploitable |
水题,直接 one_gadage 就可以了,就这就这就这? | |
unexploitable |
水题,两种方法都很简单,一种是常规思路,一种是 SROP | TODO |
目前的问题
- dos4fun 这个就相当于没做出来
- 如何输入不可见字符
STDIN@GLIBC2.0是什么