靶场sqli-labs的练习笔记(盲注Blind SQL、报错注入等)第二章

首先是基础讲解

盲注Blind SQL

在进行SQL注入的时候,通常开发者隐藏了报错例如爆出404等信息,那么这时候我们就需要进行盲注。

通常有两种盲注方式

1.布尔注入,根据回显的信息,例如True和false判断自己与自己输入的值是否一致。从而才出他的完整性。

2.时间注入,页面返回的值只有一种的时候(即为无论输入什么结果都按照正常的进行处理0),那么这时候我们就需要通过时间函数进行时间注入,通过页面的相应时间进行判断语句是否输入正确。

首先要明白  and  or  1=1等这些基本概念

####

1.首先我们需要找到数据库的注入点

2.猜解数据库名称   (有些网站的数据库和域名有关)

3.猜表名(长度)

4.猜字段(字段名、数量、长度)

5.猜数据(重要的信息)

基于布尔的盲注!!!

函数方法

length()

例如length(database());会爆出数据库的长度

之后我们就需要使用and进行逻辑判断

select username,password from user where id=1 and (length(database())=8);

 由于and必须两边的条件都要满足,左边id=1肯定是真值,那么如果length函数猜错不等于8的时候就会没有回显

 

不仅可以输入=还可以输入<>之后利用二分法进行判断数据库名称的长度

 了解到基本的内容之后我们开始靶场

构建我们的语句

http://192.168.6.127/sqli-labs-master/Less-1/?id=1' and (length(database=())=8);

左边id=1必定成立,若右边不成立则没有反应,若为正确的返回不同的结果

 

 ####

新函数

substr(database(),a,b)

database()是要截取的字符串名称

a为从第几个字符开始截取

b为截取几个字符

注意ab均为十进制的数字,ab只是为了抽象展示

#######

知道了上述的之后,我们就可以开始继续猜数据库名字了

仍然用刚才演示的

id=1 and (substr(database(),1,1))=s

左边恒成立,右边错误不显示信息

同时我们还可以将subsrt(database()1,1)转化为ascii表

即为ascii(subsrt(database()1,1))

之后可以利用二分法或者一段一段的去猜测

实战演示

 任意变换100,直到快接近目标了,然后开始写等于号

#########

在了解这些之后,我们开始了解一些新的函数

right(database()1,1)

从右侧读取字符

left(database(),1,1)

从左侧读取字符

mid(database(),1,1)

从中间截取字符

 

#####

基于时间盲注

使用if和sleep函数,if用来判断,sleep用来休眠

先上一段简单代码方便理解

MariaDB [security]> select * from users where id=1 and if(1=1,1,sleep(3))

若if后的判断语句成立那么执行if(1)则通过什么都不执行

若if侯的判断语句不成立,那么执行if(sleep(3))页面休眠三秒

 

select * from users where id=1 and if(ascii(substr(database(),1,1))=116,1,sleep(3));

同理若ascii(substr(database(),1,1))=116中成立则执行1即通过,如果不成立则休眠

实战演示

 

很清晰的看见延迟明显的上升了

这种情况下我们注入通常在没有回显点的地方

###########

这种方式通常也称为报错注入

 我们打开靶场的第八关

没有回显

那么我们可以使用报错注入

那么就说明了报错了,我们需要重新写当我们猜对数据的时候

 

还是那个思路

1.首先我们需要找到数据库的注入点

2.猜解数据库名称   (有些网站的数据库和域名有关)

3.猜表名(长度)

4.猜字段(字段名、数量、长度)

5.猜数据(重要的信息)

 

 

 ###########

SQL注入导出到文本中

select * from users into outfile "/var/lib/mysql/mysql1.txt";

最好就写到mysql下的目录中

 

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值