
下载文件后首先查看保护,发现可以进行栈溢出攻击

将文件拖入32位ida

进入vulnerable_function后,发现了read处有栈溢出漏洞

在查看代码后,发现没有提供system和bin/sh,但是由于给了libc,所以可以找到libc的偏移量,然后计算出system和bin/sh的加载地址。
对于plt表,got表,实际加载地址,我是这么理解的:通过elf.plt['write']获取到的是write在plt表中的地址1,这个地址1上存放的实际内容是write在got表的地址2,而这个地址2存放的是lib中write的实际加载地址3。

本文详细介绍了如何分析一个32位程序的栈溢出漏洞,通过ida查看代码发现缺少system和bin/sh,但提供了libc。通过理解plt表和got表的工作原理,计算libc的偏移量,实现两次栈溢出:第一次获取write的实际加载地址,计算system和bin/sh地址,第二次调用system执行shell。最后展示了攻击脚本的编写和攻击过程。
最低0.47元/天 解锁文章
1644

被折叠的 条评论
为什么被折叠?



