zoukankan      html  css  js  c++  java
  • dedecms /plus/feedback_ajax.php、/templets/feedback_main.htm、/templets/feedback_edit.htm XSS && SQL Injection Vul

    catalog

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

    1. 漏洞描述

    通过该漏洞可以注入恶意代码到评论标题里,网站管理员在后台管理用户评论时触发恶意代码,直接危及到网站服务器安全

    Relevant Link:

    http://skyhome.cn/dedecms/367.html
    http://www.soushaa.com/dedecms/dede_11533.html

     
    2. 漏洞触发条件
    3. 漏洞影响范围
    4. 漏洞代码分析

    /plus/feedback_ajax.php

    //保存评论内容
        if(!empty($fid))
        {
            $row = $dsql->GetOne("Select username,msg from `#@__feedback` where id ='$fid' ");
            $qmsg = '{quote}{title}'.$row['username'].' 的原帖:{/title}{content}'.$row['msg'].'{/content}{/quote}';
            $msg = addslashes($qmsg).$msg;
        }
        $ischeck = ($cfg_feedbackcheck=='Y' ? 0 : 1);
        //未对$title进行有效的XSS过滤
        $arctitle = addslashes($title);
        $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'); ";

    /templets/feedback_main.htm

    //未进行有效的输入XSS过滤
    <u>{dede:field.arctitle/}</u>

    /templets/feedback_edit

    //未进行有效的输入XSS过滤
    <?php echo $row['arctitle']; ?>


    5. 防御方法

    /plus/feedback_ajax.php

    //保存评论内容
    if(!empty($fid))
    {
        $row = $dsql->GetOne("Select username,msg from `#@__feedback` where id ='$fid' ");
        $qmsg = '{quote}{title}'.$row['username'].' 的原帖:{/title}{content}'.$row['msg'].'{/content}{/quote}';
        $msg = addslashes($qmsg).$msg;
    }
    $ischeck = ($cfg_feedbackcheck=='Y' ? 0 : 1);
    //未对$title进行有效的XSS过滤
    //$arctitle = addslashes($title);
    /* 增加XSS防御逻辑 */
    $arctitle = addslashes(HtmlReplace($title));
    $typeid = intval($typeid);
    $feedbacktype = preg_replace("#[^0-9a-z]#i", "", $feedbacktype);
    /* */

    /templets/feedback_main.htm

    <u>{dede:field.arctitle function=HtmlReplace(@me)/}</u>

    /templets/feedback_edit

    <?php echo HtmlReplace($row['arctitle']); ?>

    Relevant Link:

    http://www.111cn.net/wy/Dedecms/55965.htm


    6. 攻防思考

    Copyright (c) 2015 LittleHann All rights reserved

  • 相关阅读:
    H264学习第一篇(编码结构分析)
    mybatis.xml文件中#与$符号的区别以及数学符号的处理
    mybatis批量插入返回主键问题
    mybais整合的框架没有sql-debug输出
    jQuery选择器方式-用的不多的name选择器
    css样式增加&改变颜色
    jstl-vaStatus 属性count与index
    highchart导出功能的介绍更改exporting源码
    bootstrap-validator验证问题总结
    bootstrap-table 加载不了数据问题总结
  • 原文地址:https://www.cnblogs.com/LittleHann/p/4507854.html
Copyright © 2011-2022 走看看