Pwntools二进制利用入门
Pwntools二进制利用入门
Pwntools 简介
Pwntools 是 CTF 和漏洞利用开发中最常用的 Python 框架,提供了远程连接、payload 构造、ELF 操作等功能。
连接远程目标
from pwn import *
# 连接远程服务
r = remote('challenge.example.com', 1337)
# 本地调试
p = process('./vuln')交互式操作
r.send(b'payload')
r.sendline(b'payload_with_newline')
data = r.recvuntil(b'prompt>')
r.interactive() # 进入交互模式Payload 构造
# 构造填充 + 返回地址
payload = b'A' * 64
payload += p64(0x4011b0) # 目标地址(64位用p64,32位用p32)
# 自动生成填充
payload = cyclic(100)
offset = cyclic_find(0x61616161)Shellcode 使用
# 获取系统shellcode
shellcode = asm(shellcraft.sh())
# 编码shellcode避免坏字符
encoded = encode(shellcode, avoid=b'\x00')总结
Pwntools 大幅简化了二进制漏洞利用的开发流程。从入门级的栈溢出到高级的堆利用,Pwntools 都提供了强大的支持。