来源:自学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