【问题标题】:Exploiting technique POP RET doesn't work利用技术 POP RET 不起作用
【发布时间】:2014-04-02 14:03:39
【问题描述】:

我有一台装有 Windows XP Professional SP3 x86 西班牙语的虚拟机,并且我禁用了 DEP。

好吧,我正在执行“Easy RM to MP3 Converter”的漏洞利用 POPPOPRET_JMPESP.pl(是的,Corelan 教程的程序),但没有成功,所以我做了 2 次测试:

第一个成功地替换了跳转到 shellcode 开头的 JMP ESP,用于“CCCC”(\x43\x43\x43\x43),并在尝试执行此方向时产生错误。 Source Screenshot

第二个,给 JMP ESP 提供一个有效的方向和一个包含许多断点的 shellcode。由于程序尝试执行的方向,此处会产生错误,并且 JMP ESP NO 仅指向放置的断点。 Source Screenshot

原始堆栈为:


缓冲区将被 As 填充


RET ADDRESSS 将替换为 POP POP RET 的方向


4 字节的垃圾将被替换为“XXXX”


这里在执行 POP POP RET 指令之前指向 ESP,并且 它将被 4 个 NOP 替换


4 个字节的垃圾,它将被 4 个 NOP 取代


ESP 将指向的 4 个字节的垃圾,以及 将被替换为 JMP ESP,这将占用堆栈 我们放的 RET 指令


这里是 shellcode 的开头,是哪里 执行时指向 JMP ESP


【问题讨论】:

    标签: security exploit shellcode


    【解决方案1】:

    您是否正确获取了您的 shellcode?

    如果是,请检查您的 shellcode 是否有任何奇怪的字符。该特定程序将停止在 NULL 字符 (0x00) 以及其他几个字符处复制输入。最简单的方法是找到正确复制的 shellcode 中的最后一个字符,并排除之后的字符。您可以使用 metasploit 生成不包括特定字符的 shellcode。

    如果不是,请检查您的偏移量和填充。

    【讨论】:

    • 请看我的新评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 2013-12-22
    • 2015-02-17
    • 2018-09-17
    • 2019-11-27
    • 2013-11-14
    • 1970-01-01
    相关资源
    最近更新 更多