Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
GLUFS — 自动化格式化字符串漏洞利用工具,用于发现堆栈、PIE和canary泄漏,具有通过 %s 或 %p 说明符搜索 flag 的能力。 | Kitploit
工具/GitHubGitHub/diego-altf4/glufs
漏洞分析漏洞利用模糊测试二进制利用
GitHubdiego-altf4/glufs

GLUFS

自动化格式化字符串漏洞利用工具,用于发现堆栈、PIE和canary泄漏,具有通过 %s 或 %p 说明符搜索 flag 的能力。

查看仓库
2744年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享


使用格式化字符串获取泄漏

root@kitploit:~
                    .d8888b.       888       888     888   8888888888   .d8888b.  
                    d88P  Y88b     888       888     888   888         d88P  Y88b 
                    888    888     888       888     888   888         Y88b.      
                    888            888       888     888   8888888      "Y888b.   
                    888  88888     888       888     888   888             "Y88b. 
                    888    888     888       888     888   888               "888 
                    Y88b  d88P     888       Y88b. .d88P   888         Y88b  d88P 
                    "Y8888P88      88888888   "Y88888P"    888          "Y8888P"                                                    

                                           作者: DiegoAltF4

简介

GLUFS 允许你自动化利用格式化字符串漏洞寻找泄漏的繁琐过程。 它能帮助你寻找栈泄漏、PIE 泄漏和 canary 泄漏,并在每种情况下指示提供泄漏的载荷。 此外,它还包含一个模式,允许你在泄漏中搜索 "flag" 字符串。该模式可以使用 %s 或 %p 说明符。

参数

使用示例

1️⃣ 第一个示例 ~ TryHackMe 房间 pwn101

在此示例中,我们将使用 GLUFS 来获取 PIE 和 canary 泄漏。

我们用作示例的二进制文件是 TryHackMe 房间 pwn101 中挑战 7 对应的二进制文件 TryHackMe 房间 pwn101。

我们将使用 -b 选项指定二进制文件,-min 选项指定迭代的初始值,-max 指定迭代的结束值。此外,我们想要获取关于 canary 和 PIE 的信息。

root@kitploit:~
./glufs.py -b ./pwn107.pwn107 -min 5 -max 15 --pie --canary

image

演示:

asciicast

2️⃣ 第二个示例 ~ 247CTF Confused environment read

在此示例中,我们将使用 GLUFS 来获取 flag。

我们将要解决的挑战是 247CTF 平台上的 Confused environment read。

此示例中我们不使用二进制文件。我们只有 IP 和端口。因此,我们将使用 -ip 选项指定地址,-port 指定端口,-flag 指定要查找的 flag 的开头。此外,由于没有二进制文件,我们必须指定架构,本例中为 x86-64(-arch 64)。我们还将使用 -min 指定迭代开始,-max 指定迭代结束。另外,我们将使用 -s 选项以使用 %s 代替 %p。

root@kitploit:~
./glufs.py -ip 3bcbadabd1a7e914.247ctf.com -port 50387 -flag 247CTF -arch 64 -min 1 -max 200 --s

image

演示:

asciicast

3️⃣ 第三个示例 ~ PicoCTF flag leak

在此示例中,我们将使用 GLUFS 来获取 flag。

我们将要解决的挑战是 PicoCTF 平台上的 flag leak。

在此示例中,我们将使用 -ip 选项指定服务器地址,-port 指定服务器端口,-b 指定二进制文件,-flag 指定 flag 的开头,最后,使用 -min 和 -max 指定迭代的起始和结束。如果没有指定 --s 选项,将默认使用 %p 格式。

root@kitploit:~
./glufs.py -ip saturn.picoctf.net  -port 50563 -b ./vuln  -flag picoCTF -min 20 -max 200

image

演示:

asciicast

安装:

root@kitploit:~
git clone https://github.com/Diego-AltF4/GLUFS.git
cd GLUFS/
pip3 install -r requirements.txt
chmod +x ./glufs.py 

配置:

修改代码以使其适应你的二进制文件/挑战非常重要。为此,代码中有两个分隔的部分,你需要进行更改以获取格式化字符串的泄漏,以及配置何时发送载荷。

示例: 对于上述 picoCTF 挑战,使用以下配置:

root@kitploit:~
#######################################################################
#      这是你必须修改以适配二进制文件的部分。      #
#######################################################################
p.sendlineafter(b'>>', payload)
p.recvuntil(b'-')
leak = p.recv().strip(b'\n')
#print(leak) ## 用于调试错误
#######################################################################	
下载工具
参数信息
-b选择此选项以指定要利用的二进制文件。
-max选择此选项以指定要测试的最大值。范围:(min, max)。默认值:max = 40
-min选择此选项以指定要测试的最小值。范围:(min, max)。默认值:min = 1
-ip选择此选项以指定远程服务器的 IP 地址。
-port选择此选项以指定远程服务器的端口。
-flag选择此选项以指定要搜索的 flag 的开头。
-arch选择此选项以设置架构(32 或 64)。
--s选择此选项以使用 %s 代替 %p。
--canary选择此选项以查找 canary 泄漏所在的位置。
--leaks选择此选项以打印所有找到的泄漏。
--pie选择此选项以查找 PIE 泄漏所在的位置。
--stack选择此选项以查找栈泄漏所在的位置。
--v选择此选项以启用 Verbose 模式。