记一次微信小程序渗透测试

记一次微信小程序渗透测试

1
信息收集-文件上传失败-SQL注入(非DBA)-小程序后台-文件上传失败-文件上传成功-GetShell

工具环境:Windows10、VX客户端V3.7.5.23、Proxifier、Bp

1.proxifier+bp抓取微信小程序进程包

image-20221205234756668

2.信息收集

1
2
3
4
5
域名:https://www.xxx.cn
IP: 101.xx.xxx.8
端口:21、22、3306、888、8888(必须宝塔)443
小程序后台:https://www.xxx.cn/admin/auth/login.html
……

我一般测小程序主要挖密码找回、支付逻辑、短信炸弹、登陆绕过、越权等,随后找注入,上传等能拿到shell的或者其余高危漏洞。

3.文件上传(失败)

随后微信客户端打开小程序,输入手机号验证码登陆

image-20221205234730198

这个小程序逻辑也基本测完了,基于token做权限认证,貌似不存在越权什么的
剩下的就是个人中心(小程序中一般称我的)上传头像处进行文件上传,此处应该是做了白名单验证,上传不成功

又或者上传成功了,但是找不到上传位置(反编译小程序源代码或许会找到点思路,此处未进行此操作)

image-20221205235148942

查看返回包内容:

应该是上传失败了,图片参数显示未定义

image-20221205235259085

随后就找注入(商品、栏目、购物车、个人信息、搜索框等),有多个未加密的ID参数,尝试报错,时间盲注都无结果

image-20221206001038084

4.SQL注入(非DBA)

测完了其它功能就剩一个搜索框了(之前测得不少小程序搜索框只是摆设,并无实际搜索功能,所以最后才测试有无注入什么的)

image-20221205235025747

未曾想到一发入魂,报错注入:

熟悉TP的师傅们一眼也能看出来,不是TP就是基于TP二开的,试了试老洞也没有结果

sqlmap看看是不是DBA

5.小程序后台

很遗憾并不是,但是此时我们已经收集到了小程序的后台:https://www.xxx.cn/admin/auth/login.html

image-20221205235654671

弱口令无果,那就sqlmap跑出来管理员账号密码

直接跑出管理员账号密码看看登陆进去能不能拿到shell

管理员用户有好几个,密码貌似没见过这种加密方式、强用户名,猜测极有可能是弱密码了,123456做密码,进入后台。

6.文件上传(失败)

进入后台首要找上传点,个人信息处头像上传,课程编辑图片上传、都上传不了马儿

各种提示文件不支持,要么就是不解析什么的

image-20221206000044981

唉~

随后随便点开各个功能模块,测试有无别的洞,点击其中一个模块提示无权限。

意思就是这只是其中一个管理员账号,还有别的不同权限的管理员账号

随后换账号,弱密码123456继续登陆进来

7.文件上传(成功)

是一个业务专员的账号,页面功能模块不一样了,感觉有戏

继续找上传。。。终于,ueditor编辑器,然后看到页面URL,tp的伪静态,估计也有注入,还是找上传吧

测试之后,前端绕过即可,PHP上传成功

8.GetShell

蚁剑连接,成功getshell

总结:前台小程序个人头像上传处上传图片失败(大概率)还是成功,可能需要裤子脱下来才能知道,算了吧

你裤子都没脱,你凭什么?