好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

在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登陆的界面,输入

 

密码随意输入,提示[密码错误]而非[账户不存在]就证明你可以注入了。

 

 

 

 

为什么提示不一样??如下

 

 

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。 官方已放出升级,请及时补丁

 

查看更多关于PhpcmsV9 SQL注射 2013年贺岁第一发 - 网站安全 - 自的详细内容...

  阅读:51次