如何不花一分錢獲得高級賬戶
我在 bugcrowd 上的一個私人程序中發現了一個錯誤。為方便程序隱私,方便讀者理解,我將其命名為marzuki.com
marzuki.com 有兩個帳戶等級,免費和高級,這裡沒有試用版。用戶必須以每月 50 美元的價格購買訂閱才能成為高級會員。幾周前,我測試了marzuki.com,但錯過了註冊的端點,註冊時出現了這個bug。有一個易受攻擊的參數導致攻擊者無需支付即可獲得高級帳戶
OK,我們進入枚舉步驟找參數。您可以使用 param miner(現在支持 POST json 參數)。
插件地址:
您可以使用 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 找到一些東西
您可以將所有這些結合起來製作最終的字典。Github上還有更多;這些只是我經常使用的部分參考!
自定義字典:
可以使用公共字典,但有時需要自定義目標特定字典。現在,當我在大範圍內工作或有很多目標要在範圍內進行測試時,我通常會使用它。因為某些參數偶爾會在特定的子域中使用,但由於開發者喜歡複製粘貼程序,它們也可能在另一個目標上起作用。
現在,這是其中一種方法,但是如果我告訴你有更好的方法呢,好吧,我要與你分享的這個方法是使用 Burp 本身,這個方法的唯一問題是它很慢因為你需要手動爬取網站,但如果你有 Burp Pro,這可以克服。
您將需要getAllParams擴展,您可以將其安裝在 Burp Pro中。
步驟
安裝和配置擴展。
手動或自動抓取目標。
轉到 Burp Target 選項卡,選擇要為其構建字典的域,右鍵單擊,然後從列表中選擇「獲取所有參數」
現在,導航到「獲取所有參數」選項卡並複製「找到的潛在參數」下顯示的所有參數並將它們粘貼到文本文件中。
常用測試隱藏參數的工具
這些是對我有用的工具;如果你有其他的,你也可以使用它們。
這是一個比較上述前三個工具優劣的文章:
您也可以使用其他工具,例如 ffuf 甚至是 burp intruder 本身,但我喜歡使用專門為這項工作設計的工具。
結論
參數發現可能非常有用,但許多人忽略或沒有意識到它,他們經常忘記或忘記何時執行它。如果您想找到那些隱藏的錯誤,這可能是一個很好的開始。有了這個,我想結束,我希望你在下一次挖洞中獲得意想不到的驚喜。
當你測試一個程序時,不要錯過任何功能,我之前在幾周前測試過這個程序但錯過了註冊功能。嘗試像普通用戶一樣瀏覽,瀏覽所有可用的功能,然後考慮不應該發生的事情。嘗試對任何請求 GET/POST/PATCH/PUT 進行模糊測試。查找隱藏參數是一個好方法。
推薦閱讀:
實戰 | 記一次對鄰居家的滲透測試
實戰 | 記一次賞金20萬美元的PayPal漏洞挖掘
實戰 | 記一次觀看YouTube視頻,收穫一枚價值4300美金的SQL注入
實戰 | WAF-Bypass之SQL注入繞過思路總結
點讚,轉發,在看
部分參考來源:medium
由HACK整理翻譯,如需轉載請註明來源