【发布时间】:2012-07-18 04:50:03
【问题描述】:
最近我正在用我的 Ubuntu11.10 在论文 Bypassing non-executable-stack during exploitation using return-to-libc 上做一些 Return-to-libc 攻击实验。
在进行实验之前,我关闭了 ALSR。
根据论文,我可以在gdb中找到环境变量SHELL="/bin/bash"的地址(使用gdb调试我要攻击的程序):
但是当我尝试使用该地址进行Return-to-libc实验时发现该地址错误。
然后我写了一个简单的程序来获取环境变量地址:
当我在终端中运行这个程序时,我得到了正确的地址:
有了这个地址,我可以做攻击。
我还找到了与此相关的question。但是答案并没有真正的意义(第二个可能更好)。
请告诉我一些细节。
【问题讨论】:
-
只是一个迂腐的注解:当使用
%p和printf时,您应该转换为(void*),而不是unsigned int。 -
@SethCarnegie 谢谢你的来信。