@1kbfree
2018-12-18T21:37:06.000000Z
字数 809
阅读 943
漏洞挖掘
在实际的注入中,有分很多情况,比如报错注入,数字注入,字符注入,二次注入,编码注入,盲注入等,而这节课就是为了讲解盲注的,废话不多说,打开
dvwa
开撸~
首先打开我们的DVWA
将等级设置为LOW
,并且打开SQL Injection (Blind)
这个选项,如下。
然后我们在输入框中输入1
,查看返回什么
上图的SQL
语句是我在源代码处加了一条打印的代码,这样子更加方便学习和讲解
那么我们再输入一个不存在的ID
会怎么样
可以看到他这里的用意是,如果ID
存在的会显示User ID exists in the database.
,如果ID
不存在会显示User ID is MISSING from the database.
,那么这就是盲注了,他不会想报错注入那样,会输出错误的信息然后我们可以直接查询表中的数据,而盲注的话则需要自己猜测数据
DVWA
盲注来学习盲注有几种方式来复现,首先讲的是
substr
函数的用法
substr(n1,n2,n3)
截取n1的值,从第一个字符开始,每次只返回一个。
可以看到substr
很容易理解吧,那么我们就用这个函数来去盲注一下看看~
可以看到,上图执行的sql
语句是
SELECT first_name, last_name FROM users WHERE user_id = '1' and substr(user(),1,1)='r';
意思就是查询user_id='1'
并且user()
的第一个字符的内容如果是r
那么这条语句是成立的,否则是为假的~,那么这里的返回是User ID exists in the database.
说明user()
的第一个字符是r
,那么我们继续猜测
ok,就是这样依次类推,不再讲下去了
if (条件,return1,return2)
如果条件为`true`返回值是`return1`,如果条件为`false`返回值是`return2`
if
进行盲注