干貨 | SRC和漏洞挖掘中的隱藏參數測試手法和工具總結
如何不花一分錢獲得高級賬戶我在 bugcrowd 上的一個私人程序中發現了一個錯誤。為方便程序隱私,方便讀者理解,我將其命名為marzuki.com
marzuki.com 有兩個帳戶等級,免費和高級,這里沒有試用版。用戶必須以每月 50 美元的價格購買訂閱才能成為高級會員。幾周前,我測試了marzuki.com,但錯過了注冊的端點,注冊時出現了這個bug。有一個易受攻擊的參數導致攻擊者無需支付即可獲得高級帳戶
OK,我們進入枚舉步驟找參數。您可以使用 param miner(現在支持 POST json 參數)。
插件地址:
https://github.com/xnl-h4ck3r/burp-extensions

您可以使用 Logger++ burp 插件查看進度。
您還可以使用 arjun 或其他工具進行參數發現。
非易受攻擊的請求

在我運行 param miner 并發現隱藏參數和此升級帳戶到高級版后請求,無需支付一分錢

漏洞報告已發送,并在三天內給予賞金

隱藏參數的挖掘技巧
現在我希望你明白為什么檢測隱藏參數很重要;它可以幫助您找到 XSS、IDOR、SSRF、權限提升、LFI、Open Redirects 等漏洞。即使在某些情況下 PII 泄漏 ,很多人都錯過了。
隱藏參數測試方法讓我們從方法論開始吧!這很簡單“到處猜!”,開個玩笑“不要打掛服務器。”
何時何地進行模糊測試:
每當您看到一個空白頁面并得到200 OK響應時。
在常見的請求上,例如:login.php?Fuzz_Here或/login?FUZZ_Here
并且 Uncommon Endpoints 是必須的
例如:/Thisendpointmakesnosense.php?FUZZ或/something?Fuzz
此外,還有在其請求中已經包含許多參數的功能。
我通常將端點提供給 burp 中的 parm-miner 以便在中繼器中對其進行測試時進行猜測,如果 param-miner 沒有發現任何內容,我會在Burp intruder 或其他工具(如x8或Arjun )中使用一些單詞表。在進行模糊測試時,要記住的是限制您正在使用的工具中的參數和線程的數量,并確保程序允許進行模糊測試。
總體要做什么:
選擇最吸引人的目標端點。使用單詞表,將其發送到 Tool for Fuzzing Params。如果輸出中有任何東西,請手動測試 XSS、SSRF、權限提升等。
隱藏參數字典我遵循下面列出的順序,但可能會因目標而異。我通常會使用 param-miner 和 Arjun Default Wordlist 找到一些東西
Arjun 所有默認詞表:https://github.com/s0md3v/Arjun/tree/master/arjun/db 參數礦工“參數”:https://github.com/PortSwigger/param-miner/blob/master/resources/params 資產注釋“parameters_top_1m”:https://wordlists.assetnote.io/ nullenc0de “params.txt”:https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
您可以將所有這些結合起來制作最終的字典。Github上還有更多;這些只是我經常使用的部分參考!
自定義字典:
可以使用公共字典,但有時需要自定義目標特定字典。現在,當我在大范圍內工作或有很多目標要在范圍內進行測試時,我通常會使用它。因為某些參數偶爾會在特定的子域中使用,但由于開發者喜歡復制粘貼程序,它們也可能在另一個目標上起作用。
cat urls | unfurl format %q | cut -d "=" -f1 | sort -u > params.txt
現在,這是其中一種方法,但是如果我告訴你有更好的方法呢,好吧,我要與你分享的這個方法是使用 Burp 本身,這個方法的唯一問題是它很慢因為你需要手動爬取網站,但如果你有 Burp Pro,這可以克服。
您將需要getAllParams擴展,您可以將其安裝在 Burp Pro中。
步驟安裝和配置擴展。
https://github.com/xnl-h4ck3r/burp-extensions
手動或自動抓取目標。
轉到 Burp Target 選項卡,選擇要為其構建字典的域,右鍵單擊,然后從列表中選擇“獲取所有參數”
Target -> Extension -> Get All Params
現在,導航到“獲取所有參數”選項卡并復制“找到的潛在參數”下顯示的所有參數并將它們粘貼到文本文件中。
常用測試隱藏參數的工具這些是對我有用的工具;如果你有其他的,你也可以使用它們。
x8:https://github.com/Sh1Yo/x8 Arjun:https://github.com/s0md3v/Arjun param礦工:https://github.com/PortSwigger/param-miner parameth:https://github.com/maK-/parameth
這是一個比較上述前三個工具優劣的文章:
https://sh1yo.art/post/parameter_discovery_tools_comparison/
您也可以使用其他工具,例如 ffuf 甚至是 burp intruder 本身,但我喜歡使用專門為這項工作設計的工具。
結論參數發現可能非常有用,但許多人忽略或沒有意識到它,他們經常忘記或忘記何時執行它。如果您想找到那些隱藏的錯誤,這可能是一個很好的開始。有了這個,我想結束,我希望你在下一次挖洞中獲得意想不到的驚喜。
當你測試一個程序時,不要錯過任何功能,我之前在幾周前測試過這個程序但錯過了注冊功能。嘗試像普通用戶一樣瀏覽,瀏覽所有可用的功能,然后考慮不應該發生的事情。嘗試對任何請求 GET/POST/PATCH/PUT 進行模糊測試。查找隱藏參數是一個好方法。