如何在特定的滲透測試中使用正確的Burp擴展插件
寫在前面的話
Burp Suite是很多滲透測試人員會優先選擇使用的一款強大的平台,而且安全社區中也有很多研究人員開發出了大量的功能擴展插件並將它們免費提供給大家使用。這些插件不僅能夠簡化滲透測試的過程,而且還能夠以各種非常有趣的方式進一步增強Burp Suite的功能。
實際上,其中的很多擴展插件都是為解決特定問題而存在的。換個角度來看,我們如何能夠選擇和調整特定的擴展插件以更好地滿足我們的需求呢?這就是本文想要跟大家分享的東西了。
一般來說,想要修改第三方Burp擴展往往是非常困難的,不過整個安全社區也在努力讓所有的Burp擴展實現開源,並使用類似的擴展構建方法來設計這些擴展插件。在這篇文章中,我們將簡單地告訴大家如何自定義修改一款Burp擴展,並且根據自己的滲透測試和安全審計的需求來搭建出一個高效的Burp環境。
接下來,我會對著名的Collaborator Everywhere擴展進行個性化修改,並讓它能夠注入額外的查詢參數以嘗試檢測出SSRF漏洞,最後通過HUNT擴展來進行漏洞驗證。
開發環境搭建
首先,我們要創建出自己的開發環境。為了使用Java來編輯擴展插件,我們要安裝Java JDK以及Gradle。如果擴展使用的是Python或Ruby,那你就不用安裝Java相關的組件了,不過 Git還是會使用到的。
獲取代碼
接下來我們要獲取目標擴展的源代碼。訪問https://portswigger.net/bappstore搜索你的目標擴展,然後點擊頁面的「View Source Code」按鈕。點擊之後你將跳轉到擴展的GitHub頁面(以Collaborator Everywhere為例-【GitHub主頁】),然後你可以選擇下載ZIP包或直接在終端使用Git命令將項目代碼克隆到本地。例如:
git clonehttps://github.com/portswigger/collaborator-everywhere
驗證環境(Java only)
在你開始修改之前,你要確保你已經成功構建了jar包並將其載入進了Burp。如果你不知道如何構建jar包的話,你可以查看BappManifest.bmf文件中的BuildCommand相關內容。就CollaboratorEverywhere來說,我們可以直接使用命令gradle fatJar來完成構建。
採用&測試修改
如果你成功將新構建的jar文件載入進了Burp並且能正常工作的話,你就可以準備開始修改代碼並進行重構了。
Collaborator Everywhere會從項目目錄resources/injections中讀取payload,所以我可以在沒一個參數後面添加一行我想要注入的內容即可。比如說,下面這行代碼會添加一個名叫『feed』的GET參數,並以HTTP URL的形式呈現:
param,feed,http://%s/
如果哪一個特定的Payload觸發了錯誤異常的話,你可以直接用#將其注釋掉之後再慢慢調試。
接下來,我們可以通過觀察擴展的流數據(請求和響應)來判斷修改操作是否成功。下圖顯示的是修改後的擴展運行情況,表明我們自定義的擴展已經能夠正常工作了:
最後需要提醒大家的是,不必要的修改很可能會帶來負面影響噢!
後話
如果你想與安全社區分享你自定義的增強版擴展,你可以向PortSwigger庫提交擴展插件(pull request),或單獨建立一個GitHub代碼庫。
某些擴展插件可能修改起來會非常的困難,但是考慮到開發環境的搭建並不難,所以我建議大家可以嘗試去個性化修改一些Burp擴展,因為這也是一個學習和積累經驗的過程嘛!
* 參考來源:portswigger, FB小編Alpha_h4ck編譯,轉載請註明來自FreeBuf.COM


※CIA 新一波工具AngelFire: 針對Windows系統的永久惡意框架
※硬核與底層漏洞齊飛:2017騰訊安全國際技術峰會次日精彩回顧
※新勒索軟體「Defray」可通過Microsoft Word文檔傳播
※特別企劃 | 維基解密CIA泄露盤點:駭人聽聞的攻擊部門和全方位黑客工具
※Kali Linux下社工密碼字典生成工具Cupp和Cewl教程
TAG:FreeBuf |