1、前言

今早我试着做了一下布尔注入,我看到别人写的怎么不行不行,但是我试了下,直接使用and的方式连接也是可以的。本来想单独做一个布尔注入的笔记,但是好像也没有学到什么特别的,所以一起放在这里了。

2、解题

2.1、什么是布尔

其实就是系统不会告诉你其他的消息,只会告诉你,你的语句是否正确,需要构造自己的语句一个一个的去确定库中的内容。

2.2、用到的函数

(1)、substr(1,2,3):它有三个参数,第一个参数为需要截取的字符,第二个参数为截取字符开始的位置,第三个参数为截取的长度。
(2)、length(1):这个是用于计算字符串的长度用的。
(3)、ascii(1):用于将括号内的字符取ascii的值,方便确定其中的内容。

2.3、用到的工具

SQLmap:我看了下,现在不是特别明白这个软件到底干了什么(大概就是替代了人工一步一步的试的过程吧),但是我看到其他的博主,同样是用这个获取了其他类型的数据库的内容。
下载可以去GitHub下载,直接搜第一个就行,使用我暂时就明白了自己用到的几条命令

2.4、过程

这里我把两种方法放一起了,因为我觉得要是一个一个完整过一遍,我可能要交金币从新开环境。
如果手动**
(1)、确定字符的长度
确定字符的长度后,才能对每个字符进行猜测,不然如果不存在了却还在试。
CTHHub Web技能树-sql注入-布尔盲注
(2)、利用折半的方法,确定字符的范围一步一步的缩小
CTHHub Web技能树-sql注入-布尔盲注

最终确定到指定字符时,根据acsii对应的值即可知道它是多少。(我猜CTFHUB的习惯都一样于是我试了下直接等于s)
CTHHub Web技能树-sql注入-布尔盲注
之后就是一个一个的替换substr的开始位置,一个一个的确定,最终得到数据库的名字。这里重复4次才能得到数据库名,如果要一个一个试最终得到flag,可想而知吧。所以我们用SQLmap,我觉得它兼职太强了
使用这个软件首先要切换到指定的目录下,一定要使用python2的版本。
输入这个命令,如果出现这样的返回,就说明安装成功了。
CTHHub Web技能树-sql注入-布尔盲注

(1)、获取所有数据库

python2 sqlmap.py -u 环境链接 --dbs即可
按照他的提示,输入Y,即可得到全部的数据库名。
CTHHub Web技能树-sql注入-布尔盲注
CTHHub Web技能树-sql注入-布尔盲注
这里有4个库,其他三个都是默认的,我们要用的是sqli
(2)、获取所有表名
命令:
CTHHub Web技能树-sql注入-布尔盲注
结果:
CTHHub Web技能树-sql注入-布尔盲注

(3)、获取字段内容
命令:
CTHHub Web技能树-sql注入-布尔盲注
结果
CTHHub Web技能树-sql注入-布尔盲注
最后用这个
python sqlmap.py -u 链接 -D sqli -T flag -C flag --dump
最后的一步我好像忘记截了图,但是确实可以得到结果的。

相关文章: