我刚开始使用基于结构化异常处理的攻击。
为什么我们不直接将返回地址放在SE处理程序中以跳转到SE代码呢?(没有安全的SEH)
有人能解释一下为什么要使用流行音乐吗?
我读到一些东西说SEH绕过ASLR和DEP,但是怎么做?
我们的外壳代码将位于堆栈上,并且由于堆栈仍然是不可执行的,如何绕过DEP?
发布于 2014-03-02 11:33:07
http://www.exploit-db.com/wp-content/themes/exploit/docs/17505.pdf
使用SEH来实现利用,既不是DEP,也不是ASLR。
特别是,DEP将减少堆栈内存页上外壳代码的执行,这最终是基于SEH的漏洞试图实现的目标。
如果进程间隔中没有一个非ASLR模块来定位SEH利用关键的POP POP RET,则ASLR将继续阻碍开发。
正如Van在他的评论中所建议的,ROP (以及模块基本地址发现的信息泄漏)对于DEP和ASLR失败是必要的。
发布于 2018-08-29 15:18:37
pop, pop, ret,因为我们可以很容易地在文本段中找到这段代码。正如我前面解释的,我们不能跳到堆栈上的地址,但是我们可以跳到文本段。pop, pop, ret跳转到下一个SEH记录的地址,因为在异常处理程序开始运行时,ESP距它只有8个字节。注意,我们控制这个值。在winDBG中:
0:000> !exchain
*0012ffb0*: seh_overflow!ILT+85(__except_handler4)+0 (0041105a)
0012ffe0: kernel32!ValidateLocale+2b0 (7c839ac0)
Invalid exception stack at ffffffff
0:000> g
(614.f68): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
:
0:000> dd esp L4
0012f6f8 7c9032a8 0012f7e0 *0012ffb0* 0012f7fc我还问了一个问题关于这个问题,你可能想看看
https://security.stackexchange.com/questions/42314
复制相似问题