burpsuite的app也簡稱bapp,可擴展許多更進階的功能,在bapp store上可以選擇多個bapp並下載,幾個常見的bapp介紹如下
Collaborator Everywhere
功能: 能夠自動尋找HTTP標頭中的SSRF,該功能將對每個請求放入常見的header做測試並進行重送
使用方法:
可以把要分析的目標網站指定在 target scope
並瀏覽,此功能就會進行分析。如果有發現任何異常將顯示在Issue
中 。
refer
http://blog.portswigger.net/2017/07/cracking-lens-targeting-https-hidden.html
功能測試可參考:
Lab: Blind SSRF with Shellshock exploitation
param miner
功能:可發現潛在的隱藏參數。對於查找web cache poision很有幫助
使用方法:
在Target
>
Site map
指定其中一個請求按右鍵選Extensions > Param Miner > Guess params
有四個選項可以用
- Guess GET parameters
- Guess cookie parameters
- Guess headers
- Guess everything!
選擇後會對請求傳送測試請求到目標,測試完可以Extensions > Installed > Param Miner > Output
看結果
舉例來說,如果發現x-forwarded-host和x-original-url有問題會顯示如下信息
Queued 1 attacks
Initiating header bruteforce on 0af00023034b2a7380814e2c00a5009e.web-security-academy.net
Identified parameter on 0af00023034b2a7380814e2c00a5009e.web-security-academy.net: x-forwarded-host~%s.%h
Identified parameter on 0af00023034b2a7380814e2c00a5009e.web-security-academy.net: x-original-url~/%s
refer
https://cn-sec.com/archives/2316992.html
https://www.wangan.com/p/7fygfgb3a9adb6b1
功能測試可參考:
Lab: Web cache poisoning to exploit a DOM vulnerability via a cache with strict cacheability criteria
Lab: Combining web cache poisoning vulnerabilities
Turbo Intruder
功能:可以使用極低的資源非常快速的發送請求
使用方法:
以單個請求攻擊方法為例, 先選擇一個請求按右鍵選Extensions > Tubo Intruder > Send to Turbo Intruder
,把原本請求欄位中需要更換的值替換成%s
然後在下拉選單中選擇examples/race-single-packer-attack.py
,並使用passwords = wordlists.clipboard
功能,這會要求此工具使用剪貼簿的列表
完整代碼如下(以下是使用http2協定的寫法)
def queueRequests(target, wordlists):
# as the target supports HTTP/2, use engine=Engine.BURP2 and concurrentConnections=1 for a single-packet attack
engine = RequestEngine(endpoint=target.endpoint,
concurrentConnections=1,
engine=Engine.BURP2
)
# assign the list of candidate passwords from your clipboard
passwords = wordlists.clipboard
# queue a login request using each password from the wordlist
# the 'gate' argument withholds the final part of each request until engine.openGate() is invoked
for password in passwords:
engine.queue(target.req, password, gate='1')
# once every request has been queued
# invoke engine.openGate() to send all requests in the given gate simultaneously
engine.openGate('1')
def handleResponse(req, interesting):
table.add(req)
加速策略
1.減少請求頭大小
透過從請求中刪除不必要的標頭和 cookie 來減少每個請求的出站流量要求,使其盡可能小
2.選擇最快的引擊
速度排名依序是Engine.HTTP2,Engine.THREADED,Engine.BURP2,Engine.BURP
3.調整引擎設定
目標是找到使RPS(每秒請求數)值最大化的值,同時使重試計數器保持接近0
使用Engine.BURP2或Engine.BURP引擎,只要調整concurrentConnections
使用Engine.HTTP2或Engine.THREADED,可調整管道、requestsPerConnection和並發連接參數
4.優化回呼程式碼
例如table.add() 會為 Swing 執行緒帶來沉重的負載,因此可以透過分析每個回應來決定是否將其放入結果表中,從而減輕系統的 CPU 負擔。另外,避免使用正規表示式和循環字串連接。
refer
https://mp.weixin.qq.com/s?__biz=MzAxNDM3NTM0NQ==&mid=2657035813&idx=3&sn=367a002882fbcf76bef85f1424067513&chksm=803fc6fbb7484fed3c007fb39044611b5736bf7429033b393333f7ca118961f2e3b89834b397&scene=0&xtrack=1
https://portswigger.net/research/turbo-intruder-embracing-the-billion-request-attack
功能測試可參考:
Lab: Web shell upload via race condition
Lab: Server-side pause-based request smuggling
Lab: Bypassing rate limits via race conditions
Hackvertor
功能:支持各種hash轉義和編碼,例如unicode,16進制,8進制,html實體等編碼, 並具有自動解碼功能,可以猜測所需要轉換的類型並自動解碼多少
使用方法
在請求中選擇想分析的內容按右鍵選Extensions > Hackvertor > Encode > dec_entities/hex_entities
refer
https://portswigger.net/bappstore/65033cbd2c344fbabe57ac060b5dd100
https://portswigger.net/web-security/sql-injection/lab-sql-injection-with-filter-bypass-via-xml-encoding
Python Scripter
功能:可在送出請求時自動根據python代碼做修改
使用方法:
使用該功能前需要先讓burpsuite安裝python standalone獨立jar包, 可在http://www.jython.org下載2.7.0版本.然後到burpsuite的extender / option / python environment
指定該jar包
接著就可以到python scripter
撰寫python代碼自動修改請求
refer
https://www.freebuf.com/news/193657.html
CPH
功能:提供burpsuite Marcos更多功能, 例如能額外支援json格式(內建功能不支援) .
使用方法
在cph option 設定scope: intruder, repeater
在cph tab設定如下
1 find matches to this expression
ex:(messageId\"\:\")(.{32,32})
2 target the first
of the matches
3 replace each target with this expression
ex:\g<1>\g<mid>
4 choose the value i need is dynamic
然後選擇value returned by issuing a sequence of requests
然後在下方填方expression
ex:messageId\"\:\"(?P<mid>.*?)"\,\"expire
refer
https://www.anquanke.com/post/id/231145
SQLiPy
功能:可自動調用sqlmap對請求做測試
使用方法:
- 需要先啟用sqlmap,並指定burpsuite的IP和port
python sqlmapapi.py -s -H <IP> -p <Port>
- 到burpsutie的
sqlmap api
區域指定IP和port後點擊start api
注意事項: 該工具不會把所有header都送出去,要自己到CUSTOMER HEADER
增加原請求的header
例如:
在headers欄位增加Content-Type: application/json\nAccept-Language: en-US
,如困要增加多個header那要用\n
做分隔
refer
https://portswigger.net/support/using-burp-with-sqlmap
其他可用做sqlmap自動測試的app還有
- gason插件
- sqlmap4burp插件
refer
https://t0data.gitbooks.io/burpsuite/content/chapter18.html
JWT Editor
功能:可分析jwt token並修改token內容
RouteVulScan
功能:一個使用Java開發的burp插件,可以遞歸地偵測存在漏洞的路徑。此插件可以透過被動掃描遞歸地偵測每一層的路徑,並透過設定的正規表示式來匹配對應套件的關鍵字,並顯示在VulDisplay介面上。您可以自訂相關路徑、比對資訊和漏洞名稱。偵測到的url將列印在Output中,如果是重複的url,則不會要求並列印在Errors中。如果存取的url符合Config的規則,就會儲存在VulDisplay面板中進行顯示。
該功能僅能搭配專業版
JS Link Finder
功能:用於被動掃描 JavaScript 檔案中的端點連結。將結果匯出到文字檔案 – 排除特定的js文件,例如 jquery、google-analytics。可能會有些API介面會被隱藏在JS中沒有被啟動。這時候可以使用JS Link Finder
插件輔助分析Javascript檔案中的接口
該功能僅能搭配專業版
其他burpsuite常用插件介紹
https://www.mad-coding.cn/2019/10/04/burpsuite常用插件推荐与使用/#0x00-前言