0x01 任意密码重置+文件上传
目标是一套教育的小众收费cms系统,经过挖掘发现存在任意密码重置:
所以直接来到找回密码处,重置admin的密码
系统采用的验证方式是发送邮箱的验证码,验证码会直接放在响应包中:
输入验证码,重置成功:
重置admin账号密码后成功登录系统,上传文件位置没有做限制,任意文件上传一把梭。
shell到手。
0x02重置普通用户+另一处文件上传
隔一段时间去看,上一次在我热心的报送后,加了点限制。
虽然加了限制不能重置管理员admin的密码,但本身漏洞还在,仍然可以重置其他用户密码,说干就干,爆破账号,获得账号1000001
继续下去,通过返回包获得验证码,然后重置密码:
重置密码成功,赶紧去看我的文件上传还能不能上传,发现不能上传了。
试了一会,不能绕过,转测其他功能点:
附件上传成功,管理员只对之前的一处文件上传做了限制,并没有对其他上传点做限制。成功getshell。
0x03绕过限制重置管理员密码+文件上传
过了几天挖不到洞了回来看看,发现之前的账号规则都修改了,账号不是数字,也无法重置管理员admin的密码,猜测既然不是工号,那么无非有两种可能,字母+字数或者是姓名。说干就干,直接爆破。
字母+数字爆破比较麻烦,范围也大,由于用户过多,可能性也小,果断选择中文姓名爆破:
爆破中文账户需要先将中文姓名通过url编码写进字典里面。
成功获得账户名:
再次去重置密码==》成功登录==》找文件上传。
但是发现对所有文件上传位置都做了限制,绕不开,想其他办法。
普通用户无法上传文件:“暂不支持该文件类型,如有需要,请联系管理员”
所以想办法看看能不能再次重置管理员密码,尝试管理员文件上传,在重置密码的第二步,传参是用户名和密码,并没有对验证码进行效验(当然,验证码我们也知道,但问题是第一步的管理员账户无法重置,所以这里算是绕过了不能重置管理员密码的限制)
成功重置管理员admin密码,以管理员登录,上传文件果然无限制,成功getshell,至此已经三次getshell了。
0x04后台任意文件下载获取数据库权限
过了几天再去看看。管理员密码被修改了,而且忘记密码功能已经被删除了(想必管理员也是累了)。使用我们之前重置密码的普通用户上去测试一番。果然,上传点啥的,都做了限制。上传没问题了,但是下载有问题,个人网盘里面存在任意文件下载。
使用目录穿越可下载其他目录文件,尝试下载apache-tomcat根目录的notice文件
扫了一下端口,发现开了mysql外链:
尝试读取META-INF/context.xml文件,获取jdbc数据库连接密码文件。
成功获取到密码:root xxxxxxxxx
连接数据库成功:
测试数据库查询获取数据。提交!
0x05 SQL注入获取全校数据库信息
过了几天实在挖不到洞了再回来看看。由于忘记密码功能已经没了,我手里一个用户都没有,但可能是觉得没了重置密码功能不舒服,管理员增加了一个手机验证码登录功能,改成了直接用短信登录:
尝试短信轰炸,发送回显成功,但是实际上没发过来,简单绕一下,没绕过:
发现短信验证码为4位数,尝试准备爆破。
爆破之前随手测了一手注入,成功发现报错注入一枚,前台后台找遍了都没找到sql注入,结果新加了一个功能随手就出了一个注入,大喜过望。
Sqlmap一把梭,有堆叠注入,但写不进去shell,这就很头疼。
没法写shell,使用超级sql注入工具,把管理员密码读出来,但无法解密。
通过sqlmap读密码未果。
但还是可以通过sqlmap跑出所有全校师生所有数据。提交!
验证码爆破功能由于不知道管理员手机号,暂时没法利用。到时候社工一波,又能getshell了。
总结:
1、任意密码重置管理员密码文件上传getshell
2、普通用户后台文件上传getshell
3、越权重置管理员密码文件上传getshell
4、任意文件读取获取数据库权限
5、sql注入获取数据库权限。
点赞 在看 转发
原创投稿作者:csz
本文始发于微信公众号(HACK学习君):实战|记某CMS三进三出Getshell记录
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论