最近接到一个渗透任务,必要对小步调举行测试,通过搜索干系资料,最终使用proxifier成功将小步调流量导向burp,然后通过burp再导向xray。另外使用KillWxapkg对小步调举行反编译,得到了小步调发布代码。
之前做过许多web的渗透测试,先介绍一下web渗透测试的内容,主要是关注两个方面:
一、接口
1、有没sql注入等高危漏洞。设置好代理后,开启xray监听相应端口,在浏览器上访问目的网站就可以将流量导向xray举行测试。
2、接口的输入有没通过序列举行查询,可举行暴力遍历查到其他用户的数据。
3、接口的输出有没敏感数据,比如输出了密码、身份证号(未脱敏)等信息。
接口的输入和输出主要通过浏览器调试工具中的网络请求选项卡来看。
二、网页代码
通过人工查看代码,可以看到隐藏的解释信息或功能逻辑。比如早期的html文件中,常常有些步调员写的解释,可能会留有测试账号的信息。或者留有邮箱、联系电话,可以举行钓鱼或者社工攻击。另有一些隐藏的功能,在网页上没有看到,但在代码中有,我们可以使用浏览器调试工具,让js执行对应的函数,如果有隐藏的接口,也可以直接通过postman设置好对应参数举行调用。
小步调的渗透测试和web不太一样,他是由微信小步调历程加载的,网络流量不可见,代码不可见,在一定程度上增加了安全性。不过,我们可以使用以下方式,对其举行渗透分析。
Proxifier
Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络步调能通过HTTPS或SOCKS代理或代理链。我们可以通过Proxifier设置,把PC上运行的小步调流量导出来。设置如下:
1、代理设置
profile>proxy server>add,address填127.0.0.1,port填8080,protocol选择https。
2、转发规则
profile>proxification rules>add,name填wechat(可随意),Applications填wechatappex.exe(小步调历程);Action选择Proxy HTTPS 127.0.0.1
Burpsuite
我们用burp主要是方便看他的网络请求的接口(输入和输出的数据),以及重放和爆破。
1、代理设置
proxy增加代理监听127.0.0.1:8080(要和Proxifier的代理设置同等)
注意拦截器要切换成关闭状态,否则待会小步调访问接口会壅闭。
如果是第一次使用burp代理,使用浏览器访问127.0.0.1:8080,右上角点击下载CA证书
双击证书存放到【受信托的根证书颁发机构】
2、转发设置
connections增加上游代理服务器127.0.0.1,端口7777(对应xray监听端口)
Xray
我们用xray对接口举行自动测试,主要是检测sql注入、xss等漏洞。
1、天生证书
执行下令xray_windows_amd64 genca
会在根目录下天生ca.crt,双击导入证书
2、开始监听
执行下令xray_windows_amd64 webscan --listen 127.0.0.1:7777 --html-output proxy.html
其中7777是监听端口,要和burp的上游代理服务器设置相同。proxy.html是扫描报告输出的文件名。
如果有报错说file proxy.html already exists, please backup and remove it at first,说明xray根目录中已经有proxy.html,必要将输出文件名改个名字,或者移除proxy.html。
以上设置完毕后,我们开始在PC上访问小步调,手动点击各个页面和按钮。我们可以看到burp的站点地图内里展示出了接口请求数据。
xray也同时扫描接口。
等xray上输出
All pending requests have been scanned,说明已经扫描完毕,我们可以查看根目录中的proxy.html,他会分项展示扫描结果。
KillWxapkg
接下来我们开始分析小步调发布代码,我们先定位小步调存放路径,一样寻常在C:\Users\Administrator\Documents\WeChat Files\Applet\下,有许多小步调目录。小步调目录以小步调ID命名(以wx开头,如果我们分不清晰是哪个,可以先关闭小步调,删除该目录下所有的文件夹,然后再次访问小步调。)
小步调目录中有个子文件夹(估计是小步调版本号),内里有__APP__.wxapkg文件,就是小步调的加密包。
下载可执行文件
我找了几个工具,他们的基本原理是先从小步调存放路径中得到加密包,导入解密工具举行解密,解密后会得到wxapkg步调包,然后反编译步调包得到小步调代码(这里说的代码指的是小步调发布代码,并不是项目源码,有经过一定的js压缩和肴杂)。内里最好用的工具是KillWxapkg,下载链接在此。
从release中下载最新版本的可执行文件KillWxapkg_2.4.1_windows_amd64.exe
执行下令
KillWxapkg_2.4.1_windows_amd64.exe -id=小步调ID -in="C:\Users\Administrator\Documents\WeChat Files\Applet\小步调ID\版本号\__APP__.wxapkg" -out =./output -restore -pretty -sensitive
等候1分钟左右,小步调代码会输出到output目录下
从输出文件可以发现,它就是小步调发布前在开辟者工具中看到的代码。
我们把项目拖进HBuilderX,对文件举行自动缩进。从上图可见,代码照旧有一定的可读性,基本只是一些局部变量被简化。我们从中可以发现隐藏的逻辑和接口。比如上图所示,有个隐藏的登录接口,答应传入特定的测试账号举行登录。我们可以在burp中抓取其他的接口,对请求包举行修改,调整接口路径和传参举行测试,从而获取登录权限,进而渐渐渗透。
有人问我,为何他看到的代码是肴杂得没法看的。我做了个实行,使用了微信官方自带的小步调加固方案(文档在此)发布了小步调,然后再用KillWxapkg举行逆向,发现代码确实已经不具备可读性。
以是作为小步调开辟者,在上传发布代码前,要使用官方自带的加固方案确保代码安全。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |