安全研究
安全漏洞
PHP mysqli_real_escape_string()函数信息泄露漏洞
发布日期:2009-09-27
更新日期:2009-09-29
受影响系统:PHP PHP <= 5.3
描述:
PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。
PHP所使用的mysqli_real_escape_string())函数从用户输入字符串获得参数,如果所传送的值为数组而不是字符串就会生成警告,警告消息中包含有当前运行脚本的完整路径。
<*来源:David Vieira-Kurz
链接:
http://marc.info/?l=bugtraq&m=125414837718571&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
Proof of concept:
http://localhost/cms/sqlfilter/sqlsanatizer.php?params[]=
Warning: mysqli_real_escape_string() expects parameter 1 to be string,
array given in /var/www/vhosts/cms/sqlfilter/sqlsanatizer.php
建议:
临时解决方法:
<?PHP
if(isset($_GET['user'])) {
if (is_array($user = $_GET['user'])) {
$casted = (string)$user;
// next steps
...
} else {
$query = sprintf("SELECT * FROM users WHERE user='%s'",
mysqli_real_escape_string($user),
}
}
?>
厂商补丁:
PHP
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.php.net浏览次数:7404
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载 绿盟科技给您安全的保障 |