
GraphQL API滲透測試指南
查看歷史流量
注意,在響應包中出現了參數
"id":"*****",
"image":****
輸入手機號和圖形驗證碼在獲取驗證碼后再查看請求體
這里含有圖形驗證碼的ID和orgNumber
開始使用識別驗證碼插件識別
# 驗證碼插件識別下載地址
https://github.com/c0ny1/captcha-killer/releases/tag/0.1.2
將驗證碼請求包發送到驗證碼識別插件中
進行發送,報錯了,缺少關鍵字,關鍵字就是img內容的字段
獲取成功后,導入ddddocr模版
然后開啟識別腳本
可以看到識別度是100%
進行短信轟炸還需要提取驗證碼ID
作者不清楚burp這個步驟哪里操作,求原諒
有知道的佬可以聯系我,我向你取經
這里使用TangGO 測試工具來進行提取圖形驗證碼的ID以及img內容來爆破
# 工具下載地址
https://tanggo.nosugar.tech/#/
打開 TangGO 測試工具,找到 HTTP模糊測試工具:
打開后進入到自定義流程中,新建
丟入圖形驗證碼請求包后,把完整的響應體返回給get_yzm變量完成配置后,點擊測試
可以成功獲取到圖形驗證碼響應體,再增加一條流程來提取響應體的ID和image內容
將響應體發送到正則表達式生成器中
選取ID值,后點擊正則表達式,進行測試后提取ID值成功,復制正則表達式后,新建流程數據處理流程
操作變量就是剛才獲取響應體的綁定變量,然后對處理規則新建
添加成功后,再返回到正則提取器中選取image內容
這默認是20,修改成5即可,拿到正則表達式后,再增加數據處理流程
目前是三條流程
需要把image內容去識別出驗證碼,那么就需要獲取識別驗證碼的API請求
打開Wireshark,由于API是本地開啟的,就選擇回環流量
然后輸入HTTP進行篩選出HTTP請求,然后在burp驗證碼識別插件中進行識別,來獲取API接口的請求
查看它的HTTP流(ctrl+alt+shift+H)
觀察API請求,請求體就是圖片的base64編碼
POST /reg HTTP/1.1
Authorization: Basic f0ngauth
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0
Connection: keep-alive
Host: 127.0.0.1:8888
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Length: 3484
Content-Type: application/x-www-form-urlencoded
圖片base64編碼
再新建流程對api請求獲取識別后的驗證碼,丟入API請求后,在請求頭中插入提取的image內容綁定的變量
這個就是完整流程
獲取到圖形驗證碼響應體->提取ID?&&?提取inage->api接口識別驗證碼
然后對獲取驗證碼請求插入對應變量
然后進入測試過程進行測試配置
點擊開始測試后轟炸
可以看到響應中短信驗證碼發送成功
查看測試流程和最終請求體
查看手機短信結果
其實這里的短信驗證碼也有問題的,由于沒有限制的直接發送短信驗證碼,且短信驗證碼是4位數更是20分鐘有效,在爆破短信驗證碼后,既可注冊成功獲取到賬戶token值,達到任意用戶注冊這里我就沒有多寫了
修復建議:
1、限制驗證碼的有效時效,通常設置在30秒至50秒之間失效。
2、限制同IP在短時間內頻繁請求驗證碼。
3、對圖片驗證碼,增加噪點渲染,防止被光學字符識別(OCR)識別。
4、短信驗證碼輸入錯誤,立即刷新圖形驗證碼,每一次獲取短信驗證碼時進行圖形驗證碼校驗,設置短信驗證碼錯誤次數上限需要重新獲取新的短信驗證碼,以防止對短信驗證碼的暴力破解攻擊。
文章轉自微信公眾號@Kei sec
GraphQL API滲透測試指南
Python + BaiduTransAPI :快速檢索千篇英文文獻(附源碼)
掌握ChatGPT API集成的方便指南
node.js + express + docker + mysql + jwt 實現用戶管理restful api
nodejs + mongodb 編寫 restful 風格博客 api
表格插件wpDataTables-將 WordPress 表與 Google Sheets API 連接
手把手教你用Python和Flask創建REST API
使用 Django 和 Django REST 框架構建 RESTful API:實現 CRUD 操作
ASP.NET Web API快速入門介紹