ECShop是国内比较好的开源电子商务软件,只是在被shopex收购后,发布的程序漏洞都比较大。不知道是开发团队不受重视导致的人心浮躁,还是免费的就粗枝大叶的发布,想让尽快的将一部分客户引导到shopex上去。以上纯属个人猜测,但bug是实实在在存在的,而且还比较致命。轻着被挂个链接,权重被转向301 ,严重的客户资料被拿走,总之,整个网站在别人的掌控之下,没有什么商业秘密可言了。以下转自网络
漏洞程序:ECShop 2.7.2
公布时间:2010-05-06
由于最近项目需要, 查看了下商派最新发布的ECShop 2.7.2正式版的源代码, 没想到在看到第二个文件时就发现了一处比较明显, 且低级漏洞。这个漏洞可以让任何人以任何用户身份登录到ECShop前台!
漏洞的影响
ECShop 2.7.2
ECShop 2.7.1 不受影响
漏洞的出现
漏洞出现在/include/init.php文件的512行左右, 代码如下:
ecshop 2.7.2 最新任意用户登录漏洞代码
从代码中可以看出, 当SESSION中不存在用户登录信息的时候, 会查看COOKIE中的$_COOKIE['ECS']['user_id']和$_COOKIE['ECS']['password']两个变量。如果 两个变量都不为空,则查询user表中user_id为$_COOKIE['ECS']['user_id']的用户, 如果该用户存在, 就直接置为登录状态。而对$_COOKIE['ECS']['password']在整个判断过程中并未进行使用。
大家都知道,COOKIE是可以伪造的,所以用工具轻松添加这个两个变量, 并设置$_COOKIE['ECS']['user_id']为有效值,即可以任意账户登录系统
相同的认证方式,在后台的代码(/admin/include/init.php:229)中却又有比较安全的验证方式, 代码如下:
ecshop 2.7.2 最新任意用户登录漏洞代码
这里不仅验证了后台用户ID的有效性, 还进一步验证了$_COOKIE['ECSCP']['admin_pass']的有效性, 这样就是比较完善的方式。
漏洞简单利用
打开由ecshop 2.7.2构建的商城系统, 当前为未登录状态
打开COOKIE编辑软件, 这里我用的FireFox的插件FireCookie
新建两个COOKIE变量:$_COOKIE['ECS']['user_id']和$_COOKIE['ECS']['password'], 如下图所示:
ecshop 2.7.2 最新任意用户登录漏洞利用
现在刷新页面, 你已经登录了, . . . → Read More: ECShop最新版漏洞不断
