Security 开发技术POP-RET不';行不通
我有一个使用WindowsXPProfessionalSP3x86Spanish的虚拟机,我已经禁用了DEP 嗯,我在为“Easy RM to MP3 Converter”(是的,教程Corelan中的程序)执行poppopretjmpesp.pl漏洞攻击,但没有成功,所以我做了两个测试: 第一个成功地替换了跳转到外壳代码开头的“CCCC”(\x43\x43\x43\x43\x43)的JMP ESP,并在尝试执行此方向时产生错误。 第二,为JMP ESP提供一个有效的方向和一个包含许多断点的外壳代码。在这里,由于程序试图执行的方向而产生错误,JMP ESP NO只指向放置的断点。 原始堆栈是:Security 开发技术POP-RET不';行不通,security,exploit,shellcode,Security,Exploit,Shellcode,我有一个使用WindowsXPProfessionalSP3x86Spanish的虚拟机,我已经禁用了DEP 嗯,我在为“Easy RM to MP3 Converter”(是的,教程Corelan中的程序)执行poppopretjmpesp.pl漏洞攻击,但没有成功,所以我做了两个测试: 第一个成功地替换了跳转到外壳代码开头的“CCCC”(\x43\x43\x43\x43\x43)的JMP ESP,并在尝试执行此方向时产生错误。 第二,为JMP ESP提供一个有效的方向和一个包含许多断点的外
缓冲区将填充As
RET地址将替换为POP RET的方向
4字节的垃圾将替换为“XXXX”
这里指出ESP在执行POP RET指令之前,以及 它将被4个NOP替换
4字节的垃圾,它将被4个NOP取代
ESP将指向的4字节垃圾,以及 将替换为JMP ESP,这将占用堆栈的 我们提出的RET指令
这是外壳代码的开始,也是will的位置 在执行时指向JMP ESP
您的外壳代码是否正确 如果是,请检查外壳代码中是否有任何奇怪的字符。该特定程序将停止复制空字符(0x00)以及其他几个字符的输入。最简单的方法是找到外壳代码中正确复制的最后一个字符,并排除其后的字符。可以使用metasploit生成外壳代码,不包括特定字符
如果没有,请检查偏移量和填充。请查看我的新评论。