利用ROP-ret2Syscall突破NX保护
        【摘要】 利用ROP-ret2Syscall突破NX保护
    
    
    
    @TOC
大家还记的之前说过的ret2text漏洞吗,那是利用依赖于程序中的存在,执行system(’/bin/sh’)的函数,如果没有这个函数的话,我们怎么办呢?
我们使用ret2shellcode是自定义shellcode代码,但是这中方法的局限性是程序没有开启NX保护,那么如何程序开启了NX保护,这个时候我们就要使用Ret2Syscall大法了!!!!
什么是ROPGadgets?
 是在程序中的指令片段,有时我们为了到达我们执行命令的目的,需要多个Gadget来完成我们的功能。Gadget最后一般都有ret,因为要将程序控制权(IP)给下一个Gadret
 

 NX保护开启了
 

 下一步要组合shellcode
下一步要组合shellcode
系统调用号 eax = 0xb
 第一个参数 ebx /bin/sh
 第二个参数和第三个参数应该都是 0
 
ROPgadget --binary ./ret2syscall --only "pop|ret" | grep "eax"

 我们选用0x80bb196

 
 
这些就是我们要使用的指令片段了
 exp如上!
exp如上!
 
调试!!



 回车之后程序会断在系统领空
 我们要返回程序领空
首先在gdb中输入finish指令,然后在继续执行exp
 
 程序就断到了read函数处

继续finish
 
 
 
 看一下栈中的情况。然后继续finish
 
 到了mian这里,我们再看一个栈中的情况
 
 这时/bin/sh已经写到栈里了
 
 ret2syscall的局限性是很大的,如果没有我们可以使用的指令片段的怎么办,emmm,关注我的后续更新!!
希望大家可以有所收获!!!!
            【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)