Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

heap-exploitation

ヒープ脆弱性を攻略するためのプレイブック。ptmalloc2/glibcヒープを対象に、UAF・double free・オーバーフロー・off-by-one/nullなどの脆弱性を悪用し、tcache・fastbin・unsortedbin攻撃を活用して任意書き込みやコード実行を実現したい場面で使用する。

description の原文を見る

>- Heap exploitation playbook. Use when targeting ptmalloc2/glibc heap vulnerabilities including UAF, double free, overflow, off-by-one/null, and leveraging tcache/fastbin/unsortedbin attacks for arbitrary write or code execution.

SKILL.md 本文

SKILL: Heap Exploitation — Expert Attack Playbook

AI LOAD INSTRUCTION: glibc ヒープ エクスプロイテーション専門技術。ptmalloc2 の内部構造、bin 構造、tcache メカニズム、libc/ヒープ リーク方法、および glibc バージョンごとの攻撃選択をカバーします。ctf-wiki ヒープセクション、how2heap、および実際のエクスプロイテーション から厳選されています。ベース モデルでは glibc バージョン制約を混同しやすく、2.32 で導入された safe-linking (PROTECT_PTR) を見落とします。

0. RELATED ROUTING

  • stack-overflow-and-rop — オーバーフロー がヒープではなくスタックにある場合
  • format-string-exploitation — フォーマット文字列経由でヒープ/libc アドレスをリークする場合
  • arbitrary-write-to-rce — ヒープ任意書き込みをコード実行に変換する場合
  • binary-protection-bypass — ASLR/RELRO をバイパスしてヒープ書き込みを有効にする場合

Advanced References

  • HOUSE_OF_TECHNIQUES.md — House of Force/Spirit/Orange/Einherjar/Roman/Pig/Banana/Cat/Apple および tcache 攻撃
  • IO_FILE_EXPLOITATION.md — _IO_FILE vtable ハイジャック、FSOP、stdout/stdin 悪用、exit フロー エクスプロイテーション

1. PTMALLOC2 STRUCTURE QUICK REFERENCE

malloc_chunk Layout (64-bit)

         chunk pointer (returned by malloc - 0x10)
         ┌──────────────────────────┐
    0x00 │  prev_size (if prev free)│
    0x08 │  size        | A | M | P │  ← P=PREV_INUSE, M=IS_MMAPPED, A=NON_MAIN_ARENA
         ├──────────────────────────┤  ← user data starts here (returned pointer)
    0x10 │  fd (if free)            │  ← forward pointer to next free chunk
    0x18 │  bk (if free)            │  ← backward pointer to prev free chunk
    0x20 │  fd_nextsize (large only)│
    0x28 │  bk_nextsize (large only)│
         └──────────────────────────┘

Bin Types

BinSize Range (64-bit)StructureLIFO/FIFO
tcache (per-thread)≤ 0x410 (7 entries per size)Singly linked (next pointer)LIFO
fastbin≤ 0x80 (default)Singly linked (fd)LIFO
unsortedbinAny freed sizeDoubly linked circularFIFO
smallbin< 0x400Doubly linked circularFIFO
largebin≥ 0x400Doubly linked + size-sortedSorted

Key Global Structures

StructureLocationPurpose
main_arenalibc .data segmentbin ヘッド、top chunk、system_mem を格納
mp_libc .datamalloc パラメータ (tcache 設定、mmap しきい値)
tcache_perthread_structHeap (first allocation)スレッドごと tcache bin とカウント

2. LEAK METHODS

Libc Base Leak

MethodPreconditionTechnique
Unsortedbin fd/bktcache 範囲より大きいチャンクを解放(または tcache を満杯にする)fd/bk → main_arena + 0x60 (またはバージョンによって +0x70) → libc base
Smallbin fd/bkunsortedbin から smallbin に移動されたチャンクunsortedbin リークと同じ
stdout FILE leak_IO_2_1_stdout_ に書き込み_IO_write_base を破損して libc データをリーク (IO_FILE 参照)

Heap Base Leak

MethodPreconditionTechnique
Tcache fd pointer2 つの tcache チャンクを解放し、最初のものの fd を読むfd → ヒープ アドレス (≥ 2.32 で XOR されている)
Fastbin fd2 つの fastbin チャンクを解放fd → ヒープ アドレス
UAF read解放されたチャンクで use-after-freefd/bk を直接読む

Safe-Linking Decode (glibc ≥ 2.32)

# PROTECT_PTR: fd_stored = (chunk_addr >> 12) ^ real_fd
# デコード: real_fd = fd_stored ^ (chunk_addr >> 12)
# エンコード: fd_stored = (chunk_addr >> 12) ^ target_addr

def deobfuscate(stored_fd, chunk_addr):
    return stored_fd ^ (chunk_addr >> 12)

def obfuscate(target, chunk_addr):
    return (chunk_addr >> 12) ^ target

3. ATTACK CATEGORIES BY GLIBC VERSION

glibc < 2.26 (tcache なし)

AttackPrimitive NeededResult
Fastbin dupダブルフリー任意割り当て
Unsortedbin attackunsortedbin bk 破損ターゲットに main_arena アドレスを書き込み (__malloc_hook 近くのオーバーライト に使用)
Unlink attackヒープ オーバーフロー (prev_size + fd/bk へ)任意書き込み (既知のヒープ ポインタを使用)
House of ForceTop chunk size オーバーライト任意割り当て
House of Spiritフェイク チャンク ヘッダ書き込みフェイク チャンク位置での fastbin 割り当て
Off-by-one null次チャンクの size への null バイト オーバーフローチャンク オーバーラップ

glibc 2.26–2.28 (tcache, key なし)

AttackNotes
Tcache poisoningtcache fd をオーバーライト → 任意割り当て、size チェック なし
Tcache duptcache へのダブルフリー (ダブルフリー検出なし)
All previous attacks依然機能するが、チャンクは最初に tcache に入る

glibc 2.29–2.31 (tcache key 導入)

Attacktcache key バイパス
Tcache dup2 番目の free の前に key フィールド (chunk+0x18) を破損
House of Botcakeダブルフリー: unsortedbin に 1 つ、tcache に 1 つ → オーバーラップ
Tcache stashing unlinksmallbin→tcache リフィル を悪用して任意チャンク取得

glibc 2.32–2.33 (safe-linking / PROTECT_PTR)

AttackAdaptation
Tcache poisoningターゲットを (chunk_addr >> 12) ^ target でエンコード
Heap leak 必須safe-linked ポインタ をデコード/エンコードするにはヒープ アドレスが必要
Fastbin dup同じエンコーディングが必須

glibc ≥ 2.34 (hooks 削除)

ChangeImpact
__malloc_hook 削除one_gadget に hook をオーバーライト不可
__free_hook 削除hook をオーバーライト不可
__realloc_hook 削除one_gadget 制約 で realloc トリック使用不可

Post-2.34 ターゲット: arbitrary-write-to-rce_IO_FILEexit_funcsTLS_dtor_list_dl_fini を参照してください。


4. COMMON VULNERABILITY PATTERNS

VulnerabilityDescriptionExploitation Path
UAF (Use-After-Free)解放後のチャンク アクセス読み取り: fd/bk をリーク; 書き込み: tcache poisoning 用に fd を破損
Double Free同じチャンク を 2 回 free()Tcache dup (key バイパス) または fastbin dup
Heap Overflowチャンク境界を超えて書き込み次チャンクのメタデータ (size、fd、bk) を破損
Off-by-one1 バイト オーバーフローNull バイト → 次チャンク size を縮小 → チャンク オーバーラップ
Off-by-null特に \x00 オーバーフローPREV_INUSE をクリア → 後方統合をトリガー
Uninitialized readヒープ メモリを明示的にクリアせずに読み取りリサイクルされたチャンク から fd/bk をリーク

5. TOOLS

# pwndbg heap inspection
pwndbg> heap                      # display all chunks
pwndbg> bins                      # show all bin contents
pwndbg> tcachebins                # tcache status
pwndbg> fastbins                  # fastbin status
pwndbg> unsortedbin               # unsortedbin content
pwndbg> vis_heap_chunks           # visual heap layout
pwndbg> find_fake_fast &__malloc_hook  # find nearby fake fastbin chunks

# how2heap — reference implementations
git clone https://github.com/shellphish/how2heap

# heapinspect
pip install heapinspect
heapinspect <pid>

# pwntools helpers
from pwn import *
libc = ELF('./libc.so.6')
print(hex(libc.symbols['__malloc_hook']))
print(hex(libc.symbols['__free_hook']))

6. DECISION TREE

Heap vulnerability identified
├── What is the primitive?
│   ├── UAF (read + write)
│   │   ├── Can read freed chunk? → Leak libc (unsortedbin) or heap (tcache fd)
│   │   └── Can write freed chunk? → Tcache poisoning / fastbin dup
│   ├── Double free
│   │   ├── glibc < 2.29 → direct tcache dup
│   │   ├── glibc 2.29-2.31 → corrupt tcache key first, or House of Botcake
│   │   └── glibc ≥ 2.32 → need heap leak for safe-linking encode
│   ├── Heap overflow (controlled size)
│   │   ├── Overwrite next chunk size → overlapping chunks → UAF
│   │   └── Overwrite fd directly → arbitrary allocation
│   ├── Off-by-one / off-by-null
│   │   ├── Null byte into size → House of Einherjar (backward consolidation)
│   │   └── One byte into size → shrink chunk, create overlap
│   └── Arbitrary write (from overlap or poisoned allocation)
│       ├── glibc < 2.34 → __malloc_hook / __free_hook → one_gadget
│       ├── glibc ≥ 2.34 → _IO_FILE vtable, exit_funcs, TLS_dtor_list
│       └── Partial RELRO → GOT overwrite
│
├── Need libc leak?
│   ├── Free chunk into unsortedbin (size > 0x410 or fill 7 tcache)
│   ├── Read fd/bk → main_arena offset → libc base
│   └── Alternative: stdout FILE partial overwrite for leak
│
└── Need heap leak? (glibc ≥ 2.32)
    ├── Read tcache fd from freed chunk
    └── Decode: real_addr = stored_fd ^ (chunk_addr >> 12)

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
yaklang
リポジトリ
yaklang/hack-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/yaklang/hack-skills / ライセンス: MIT

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: yaklang · yaklang/hack-skills · ライセンス: MIT