- 博客(3)
- 资源 (2)
- 收藏
- 关注
原创 《0Day》之突破SafeSEHS
上一篇记录的通过虚函数突破GS,其实也可以通过SEH来突破GS,具体的原理和利用虚函数的方式类似,只是通过覆盖SEH异常处理函数地址来实现的,就不多说了。不过微软后来对SEH也做了防护,具体的做了哪些防护可以去看《0Day》。这里只记录突破SafeSEH的方式。虽然微软对SEH做了防护,但也有例外,比如SEH中异常处理函数指针位于堆中,则不论是否通过安全校验,都会被调用,所以我们可以在堆中申请
2016-12-07 23:07:33
813
原创 《0Day》之通过覆盖虚表指针来突破GS
对于栈溢出,微软做了GS防护,就是在函数栈帧初始化之后,生成一个随机的cookie,将其保存在EBP之前,同时在.data中也保存一份,在函数返回之前,先检测栈中cookie的值,如果我们还用之前栈溢出的方式,通过shellcode覆盖函数返回地址来达到溢出的目的,这时必然会覆盖掉栈中的cookie,这样的溢出就会被检测到,也就无法达到溢出的目的。但是正所谓你有张良计,我有过墙梯,GS的检测要在函
2016-12-05 22:00:08
1102
原创 《0Day安全》之堆溢出
最近重读《0Day安全》,由于栈溢出比较简单,所以直接从堆溢出开始读起。在学习堆溢出之前,需要读者对堆的结构有一定的了解。先写一个小程序,分配一个新的堆来供我们研究它的结构,代码如下#include #include int main(){ HLOCAL h1, h2, h3, h4, h5, h6; HANDLE hp = NULL; hp = HeapCreate(
2016-12-05 00:57:55
7893
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人