移动端渗透测试—小程序

移动端渗透测试—小程序

服务端渗透测试

MITM(中间人攻击)抓包

通过配置代理工具捕获小程序的网络请求,以分析潜在的安全问题。

配置 CA 证书

  1. 使用 BurpSuite 生成 CA 证书。
  2. 将证书导入系统并完成配置,确保系统信任该证书。

设置代理工具 – Proxifier

工具Proxifier 注册码Proxifier 注册码 功能:为系统中的任意程序配置代理,灵活控制网络流量。

配置步骤

  1. 打开 Profile → Proxy Servers,添加代理服务器:

    • 输入代理地址和端口(如 BurpSuite 的代理地址,通常为 127.0.0.1:8080)。
    • 选择代理协议(HTTP/HTTPS/SOCKS)。

    image-20250812134729851

  2. 配置 Proxification Rules(代理规则):

    • 打开 Profile → Proxification Rules

    • 点击 Add,新建规则:

      • Name:自定义规则名称。

      • Applications:选择需要走代理的程序(如微信小程序)。

      • Action:选择代理方式:

        • Proxy:所有流量通过配置的代理。
        • Direct:不通过代理直接连接。
        • Block:阻止所有网络连接。

    image-20250812135231971

微信小程序抓包

  1. 为微信小程序配置代理规则并启用。
  2. 打开 BurpSuite,启动拦截或其他相关功能。
  3. 访问微信小程序,即可捕获小程序的网络请求数据包。

image-20250812141540711

客户端渗透测试

客户端渗透测试主要通过逆向分析微信小程序的 .wxapkg 文件,挖掘敏感信息,如密钥、Secret、后台 API 路径等。

微信小程序文件定位

小程序文件通常位于微信保存目录的上级目录中的 Applet 文件夹内,以 wx 开头的文件夹存储小程序数据。

  • 根据文件夹的修改时间,确定目标小程序的文件夹。
  • 文件夹内的 .wxapkg 文件即为小程序的包文件。

image-20250812151350419

微信小程序解包

工具 1:wxapkg

功能:将 .wxapkg 文件解包为 HTML、CSS、JS、JSON 文件,但无法还原完整的工程目录。

使用命令

wxapkg.exe scan
wxapkg.exe scan --disable-beautify

工具 2:KillWxapkg

功能:解包 .wxapkg 文件并还原小程序的完整工程目录。

使用命令

KillWxapkg_2.4.1_windows_amd64.exe -id [wx文件夹名] -in [__APP__.wxapkg] -pretty -restore -save
  • -id:小程序目录文件名(如 wx123456789)。
  • 执行命令后,可获得完整的工程目录。

image-20250812153751378

image-20250812153847709

使用微信开发者工具分析

  1. 下载并安装 微信开发者工具

  2. 将解包后的工程目录导入开发者工具。

  3. 打开项目,检查代码中是否存在敏感信息(如密钥、API 路径)或风险接口。

    • 微信开发者工具通常会提示敏感信息或高风险接口。

image-20250812160919536

image-20250812161114826

小程序常见信息泄露漏洞

信息泄露可能出现在服务端(需抓包分析请求/响应数据)或客户端(需反编译小程序分析 JS 代码)。以下为常见漏洞及挖掘方法。

参考教程

小程序 session_key 泄露漏洞

危害:导致任意手机号登录。

特点:微信小程序独占。

挖掘时机:小程序登录时(通常小程序打开后会自动登录)。

触发登录页面

  1. 检查小程序是否有 退出登录 功能,点击退出后重新登录。
  2. 打开小程序,启动 BurpSuite 拦截,丢弃(Drop)自动登录的请求包,强制触发登录登录页面所需的请求。

分析步骤

  1. 检查请求/响应数据中是否包含 session_key
  2. 查找登录请求/响应中的 ivencryptedData(小程序登录时通常包含这两个字段)。
  3. 若发现 session_keyivencryptedData,可尝试解密数据。

解密工具bp_miniprogram_decrypt

  • 依赖:需要安装 Jython(Java 实现的 Python 解释器)。

安装步骤

  1. 安装 Jython:

    image-20250812165252410

  2. 在 BurpSuite 中安装插件:

    • 打开 Extensions,选择 Extension type 为 Python。
    • 添加 bp_miniprogram_decrypt 插件。

    image-20250812165357737

    image-20250812170129025

漏洞利用

  1. 使用插件解密 encryptedData,获取敏感信息(如手机号)。
  2. 修改解密后的数据(如替换为其他手机号),重新加密。
  3. 将修改后的加密数据替换到请求包中,尝试实现任意用户登录。

小程序 AppSecret 密钥泄露漏洞

危害:攻击者可以获取 AppSecret 调用服务器后台的所有接口(接口如何使用,参考 官方文档)。

特点:一般即时通讯 APP 容易出现此类漏洞,如钉钉、微信、企业微信等。

漏洞原因AppSecret 是小程序的唯一凭证密钥,用于获取全局唯一后台接口调用凭证(access_token),需妥善保管在后台服务器中。若后端 API 接口将 AppSecret 敏感信息返回给前端(包括前端请求或小程序代码内传输、记录),会导致密钥泄露。

检测方法

  1. 代码层面:检查小程序前端代码和后端 API 接口,确认是否存在 AppSecret 的明文传输或记录,尤其关注 API 响应中是否包含 AppSecret
  2. 抓包分析:对小程序网络请求进行抓包,检查请求响应中是否包含 appidAppSecret 敏感信息,特别是在 HTTPS 流量中可能存在泄露。

利用方法

  1. 通过抓包获取泄露的 appidAppSecret
  2. 例如利用获取的 AppSecret 调用接口获取 access_token 等。
  3. 随后使用 access_token 调用小程序后台接口,可以获取到相关信息。

小程序云 AK/SK 泄露漏洞

危害:AK/SK 是公有云(阿里、腾讯、华为、京东、字节、百度、AWS、Google 等)的访问密钥,攻击者可以使用 AK/SK 接管部分或整个公有云。

特点:所有的网站、APP 都可能发生 AK/SK 泄露。

漏洞点:JS,反编译后的 APK 或小程序,SpringBoot actuator heapdump 等。

漏洞原因AK/SK(访问密钥 ID 和秘密访问密钥)是用于生成用户与云平台 API 通信的凭据,其中 SK 必须保密,否则会导致安全问题。攻击者获取 AK/SK 后可调用云厂商 API,接管云账户、云主机、云存储等功能。 漏洞成因包括:

  1. 小程序代码泄露 AK/SK:将 AK/SK 硬编码到小程序代码或配置文件中,攻击者通过反编译小程序包即可获取。
  2. 网络请求泄露 AK/SK:后端 API 将 AK/SK 返回至前端,攻击者通过网络抓包获取后端返回的数据。

检测方法

  • 代码层面:检查小程序代码或配置文件,寻找 AK/SK 是否硬编码(如在源代码、配置文件中直接可见)。
  • 网络流量层面:对小程序进行抓包,分析后端 API 返回的数据,检查是否存在 AK/SK 字段泄露。

利用方法

  • 攻击者获取 AK/SK 后,可调用云厂商 API,接管云账户、云主机、云存储等功能,或通过云平台管理工具导入云资源。

工具cloudsword

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇