ASLR绕过 - 方式2
在ASLR中,并非所有地址都是随机的
也可以利用.text区域
NX+ASLR绕过2 - ROP
ROP(Return Oriented Programming)
狭义:想要执行的代码细分后在.text区域搜索合并
- RX权限,即能够执行的只有.text区域,因此想办法使用.text区域
广义:除了狭义的ROP之外,也包括ret2plt/ret2libc之类的伪造返回地址的方法
细分的代码叫做gadget,rop gadget
- 例如下面的代码,可以对eax进行+1操作
寻找rop gadget
很多工具,例如ROPgadget
- 其他工具例如msfrop,rp++,Ropeme,ropper
NX+ASLR绕过3 - DROP
DROP(Dynamic ROP)
.text区域的gadget很少时的情况
基于泄漏的libc地址,使用libc中的gadget构造ROP
因为libc相对比较大,其中的gadget非常多
在泄漏libc地址的大部分情况中非常有效
前提是指导目标环境的libc版本