介绍
DefconQuals2019,难题基本不会,做了几道简单的speedrun08、speedrun09
speedrun08
同04,查引用找到主要逻辑,很明显的溢出,但是开了canary,所以不能直接打。
然后我们注意到,在init_array中有个函数sub_400B4D,读入了flag,并根据flag的值修改了canary,经测试,canary的值只和flag有关且固定。
我们还注意到一点,在程序输入完,结束的时候会输出”Peace out.”,所以我们可以爆破canary,如果程序没有最后的输出”Peace out.”,则代表canary错误。
爆破出canary之后,构造rop即可getshell。
speedrun09
非常简单的一道题,很明显的格式化字符串和栈溢出。同时还是动态编译的。
格式化字符串漏洞泄露信息,然后栈溢出跳onegadget即可。
脚本
1 | from pwn import * |
1 | #!/usr/bin/env python2 |
1 | #!/usr/bin/env python2 |