ctf-pwn自动化工具pwnpasi

1.pwnpasi概述

pwnpasi 是一款专为CTF PWN方向入门基础题目开发设计的自动化工具,旨在帮助新手小白快速识别和利用32位和64位程序中的栈溢出漏洞与格式化字符串漏洞。该工具能够自动判断溢出字符数,自动识别格式化字符串漏洞,自动识别程序调用的动态链接库,并生成相应的ROP链以利用漏洞。支持多种利用方式,包括调用system后门函数、写入shellcode、puts函数ROP、write函数ROP以及syscall ROP,格式化字符串利用,可自动识别并绕过PIE防护与canary防护。此外,工具还具备本地和远程利用功能,并集成了LibcSearcher库,用于在没有提供libc地址的情况下自动搜索合适的libc版本

2.pwnpasi安装

确保已安装Python 3.x,安装所需依赖库:
先把py文件放kali里运行下面,进入工具目录

pip install --upgrade setuptools
python3 setup.py install

3.pwnpasi用法

-l, --local          Required parameter, used to specify local file
指定本地目标文件
-ip, --ip            Used to specify remote servers
指定远程服务器IP
-p, --port           Used to specify remote port
定远程服务器端口
-libc, --libc        Used to specify local libc
定本地libc文件
-f, --fill           The number of characters that can cause overflow
填充字符数
Usage:
python pwnpasi.py -l babypwn
python pwnpasi.py -l babypwn -f 112
python pwnpasi.py -l babypwn -libc ./libc-2.19.so
python pwnpasi.py -l babypwn -libc ./libc-2.19.so -ip 192.168.0.1 -p 33333

栈溢出漏洞演示:

python3 pwnpasi.py -l level3_x64 

格式化字符串漏洞演示

https://github.com/user-attachments/assets/9bf09335-605a-4896-aacf-ea938b800ba0

python3 pwnpasi.py -l fmtstr1

绕过canary防护演示:

https://github.com/user-attachments/assets/a3d8037d-227a-4f01-a554-750df58e7b67

canary FUZZ需要的时间较久,需要耐心等一下

python3 pwnpasi.py -l canary

绕过PIE防护演示

https://github.com/user-attachments/assets/2a3b1e49-e372-43d7-b2f1-43b153ea7ec6

运行工具

通过命令行运行工具。示例命令:

python pwnpasi.py -l level3_x64

使用ldd工具可查看程序调用的动态链接库

ldd [文件名]

指定造成溢出的字符数与动态链接库:

python pwnpasi.py -l level3_x64 -libc /lib/i386-linux-gnu/libc.so.6 -f 112

远程连接:

python pwnpasi.py -l level3_x64 -libc /lib/i386-linux-gnu/libc.so.6 -ip 192.168.0.1 -p 33333

关于可能的报错

为确保FUZZ测试的顺利进行,程序名称应避免使用特殊字符(如_/*&^%$#@等),建议使用纯字母或数字命名。若存在特殊字符,请及时重命名程序

报错可能源于工具或依赖项未完全安装。请根据上述提供的工具列表,逐一检查并确保所有必要的工具和依赖项均已正确安装

简单栈溢出测试:

这个题是buuctf上的jarvisoj_level0

python3 pwnpasi.py -l ./level0 -ip node5.buuoj.cn -p 27455


posted @ 2025-04-21 20:31  zzzh1  阅读(2755)  评论(13)    收藏  举报