menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right UsualToolcms 8.0 前台sql chevron_right UsualToolcms 8.0 前台sql.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    UsualToolcms 8.0 前台sql.md
    1.53 KB / 2021-07-15 20:08:33
        UsualToolcms 8.0 前台sql
    ========================
    
    一、漏洞简介
    ------------
    
    二、漏洞影响
    ------------
    
    三、复现过程
    ------------
    
    ### 漏洞分析
    
    search.php
    
        $key=UsualToolCMS::sqlcheck($_GET["key"]);
        $navname="search";
        require_once(dirname(__FILE__).'/'.'mytop.php');
        //搜索记录
        if(!empty($key)):
        $asql="SELECT * FROM `cms_search` WHERE keyword ='$key'";
        $adata=mysqli_query($mysqli,$asql);
        if(mysqli_num_rows($adata)>0):
        $mysqli->query("UPDATE `cms_search` SET `hit`=hit+1 WHERE keyword ='$key' and lang='$language'");
        else:
        $mysqli->query("INSERT INTO `cms_search` (`lang`,`keyword`) VALUES ('$language','$key')");
    
    \$key被sqlcheck函数过滤了,让我们看下这个函数
    
        function sqlchecks($StrPost){
        $StrPost=str_replace("'","’",$StrPost);
        $StrPost=str_replace('"','“',$StrPost);
        $StrPost=str_replace("(","(",$StrPost);
        $StrPost=str_replace(")",")",$StrPost);
        $StrPost=str_replace("@","#",$StrPost);
        $StrPost=str_replace("/*","",$StrPost);
        $StrPost=str_replace("*/","",$StrPost);
        return $StrPost;
        }
    
    如果没有Url编码的话这里应该是不存在漏洞的了,仔细看上面的代码,数据库操作中还有一个\$language,我们追踪下\$language吧
    
    全局查找,直接找到其定义的地方
    
    conn.php
    
        if(!empty($_COOKIE['UTCMSLanguage'])):$language=$_COOKIE['UTCMSLanguage'];else:$language=$indexlanguage;endif;
    
    \$language没有经过任何过滤就从Cookie传了进来
    
    这就简单咯
    
    ### 复现
    
    image
    
    
    links
    file_download