暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

布尔盲注学习

原创 王芷枫 2025-04-11
31

学习目标:

  • 掌握布尔盲注的知识
  • BUUCTF练习题
  • 靶场练习题

学习内容:

1.布尔盲注知识

盲注,就是在服务器没有错误回显时完成的注入攻击。
就得找一个方法来判断自己的语句是否得到了执行,比如输入正确的信息跳转到正确的页面,错误的信息到错误的页面,用上一些函数来判断证实我们的猜想,比如ascii()、substr()、length(),exists()、concat()

-

-

-

2.靶场练习题8

get输入类型,输入id=1显示you are in...的界面,这是登录成功的界面,如果输入错误的id页面为空,也就是错误的页面,然后测试输入id=1' 发现页面为空,再输入id=1' --+显示you are in...的界面,说明此处sql注入为字符型,然后这里就想到布尔注入了,手工注入判断数据库长度,经过测试发现数据库长度为7的时候页面正常,长度为8的时候页面不正常,所以数据库长度就是8。

http://127.0.0.1/sqli-labs-master/Less-8/?id=1' and length(database())>7 --+ //页面正常

http://127.0.0.1/sqli-labs-master/Less-8/?id=1' and length(database())>8 --+ //页面不正常
复制

-

-

-
接下来就是正常地进行手工注入,对比一个个查找的数据了,这里可以用python脚本来进行字符串的对比。首先你得安装python环境,其次你需要下载request模块,通过镜像下载更快。

-

-

-

如果是手工注入的话,用substr()函数进行一个字符一个字符的比对,用脚本就全部显现出来了。最终flag也是成功显示出来了。

-

-

-

3.CTFHub练习题

当输入1页面显示query_success,当输入3出现query_error,说明只会返回两个页面,然后后端的mysql命令也放在了页面中,我们就能初步判断此注入类型是布尔注入了,就通过手工注入的方式,用length()函数和substr()函数来依次比对字符的信息。

-

-

-
根据前面积累的经验,比对的过程省略掉了,我知道他的数据库名为sqli,且字段为flag,表也为flag。

http://challenge-3ed655a299352377.sandbox.ctfhub.com:10800/?id=1 and (substr((select group_concat(table_name) from 
information_schema.tables where table_schema='sqli'),1)='news,flag')
复制

-

-

-
当我们用脚本去跑的时候,去把flag数据给跑出来,需要更改的地方有三点,这里的注入类型是整形的,网址要变,页面输出的内容也要变。最终也是把flag给找出来了, 本题就解决了。

-

-

-

4.BUUCTF练习题之ez_sql

这题就是大小写被过滤了,需要把各种语句大小写混拼才能有用,实质还是字符型注入漏洞,需要注意的是我不知道被过滤的语句有哪些,所以我一个语句一个语句地去试错,如果被过滤了,页面也显示no!,如果没被过滤,页面就会正常显示空白页,因为语句没打完全,最终所有语句都被正常执行就能成功显示flag了。做题顺序就是先order by 把列数找到,共5列,然后找数据库名,表名,字段名,数据即可。

如果页面出现id not exists说明页面是正常显示的,只不过我设置了1=2错误的id返回值,后面接order by来判断列数。发现有5列,后面就好办了,依次把数据库名,表,字段,数据都查出来。

http://03b8d75b-79c7-4a5c-9396-47c0800017f2.node5.buuoj.cn:81/?id=TMP1589' And 1=2  Order by 4 %23
复制

http://03b8d75b-79c7-4a5c-9396-47c0800017f2.node5.buuoj.cn:81/?id=TMP1589' And 1=2  Union Select 
1,2,3,database(),group_concat(flag) from ctf.here_is_flag %23
复制

最终也是把flag给找到了。


学习总结:

又学了一种sql注入的漏洞类型,布尔盲注,据我理解,条件就是当页面不会显示我们输入的账号密码啥的东西时,而是一个正确的页面和一个错误的页面,就可能用到布尔注入。先判断注入类型,是整形还是字符等等,然后还要考虑到被过滤了哪些关键字等,为以后的学习积累经验。


学习产出:

  • 复习今日学习1 遍
  • CSDN 技术博客 1 篇
  • 巩固练习题,二刷练习题1次
文章转载自王芷枫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论