利用ROP-ret2Syscall突破NX保护
【摘要】 利用ROP-ret2Syscall突破NX保护
@TOC
大家还记的之前说过的ret2text漏洞吗,那是利用依赖于程序中的存在,执行system(’/bin/sh’)的函数,如果没有这个函数的话,我们怎么办呢?
我们使用ret2shellcode是自定义shellcode代码,但是这中方法的局限性是程序没有开启NX保护,那么如何程序开启了NX保护,这个时候我们就要使用Ret2Syscall大法了!!!!
什么是ROPGadgets?
是在程序中的指令片段,有时我们为了到达我们执行命令的目的,需要多个Gadget来完成我们的功能。Gadget最后一般都有ret,因为要将程序控制权(IP)给下一个Gadret
NX保护开启了
下一步要组合shellcode
系统调用号 eax = 0xb
第一个参数 ebx /bin/sh
第二个参数和第三个参数应该都是 0
ROPgadget --binary ./ret2syscall --only "pop|ret" | grep "eax"
我们选用0x80bb196
这些就是我们要使用的指令片段了
exp如上!
调试!!
回车之后程序会断在系统领空
我们要返回程序领空
首先在gdb中输入finish指令,然后在继续执行exp
程序就断到了read函数处
继续finish
看一下栈中的情况。然后继续finish
到了mian这里,我们再看一个栈中的情况
这时/bin/sh已经写到栈里了
ret2syscall的局限性是很大的,如果没有我们可以使用的指令片段的怎么办,emmm,关注我的后续更新!!
希望大家可以有所收获!!!!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)