这是之前挖一个小程序的漏洞,多次尝试后,最后后台拿到shell,厂商已修复,大概说下整体思路和挖掘过程。
信息收集-文件上传失败-SQL注入(非DBA)-小程序后台-文件上传失败-文件上传成功-GetShell
工具环境:Windows10、VX客户端V3.7.5.23、Proxifier、Bp
域名:https://www.xxx.cn
IP: 101.xx.xxx.8
端口:21、22、3306、888、8888(必须宝塔)443
小程序后台:https://www.xxx.cn/admin/auth/login.html
……
我一般测小程序主要挖密码找回、支付逻辑、短信炸弹、登陆绕过、越权等,随后找注入,上传等能拿到shell的或者其余高危漏洞。
随后微信客户端打开小程序,输入手机号验证码登陆
这个小程序逻辑也基本测完了,基于token做权限认证,貌似不存在越权什么的 剩下的就是个人中心(小程序中一般称我的)上传头像处进行文件上传,此处应该是做了白名单验证,上传不成功
又或者上传成功了,但是找不到上传位置(反编译小程序源代码或许会找到点思路,此处未进行此操作)
查看返回包内容:
应该是上传失败了,图片参数显示未定义
随后就找注入(商品、栏目、购物车、个人信息、搜索框等),有多个未加密的ID参数,尝试报错,时间盲注都无结果
测完了其它功能就剩一个搜索框了(之前测得不少小程序搜索框只是摆设,并无实际搜索功能,所以最后才测试有无注入什么的)
未曾想到一发入魂,报错注入:
熟悉TP的师傅们一眼也能看出来,不是TP就是基于TP二开的,试了试老洞也没有结果
sqlmap看看是不是DBA
很遗憾并不是,但是此时我们已经收集到了小程序的后台:https://www.xxx.cn/admin/auth/login.html
弱口令无果,那就sqlmap跑出来管理员账号密码
直接跑出管理员账号密码看看登陆进去能不能拿到shell
管理员用户有好几个,密码貌似没见过这种加密方式、强用户名,猜测极有可能是弱密码了,123456做密码,进入后台。
进入后台首要找上传点,个人信息处头像上传,课程编辑图片上传、都上传不了马儿
各种提示文件不支持,要么就是不解析什么的
随后随便点开各个功能模块,测试有无别的洞,点击其中一个模块提示无权限。
意思就是这只是其中一个管理员账号,还有别的不同权限的管理员账号
随后换账号,弱密码123456继续登陆进来
是一个业务专员的账号,页面功能模块不一样了,感觉有戏
继续找上传。。。终于,ueditor编辑器,然后看到页面URL,tp的伪静态,估计也有注入,还是找上传吧
测试之后,前端绕过即可,PHP上传成功
蚁剑连接,成功getshell
总结:前台小程序个人头像上传处上传图片失败(大概率)还是成功
推荐阅读