Boolean盲注
mysql与sql注入相关的知识
5.0版本以后存在三个表:
默认数据库:information_schema的数据库,库中三个表:
schemata:存储该的是该用户创建的所有数据库名,需要记住该表中记录数据库名的 字段名为:schema_name
tables:表存储该用户创建的所有数据库的库名和表名,要记住该表中记录数据库名和 表名的字段分别是:table_schema和table_name
columns:存储该用户创建的所有数据库的库名、表名、字段名,要记住该表中记录数 据库库名、表名、字段名为:table_schema、table_name、columns_name
1 基础知识
开发人员屏蔽了报错信息,导致攻击者无法通过报错信息进行注入的判断。这种情况下的注入,就叫 做盲注。盲注根据展现方式,分为boolean型盲注和时间盲注。
boolean是基于真假的判断(true or false):不管输入什么,结果只返回真或假两种情况;通过and 1=1 和 and 1 = 2 可以发现注入点。
2 Boolean型盲注的判断方式
通过长度判断: length():select length(database())>=x
通过字符判断: substr():select substr(database(),1,1)='a'
通过ascll码判断: ascii():select ascii(substr(database(),1,1))=x
ASCII表:
爆破过程
1 判断是什么注入类型
不是整型注入,是字符注入
结论:注入类型是字符注入
2 爆数据库
1. 爆数据库长度
2. 爆数据库名
截取:database()数据库:第一个位置,一个字符,并转换成ASCII码值
如果ASCII码的值和=号后面的值相同:返回正常,否则异常。
通过Burp工具抓包注个字符判断:
结果:ASCII码值为
3 爆表名
1. 判断表的个数
表的个数位:4
2. 判断表的长度
第一张表的长度为:6
第二张表的长度为:8
第四站表的长度为:5
3. 爆表的名称 第一张表:
4 爆字段(有多少列)
1. 判断列数:
判断有三列
2. 判断列的长度:
3. 爆字段数据
5 爆数据
1. 第一个数据:
2. 第二个数据:
3. 第三个数据:
更多信安干货文章,请关注专栏安擎靶场。
安擎靶场zhuanlan.zhihu.com