网站地图    收藏   

主页 > 后端 > 网站安全 >

Discuz! X2.5 远程代码执行漏洞预警及EXP[XDAY] - 网站

来源:自学PHP网    时间:2015-04-17 13:02 作者: 阅读:

[导读] 看到discuz dede啥的漏洞一下就精神了,哈哈过程简单说下,记的有点乱不贴太多代码了diff一下看balabalabala.....if(!defined(#39;IN_DISCUZ#39;)) {@@ -89,7 +89,7 @@}}if($searcharray $repla......

看到discuz dede啥的漏洞一下就精神了,哈哈……
 
过程简单说下,记的有点乱不贴太多代码了
 
diff一下看
 
balabalabala.....
 
 if(!defined('IN_DISCUZ')) {
@@ -89,7 +89,7 @@
}
}
if($searcharray && $replacearray) {
- $content = preg_replace("/(<a\s+.*?>.*?<\/a>)|(<img\s+.*?[\/]?>)|(\[attach\](\d+)\[\/attach\])/ies", 'helper_seo::base64_transform("encode", "<relatedlink>", "\\1\\2\\3", "</relatedlink>")', $content);
+ $content = preg_replace("/(<a\s+.*?>.*?<\/a>)|(<img\s+.*?[\/]?>)|(\[attach\](\d+)\[\/attach\])/ies", "helper_seo::base64_transform('encode', '<relatedlink>', '\\1\\2\\3', '</relatedlink>')", $content);
$content = preg_replace($searcharray, $replacearray, $content, 1);
$content = preg_replace("/<relatedlink>(.*?)<\/relatedlink>/ies", "helper_seo::base64_transform('decode', '', '\\1', '')", $content);
}
@@ -100,7 +100,7 @@ www.2cto.com
 
public static function base64_transform($type, $prefix, $string, $suffix) {
    if($type == 'encode') {
-      return $prefix.base64_encode(str_replace("\'", "'", $string)).$suffix;    // - -
+      return $prefix.base64_encode(str_replace("\\\"", "\"", $string)).$suffix;
} elseif($type == 'decode') {
       return $prefix.base64_decode($string).$suffix;
}
够清楚吧,问题在/source/class/helper/helper_seo.php 92行附近的:
 
$content = preg_replace(“/(.*?<\/a>)|()|(\[attach\](\d+)\[\/attach\])/ies”, ‘helper_seo::base64_transform(“encode”, ““, “\\1\\2\\3″, ““)’, $content);
 
preg_replace 使用了e修正符,又是双引号,所以导致远程任意代码执行。
 
需要论坛支持个功能,啥功能看68行$_G['cache']['relatedlink'],grep下relatedlink一路跟,具体代码先不贴,找到需要后台开个seo功能,在运营-关联链接/admin.php?frames=yes&action=misc&operation=relatedlink,且至少需要设置一个链接,这功能不是所有管理员都开,但是我觉得大部分都会开,如果不开,它就只能是个后台拿shell的tips了。
 
function_core.php 1925
function parse_related_link($content, $extent) {
return helper_seo::parse_related_link($content, $extent);
}
 
看正则
 
"/(<a\s+.*?>.*?<\/a>)|(<img\s+.*?[\/]?>)|(\[attach\](\d+)\[\/attach\])/ies"
那么利用方式还用说么? 各种地方比如source/include/space/space_blog.php,懂的都懂了:P
 
晚点再公开详细利用方法,一会上班到公司数据中心跑下看影响范围吧,五点了,找程序找好久

作者 北北的blog

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论