51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4686|回复: 0
打印 上一主题 下一主题

[原创] 两方面讲透什么是微信小程序渗透测试

[复制链接]
  • TA的每日心情
    擦汗
    5 天前
  • 签到天数: 1027 天

    连续签到: 2 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-5-26 09:58:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    引言
      自2017年面世以来,微信小程序以其相较于APP的进入门槛更低,开发周期更短,费用更低的优势,已经构造了新的微信小程序开发环境和开发者生态。
      当前,微信小程序已经赋能了社交、娱乐、旅游出行、购物、餐饮、支付、理财等多种场景。
      但随着小程序生态的建立,其特有的安全风险也逐步显示出来:因为小程序本质也是网页交互,其通讯更容易被破解。
      本文将从客户端和服务器两个层面讲解微信小程序渗透测试。

      客户端层面
      客户端方面,主要是对微信小程序进行反编译,得到源代码,检测源代码的保护强度以及是否存在信息泄露,如密钥硬编码等。
      要进行反编译,关键是要获取小程序的 .wxapkg 文件。接下来以安卓手机为例,演示反编译的过程和需要的工具。
      前置条件:
      (1)一个root的安卓手机(安装RE文件管理器);
      (2)手机微信打开要测的小程序(打开后,微信会自动缓存小程序的.wxapkg文件);
      (3)一台安装了node.js运行环境的电脑(官网下载安装即可)。
      第一步:电脑上安装反编译工具wxappUnpacker
      gitbub下载wxappUnpacker:
      https://github.com/58810890/wxappUnpacker。下载完成后,到wxappUnpacker目录下安装依赖:
    npm install esprima
    npm install css-tree
    npm install cssbeautify
    npm install vm2
    npm install uglify-es
    npm install js-beautify







      安装完成后,输入如下命令查看,如正常返回,则表示成功。


      第二步:安卓手机上打开RE文件管理器,在如下目录找到小程序的.wxapkg文件:
      /data/data/com.tencent.mm/MicroMsg/(一长串字符串)/Appbrand/pkg


      将对应的wxapkg文件拷贝到电脑上wxappUnpacker目录的子目录testpkg下,这个目录是自己创建的。


      第三步:运行反编译的命令如下:
      node wuWxapkg.js  ./testpkg/_-238827099_223.wxapkg


      执行后,查看结果,如果出现如下信息,则表示反编译成功。


      反编译成功后,在vs code中打开即可看到源代码。


      服务端层面
      在服务端层面,主要是依据微信小程序的特性,模拟攻击者从SQL注入、越权访问、文件上传、CSRF以及信息泄露等漏洞方面进行测试,这个其实与常规的web安全测试类似。
      而测试的关键步骤就是进行微信小程序的报文抓取。
      这里推荐使用苹果手机进行测试,原因是Android7.0以上系统、微信7.0版本及以上均不信任用户自定义安装的个人证书,所以无法抓取小程序的HTTPS报文。
      因此,建议使用苹果设备,在设备上安装了抓包工具如Burpsuite的证书后,将其设置为根证书信任,这样就能抓取小程序的HTTP报文了。
      第一步:打开抓包工具,设置代理IP和端口


      第二步:在手机端的Wlan连接中,设置对应的代理IP和端口。
      第三步:打开微信小程序,操作功能,Burpsuite进行抓包。

      第四步:对抓到的报文进行分析, 如下面的请求报文中传了一个参数memberNo,看到这个参数一般就能想到去对参数进行篡改,看是否存在memberNo遍历、水平越权、SQL注入等等。


      对于如下HTTP响应报文,我们也可以检测是否有多余的信息回显、敏感信息泄露等。


      总结
      本文从客户端和服务器两个层面讲解了微信小程序渗透测试。
      在客户端层面,主要是通过获取小程序的wxapkg包,然后进行反编译,对源代码进行分析判断是否存在信息泄露和保护强度不足的漏洞。
      服务端层面,主要是通过中间人攻击的方式,截获报文,篡改报文从而检测是否存在SQL注入、越权访问、文件上传、CSRF以及信息泄露等漏洞。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-10-5 06:36 , Processed in 0.087001 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表