writeup_level2_pwn
writeup_level2_pwn
属于是level0的升级版,没啥可查的,直接ida:
可以看到,依然是有缓冲区溢出漏洞的一个函数,buf数组的大小转换成十六进制也就0x88,却能读入0x100的数据。
依然是通过溢出,对函数的返回地址进行覆盖:
进入调用函数system,然而system函数需要一个参数的地址(即/bin/sh)字符串的地址,我们没有该字符串,无法虚空调用,只能在程序的字符串列表中进行寻找:
view-subview-string可以看到系统贴心的准备了:
现在我们就可以在调用_system
函数时,通过缓冲区的覆盖把字符串的地址也提前覆盖进去:
创作一下脚本:
行!
cyberpeace{40fb2960396105316b3733bd0c6cf1fd}
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.