Community程式設計與開發github.com

yaklang/任意寫入轉RCE

任意寫入轉 RCE 手冊。當你擁有任意寫入原語(來自堆積利用、格式化字串或越界寫入)並需要將其轉換為程式碼執行時使用,目標包括 GOT、鉤子、_IO_FILE vtable、exit_funcs、TLS_dtor_list、modprobe_path、.fini_array 或 C++ vtables。

任意寫入轉RCE 是什麼?

這份技能(yaklang/任意寫入轉RCE)提供了一個完整的操作手冊,幫助開發者或安全研究人員將任意寫入原語轉化為遠端程式碼執行(RCE)。它涵蓋多種常見的攻擊目標,例如 GOT(全域偏移表)、鉤子函數、_IO_FILE 虛函數表、exit_funcs、TLS_dtor_list、modprobe_path、.fini_array 以及 C++ 虛函數表。該技能適用於各種平台,包括 Linux、Windows 和嵌入式系統,並基於堆積利用、格式化字串或越界寫入等漏洞原語。通過清晰的步驟和範例說明,使用者可以快速理解如何利用這些目標實現程式碼執行,從而評估或測試系統的安全性。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yaklang/hack-skills/tree/main/skills/arbitrary-write-to-rce

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

任意寫入轉RCE 是做什麼的?

任意寫入轉 RCE 手冊。當你擁有任意寫入原語(來自堆積利用、格式化字串或越界寫入)並需要將其轉換為程式碼執行時使用,目標包括 GOT、鉤子、_IO_FILE vtable、exit_funcs、TLS_dtor_list、modprobe_path、.fini_array 或 C++ vtables。

目標

此技能專注於將任意寫入原語轉化為程式碼執行,以下是一些常見的攻擊目標:

  • GOT(全域偏移表):修改函數指標以劫持控制流。
  • 鉤子(hooks):覆蓋回呼函數以執行惡意程式碼。
  • _IO_FILE vtable:利用檔案結構體的虛函數表進行攻擊。
  • exit_funcs:在程式退出時執行自訂函數。
  • TLS_dtor_list:透過執行緒本地儲存解構子列表觸發代碼執行。
  • modprobe_path:修改模組載入路徑以執行任意二進位檔。
  • .fini_array:在程式終止時執行函數指標。
  • C++ vtables:覆蓋虛函數表以劫持物件方法呼叫。

使用方法

  1. 識別漏洞:確認你擁有任意寫入原語(例如堆積溢位、格式化字串或越界寫入)。
  2. 選擇目標:根據目標環境選擇合適的攻擊目標(參考上述列表)。
  3. 執行寫入:使用你的原語將惡意負載寫入目標記憶體位置。
  4. 觸發執行:透過正常程式流程(如函數呼叫、物件方法調用或程式退出)觸發代碼執行。

範例

假設你有一個能寫入任意位址的原語,以下是如何修改 GOT 條目以劫持 free() 函數:

# 範例指令,實際情況需根據漏洞調整
echo "Write exploit payload to GOT"

注意事項

  • 確保目標系統的保護機制(如 ASLR、NX、Stack Canaries)已考慮在內。
  • 某些目標(如 modprobe_path)可能需要 root 權限。
  • 測試時請在受控環境中進行,避免影響生產系統。

參考資源

  • 有關各目標的詳細技術說明,請參閱相關安全文檔或漏洞利用指南。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

yaklang/401-403-bypass-techniques

401/403 bypass playbook. Use when encountering access-denied responses on admin panels, API endpoints, or restricted paths. Covers path manipulation, HTTP method tampering, header injection, protocol downgrade, and automated bypass tools.

yaklang/active-directory-acl-abuse

Active Directory ACL abuse playbook. Use when exploiting misconfigured AD permissions including GenericAll, WriteDACL, DCSync rights, shadow credentials, LAPS reading, GPO abuse, and BloodHound-guided attack paths.

yaklang/active-directory-certificate-services

AD Certificate Services attack playbook. Use when targeting misconfigured AD CS for privilege escalation via ESC1-ESC13 template abuse, NTLM relay to enrollment, CA officer abuse, and certificate-based persistence.

yaklang/active-directory-kerberos-attacks

Kerberos attack playbook for Active Directory. Use when targeting AD authentication via AS-REP roasting, Kerberoasting, golden/silver/diamond tickets, delegation abuse, or pass-the-ticket attacks.

yaklang/ai-ml-security

AI/ML security playbook. Use when assessing model supply chain attacks (pickle RCE, poisoned weights), adversarial examples, model poisoning, model stealing, data privacy attacks (membership inference, model inversion), and autonomous agent security risks.

yaklang/android-pentesting-tricks

Android pentesting playbook. Use when testing Android applications for SSL pinning bypass, exported component abuse, WebView vulnerabilities, intent redirection, root detection bypass, tapjacking, and backup extraction during authorized mobile security assessments.

yaklang/anti-debugging-techniques

Anti-debugging detection and bypass playbook. Use when reversing protected binaries that detect debuggers via ptrace, PEB flags, timing checks, or signal/exception handlers on Linux and Windows.

yaklang/api-auth-and-jwt-abuse

API authentication and JWT abuse playbook. Use when testing bearer tokens, API keys, claim trust, header spoofing, rate limits, and API auth boundary weaknesses.

yaklang/api-authorization-and-bola

API authorization and BOLA testing playbook. Use when APIs expose object identifiers, nested resources, hidden writable fields, or weak function-level authorization.

yaklang/api-recon-and-docs

API reconnaissance and documentation review playbook. Use when discovering endpoints, schemas, versions, OpenAPI specs, hidden docs, and surface area for API testing.

yaklang/api-sec

Entry P1 category router for API security. Use when choosing between API recon, authorization, token abuse, and hidden-parameter workflows before any deeper API topic skill.

yaklang/authbypass-authentication-flaws

Authentication bypass testing playbook. Use when assessing login flows, password reset logic, account recovery, MFA bypass, token predictability, brute-force resistance, and session boundary flaws.

yaklang/auth-sec

Entry P1 category router for authentication and authorization. Use when testing login flows, sessions, object authorization, JWT, OAuth, CORS, CSRF, and enterprise SSO weaknesses before any deeper auth topic skill.

yaklang/binary-protection-bypass

Binary protection bypass playbook. Use when identifying and bypassing ASLR, PIE, NX/DEP, stack canary, RELRO, FORTIFY_SOURCE, CET, and MTE protections in ELF binaries to enable exploitation.

yaklang/browser-exploitation-v8

Browser and V8 exploitation playbook. Use when exploiting JavaScript engine vulnerabilities including JIT type confusion, incorrect bounds elimination, and V8 sandbox bypass to achieve renderer RCE and sandbox escape in Chrome/Chromium.

yaklang/business-logic-vuln

Entry P1 category router for business logic testing. Use when workflow abuse, race conditions, pricing flaws, or multi-step state attacks matter more than parser-level input injection.

yaklang/business-logic-vulnerabilities

Business logic vulnerability playbook. Use when reasoning about workflows, race conditions, price manipulation, coupon abuse, state machines, and multi-step authorization gaps.

yaklang/classical-cipher-analysis

Classical cipher analysis playbook. Use when encountering substitution ciphers, Vigenere, transposition, XOR, or encoded text in CTF challenges that requires frequency analysis, Kasiski examination, or known-plaintext cryptanalysis.

yaklang/clickjacking

Clickjacking playbook. Use when testing whether target pages can be framed, whether X-Frame-Options or CSP frame-ancestors are properly configured, and whether UI redress attacks can trigger sensitive actions.

yaklang/cmdi-command-injection

Command injection playbook. Use when user input may reach shell commands, process execution, converters, import pipelines, or blind out-of-band command sinks.

相關技能