攻防世界PWN题——level0
嘿嘿,又是我,我又肥来了。今天带来的是攻防世界第三题的writeup,这次话不多说,我们直接进入主题。无论怎么样,pwn题前两步少不了——查看文件类型和保护类型:64位linux操作系统,只开了NX保护,再打开IDA看看。将Hello,World显示到屏幕上,再点开函数看看:可以看到,buf是分配了80个字节(从rbp-80-rbp+0),但是read函数读入了0x200字节,因此,这里明显有栈溢
·
嘿嘿,又是我,我又肥来了。今天带来的是攻防世界第三题的writeup,这次话不多说,我们直接进入主题。
无论怎么样,pwn题前两步少不了——查看文件类型和保护类型:
64位linux操作系统,只开了NX保护,再打开IDA看看。
将Hello,World显示到屏幕上,再点开函数看看:
可以看到,buf是分配了80个字节(从rbp-80-rbp+0) ,但是read函数读入了0x200字节,因此,这里明显有栈溢出,再点开buff看看:
可以看到,我们只需要将buf和s覆盖,也就是覆盖88个字节,再将下一条指令地址修改成获取flag的地址就好了,但是我怎么知道,获取flag的地址在哪?(r是存储下一条指令的寄存器吧) ,请继续看IDA:
可以看到,获取权限的函数在这,即只需要把下一条指令的地址改写到这即可,再查看该函数地址:
0x400596,至此,我们便可以写出exp:
运行可得:
呼~终于写完了,好饿,吃饭饭去了,溜了溜了。
更多推荐
已为社区贡献1条内容
所有评论(0)