网站地图    收藏   

主页 > 后端 > 网站安全 >

PhpcmsV9 SQL注射 2013年贺岁第一发 - 网站安全 - 自

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 在phpcmsv9的通行证程序内。phpsso_server/phpcms/modules/phpsso/classes/phpsso.class.php内的一行代码if(get_magic_quotes_gpc()) {$this-data = new_stripslashes($this-data);}这里的输入在magic_quot......

在phpcmsv9的通行证程序内。
phpsso_server/phpcms/modules/phpsso/classes/phpsso.class.php
内的一行代码
 
if(get_magic_quotes_gpc()) {
$this->data = new_stripslashes($this->data);
}
这里的输入在magic_quotes_gpc开启的时候居然stripslashes了。。。
 
然后就没有然后了。。。。。 
在开启magic_quotes_gpc的环境下,去到phpcms登陆的界面,输入
xxxxxxxxxxxx' or '1
 
密码随意输入,提示“密码错误”而非“账户不存在”就证明你可以注入了。
 
 
 
 
为什么提示不一样??如下
 
 
if($status == -1) { //用户不存在
showmessage(L('user_not_exist'), 'index.php?m=member&c=index&a=login');
} elseif($status == -2) { //密码错误
showmessage(L('password_error'), 'index.php?m=member&c=index&a=login');
} else {
showmessage(L('login_failure'), 'index.php?m=member&c=index&a=login');
}
 
若把v9_sso_applications中的数据读出来,这就是一个严重漏洞了。 
 
修复方案:

其实没必要stripslashes。 官方已放出升级,请及时补丁
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论