Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
GLUFS — スタック、PIE、カナリアリークを発見し、%s または %p 指定子によるフラグ検索機能を備えた、自動化されたフォーマット文字列脆弱性悪用ツール。 | Kitploit
ツール/GitHubGitHub/diego-altf4/glufs
脆弱性分析エクスプロイトファジングバイナリエクスプロイト
GitHubdiego-altf4/glufs

GLUFS

スタック、PIE、カナリアリークを発見し、%s または %p 指定子によるフラグ検索機能を備えた、自動化されたフォーマット文字列脆弱性悪用ツール。

リポジトリを見る
27434年前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リーク、カナリアリークを見つけることができ、それぞれの場合においてリークを提供するペイロードが示されます。 さらに、リーク内で「flag」文字列を検索できるモードも含まれています。このモードでは、%s または %p の指定子を使用できます。

パラメータ

パラメータ情報
-bこのオプションを選択して、悪用するバイナリを指定します。
-maxこのオプションを選択して、テストする最大値を指定します。範囲: (min, max)。デフォルトでは max = 40
-minこのオプションを選択して、テストする最小値を指定します。範囲: (min, max)。デフォルトでは min = 1
-ipこのオプションを選択して、リモートサーバーの IP を指定します。
-portこのオプションを選択して、リモートサーバーのポートを指定します。
-flagこのオプションを選択して、検索するフラグの先頭を指定します。
-archこのオプションを選択して、アーキテクチャ(32 または 64)を設定します。
--sこのオプションを選択して、%p の代わりに %s を使用します。
--canaryこのオプションを選択して、カナリアリークが存在する位置を見つけます。
--leaksこのオプションを選択して、見つかったすべてのリークを出力します。
--pieこのオプションを選択して、PIEリークが存在する位置を見つけます。
--stackこのオプションを選択して、スタックリークが存在する位置を見つけます。
--vこのオプションを選択して、冗長モードを設定します。

使用例

1️⃣ 最初の例 ~ TryHackMe ルーム pwn101

この例では、GLUFS を使用して PIE とカナリアのリークを取得します。

例として使用するバイナリは、TryHackMe ルーム pwn101 のチャレンジ 7 に対応するものです TryHackMe ルーム pwn101。

バイナリを指定するために -b オプション、反復の開始値を指定するために -min オプション、反復の終了値を指定するために -max オプションを使用します。さらに、カナリアと PIE に関する情報を取得したいと考えています。

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

image

デモ:

asciicast

2️⃣ 2 番目の例 ~ 247CTF Confused environment read

この例では、GLUFS を使用してフラグを取得します。

解決するチャレンジは 247CTF プラットフォームの Confused environment read です。

この例ではバイナリを使用しません。IP とポートのみがあります。そのため、アドレスを指定するために -ip オプション、ポートを指定するために -port オプション、検索するフラグの先頭を指定するために -flag オプションを使用します。また、バイナリがないため、アーキテクチャを指定する必要があります。この場合は x86-64 です(-arch 64)。反復の開始を -min、終了を -max で指定します。さらに、%p の代わりに %s を使用するために -s オプションを使用します。

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

image

デモ:

asciicast

3️⃣ 3 番目の例 ~ PicoCTF flag leak

この例では、GLUFS を使用してフラグを取得します。

解決するチャレンジは PicoCTF プラットフォームの flag leak です。

この例では、サーバーアドレスを指定するために -ip オプション、サーバーポートを指定するために -port オプション、バイナリを指定するために -b オプション、フラグの先頭を指定するために -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 

設定:

コードを変更してバイナリ/チャレンジに適合させることが非常に重要です。そのために、コード内に区切られた 2 つのセクションがあり、フォーマット文字列のリークを取得するため、およびペイロードを送信するタイミングを設定するために変更を加える必要があります。

例: 上記の picoCTF チャレンジでは、次の設定が使用されています。

root@kitploit:~
#######################################################################
#      This is the part that you must modify to fit your binary.      #
#######################################################################
p.sendlineafter(b'>>', payload)
p.recvuntil(b'-')
leak = p.recv().strip(b'\n')
#print(leak) ## For debugging errors
#######################################################################	
ツールをダウンロード