Pwntools二进制利用入门

约 2 分钟读完

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 都提供了强大的支持。

← Python加密与编码实现 Nginx安全配置最佳实践 →