Fiddler抓取小程式後端請求匯入AppScan掃描快捷方法
1.背景
AppScan 本身並不能直接抓取微信小程式的 HTTP 請求。原因在於微信小程式在執行時並不直接暴露其 HTTP 通訊給外部工具,而是透過微信提供的 API 和框架進行網路通訊。
2.工具鏈
HCL AppScan
HCL AppScan(原名IBM AppScan)是一款動態應用程式安全測試(DAST)工具。它作為HCL Software公司的產品,主要用於幫助安全專家和滲透測試者檢測web應用程式、API和移動應用程式中的安全漏洞。以下是關於HCL AppScan的詳細介紹:
掃描規則強大:使用業界強大的DAST掃描引擎,內建數萬個掃描規則,能夠自動檢索目標應用程式並測試漏洞。
問題分級分類:測試結果按優先順序排列,方便測試人員快速分類問題、發現最關鍵的漏洞。
提供修復建議:每個檢測到的問題都會提供清晰且可操作的修復建議,以指導開發人員快速修復安全問題。
持續監控測試:透過持續測試和評估網頁服務和應用程式風險,有助於防止破壞性的安全漏洞的出現,減輕測試及運維人員壓力並提升效率。
HLC App Scan 是 IBM Security 的一款自動化 web 應用程式安全測試工具。它可以幫助開發人員和安全團隊識別、評估並報告 web 應用程式中的安全漏洞,包括 SQL 注入、跨站指令碼(XSS)、跨站請求偽造(CSRF)等常見的 web 應用程式安全風險。但是,你可以透過以下幾種方式間接地獲取或模擬微信小程式的 HTTP 請求:
使用代理工具:你可以在客戶端(如手機或模擬器)上設定一個代理伺服器,然後讓所有的網路請求都透過這個代理伺服器。這樣,你就可以在代理伺服器上捕獲並分析這些請求了。常用的代理工具有 Charles、Fiddler 等。
Fiddler工具介紹
Fiddler是一款強大的HTTP協議除錯代理工具,它能夠記錄並檢查計算機和網際網路之間的HTTP通訊。以下是關於Fiddler的詳細介紹以及如何使用它直接抓取微信小程式的HTTP請求:
功能特點:
記錄並檢查所有透過電腦的HTTP通訊,包括進出Fiddler的資料(如cookie、html、js、css等檔案)。
可以針對特定的HTTP請求,分析請求資料、設定斷點、除錯web應用、修改請求的資料,甚至可以修改伺服器返回的資料。
支援所有可以設定http代理為127.0.0.1:8888的瀏覽器和應用程式。
Windows上的Git Bash
Windows上的Git Bash是一款專為Windows設計的應用程式,它提供了一個模擬的Unix命令列環境,使得使用者能夠在Windows系統上使用Git命令和其他常見的Unix/Linux命令。
Git Bash在Windows上存在的原因主要是為了方便開發者在Windows上無縫切換工作流程,並增強跨平臺協作效率。它模擬了Unix環境,使得在Windows上進行Git版本控制操作更加便捷,同時也為開發者提供了一個熟悉且強大的命令列介面。
Git Bash中包含CURL的原因主要有以下幾點:
Git Bash的Unix/Linux命令相容性:Git Bash不僅支援Git命令,還提供了一系列Unix工具和命令,如ls、cd、grep、awk、sed等。CURL作為一個常用的命令列工具,用於發出網路請求並獲取資料,也被包含在內。這使得習慣Linux或MacOS環境的開發者能夠在Windows上繼續使用他們熟悉的命令列工具和指令碼。
Git Bash的MSYS環境:Git Bash基於MSYS,這是一個小型的MinGW和GNU環境,為Windows系統提供了一個Unix-like的層。MSYS環境支援執行更多複雜的shell指令碼和程式,CURL作為其中的一個元件,也被整合到Git Bash中。
Git Bash的開發環境整合:開發者可以利用Git Bash配置和管理他們的開發環境,包括安裝額外的工具和配置環境變數等。CURL作為一個常用的網路工具,自然也被包含在Git Bash的開發環境配置中
微信Windows客戶端上的小程式功能為使用者提供了在微信電腦版中直接使用小程式的能力。以下是關於微信Windows客戶端上小程式功能的詳細解釋:
位置與訪問:
使用者首先需要在電腦上下載並安裝微信Windows客戶端,並登入自己的微信賬號。
在微信Windows客戶端的主介面左側,使用者會看到一個豎向展示的標籤欄。在這個標籤欄中,找到並點選倒數第三個圖示(通常是一個圓環樣式的圖示),這就是小程式的入口。
點選小程式圖示後,會彈出一個小程式介面,使用者可以在這裡檢視最近使用過的小程式,或者透過搜尋來查詢想要開啟的小程式。
功能與應用:
微信Windows客戶端上的小程式功能允許使用者在電腦上直接開啟和使用小程式,無需透過手機進行操作。
使用者可以透過滑鼠和鍵盤來操作小程式,這與在手機上使用觸控螢幕的方式有所不同,但同樣方便高效。
微信Windows客戶端上的小程式通常支援多視窗同時開啟,使用者可以在不同的小程式之間輕鬆切換,提高了工作效率。
CURL
curl
是一個常用的命令列工具,用於傳送 HTTP/HTTPS 請求。-x
或 --proxy
選項在 curl
命令中用於指定代理伺服器。
-x
或 --proxy
選項詳解
-x
或 --proxy
選項允許你為 curl
請求設定一個代理伺服器。這在你需要透過一箇中間伺服器(例如,防火牆、代理伺服器)傳送請求時非常有用。
3.準備工作與軟體安裝
Git bash
https://gitforwindows.org/
HLC App Scan 10.0.7以上
https://www.hcltechsw.cn/product/appscan/partners
Fiddler Classic
https://zhuanlan.zhihu.com/p/670514236
4.步驟
1. 從微信windows客戶端進入小程式,選擇需要抓包的小程式
2. 開啟對應的被測試小程式,使用Fiddler進行抓包
3. Fiddle中選取需要匯出 curl
4. 開啟內容查詢替換字串,增加代理配置, 此處 127.0.0.1:42620是APPSCAN使用其他客戶端掃描監聽的埠, 另儲存sh 檔案
curl -k -x 127.0.0.1:42620 -i --raw -o 0.dat -X POST "https://xxx.com/ipqss/sysx/captcha/check" -H "Host: xxx.com" -H "Connection: keep-alive" -H "xweb_xhr: 1" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b09) XWEB/9129" -H "Content-Type: application/json" -H "Accept: */*" -H "Sec-Fetch-Site: cross-site" -H "Sec-Fetch-Mode: cors" -H "Sec-Fetch-Dest: empty" -H "Referer: https://servicewechat.com/wx3a9d36318670e5ac/2/page-frame.html" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: zh-CN,zh;q=0.9"
curl -k -x 127.0.0.1:42620 -i --raw -o 1.dat -X POST "https://xxx.com/ipqss/sysx/captcha/get" -H "Host: xxx.com" -H "Connection: keep-alive" -H "xweb_xhr: 1" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b09) XWEB/9129" -H "Content-Type: application/json" -H "Accept: */*" -H "Sec-Fetch-Site: cross-site" -H "Sec-Fetch-Mode: cors" -H "Sec-Fetch-Dest: empty" -H "Referer: https://servicewechat.com/wx3a9d36318670e5ac/2/page-frame.html" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: zh-CN,zh;q=0.9"
curl -k -x 127.0.0.1:42620 -i --raw -o 2.dat -X POST "https://xxx.com/ipqss/sysx/auth/v1/login/account" -H "Host: xxx.com" -H "Connection: keep-alive" -H "xweb_xhr: 1" -H "X-Requested-With: XMLHttpRequest" -H "authorization: undefined undefined" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b09) XWEB/9129" -H "Content-Type: application/json" -H "Accept: */*" -H "Sec-Fetch-Site: cross-site" -H "Sec-Fetch-Mode: cors" -H "Sec-Fetch-Dest: empty" -H "Referer: https://servicewechat.com/wx3a9d36318670e5ac/2/page-frame.html" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: zh-CN,zh;q=0.9"
curl -k -x 127.0.0.1:42620 -i --raw -o 3.dat -X POST "https://xxx.com/ipqss/sysx/captcha/get" -H "Host: xxx.com" -H "Connection: keep-alive" -H "xweb_xhr: 1" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b09) XWEB/9129" -H "Content-Type: application/json" -H "Accept: */*" -H "Sec-Fetch-Site: cross-site" -H "Sec-Fetch-Mode: cors" -H "Sec-Fetch-Dest: empty" -H "Referer: https://servicewechat.com/wx3a9d36318670e5ac/2/page-frame.html" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: zh-CN,zh;q=0.9"
curl -k -x 127.0.0.1:42620 -i --raw -o 4.dat -X POST "https://xxx.com/ipqss/sysx/customsms/open/resetPasswordBySms" -H "Host: xxx.com" -H "Connection: keep-alive" -H "xweb_xhr: 1" -H "X-Requested-With: XMLHttpRequest" -H "authorization: undefined undefined" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090b09) XWEB/9129" -H "Content-Type: application/json" -H "Accept: */*" -H "Sec-Fetch-Site: cross-site" -H "Sec-Fetch-Mode: cors" -H "Sec-Fetch-Dest: empty" -H "Referer: https://servicewechat.com/wx3a9d36318670e5ac/2/page-frame.html" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: zh-CN,zh;q=0.9"
儲存即可
5. 在本地另一個SH客戶端執行指令碼如下,發現APPSCAN已經記錄
6. APPSCAN儲存,進行完整掃描
今天先到這兒,希望對雲原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 專案管理, 產品管理,資訊保安,團隊建設 有參考作用 , 您可能感興趣的文章:
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
影片直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續整合/CD
網際網路電商購物車架構演變案例
網際網路業務場景下訊息佇列架構
網際網路高效研發團隊管理演進之一
訊息系統架構設計演進
網際網路電商搜尋架構演化之一
企業資訊化與軟體工程的迷思
企業專案化管理介紹
軟體專案成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共享
高效能的團隊建設
專案管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
網際網路資料庫架構設計思路
IT基礎架構規劃方案一(網路系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之效能實時度量系統演變
如有想了解更多軟體設計與架構, 系統IT,企業資訊化, 團隊管理 資訊,請關注我的微信訂閱號:
作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
該文章也同時釋出在我的獨立部落格中-Petter Liu Blog。