Fiddler抓取小程序后端请求导入AppScan扫描快捷方法
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
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。