小程序漏洞挖掘思路与过程分享
今天给大家分享一下我之前挖一个小程序漏洞的经历,虽然厂商已经修复了,但整体思路和挖掘过程还是值得一说的。
工具与环境准备
首先,工具和环境是必不可少的。我用的客户端版本是3.7.5.23,具体工具就不多说了,大家可以根据自己的习惯选择。
测试目标与方向
我一般测试小程序时,主要关注以下几个方向:找回功能、支付逻辑、炸弹、登录绕过、越权等。这些功能往往是漏洞的高发区。随后,我会进一步寻找注入、上传等高危漏洞。
登录与权限测试
首先,我通过微信客户端打开小程序,输入手机验证码登录。这个小程序的逻辑基本测试完毕,基于权限认证,貌似不存在越权问题。
文件上传测试
接下来,我测试了个人中心(小程序中一般称为“我的”)的上传头像功能。这里应该是做了白名单验证,上传不成功。或者上传成功了,但找不到上传位置。反编译小程序源代码或许能找到点思路,但这次我没有进行此操作。
查看返回包内容,发现上传失败了,图片参数显示未定义。
注入测试
随后,我开始寻找注入点,包括商品、栏目、购物车、个人信息、搜索框等。发现多个未加密的参数,尝试报错、时间盲注,但都没有结果。
搜索框测试
测完其他功能后,只剩下一个搜索框了。之前测试过不少小程序,搜索框只是摆设,并无实际搜索功能,所以最后才测试有无注入。没想到,这次一发入魂,报错注入成功。
后台收集与弱口令测试
通过报错注入,我们收集到了小程序的后台地址。尝试弱口令无果,于是直接跑出账,看看登录进去能不能拿到权限。
用户有好几个,貌似没见过这种加密方式,强用户名,猜测极有可能是弱口令。最终,成功进入后台。
后台上传点测试
进入后台后,首要任务是找上传点。测试了个人信息处的头像上传、课程编辑图片上传,但都上传不了。各种提示文件不支持,要么就是不解析。
权限测试与换账
随后,我随便点开各个功能模块,测试有无别的漏洞。点击其中一个模块提示无权限,说明这只是其中一个账,还有别的不同权限的账。
于是,我换了账,继续弱口令登录进来。这次是一个业务专员的账,页面功能模块不一样了,感觉有戏。
编辑器上传测试
继续找上传点,终于发现了编辑器。测试之后,前端绕过即可,上传成功。
蚁剑连接
最后,使用蚁剑连接,成功获取权限。
总结
前台小程序个人头像上传处上传图片失败(大概率)还是成功,可能需要进一步才能知道。不过,这次漏洞挖掘的过程还是相当顺利的。
希望这次的分享对大家有所帮助,也欢迎大家在评论区交流心得!