盲注(SQL)

来源:互联网 发布:手机截屏是那个软件 编辑:程序博客网 时间:2024/06/06 02:31

由于也是才开始接触接触这个命令注入,啥都不懂,所以就各种百度,翻墙啊什么的,也算是对盲注有一些基本的了解。

下面我就说说我对盲注的了解:

盲注也就是不能通过直接显示的途径来获取数据库数据的方法,那么盲注也分为三种:
1.基于布尔型的盲注(Booleanbase),也是最常接触的普通注入
下面是别人的分析,我就拿来用啦
比如在where语句中可以构造or 1=1来使返回页面不同
mysql> select 123 from dual where 1=1;
+-----+
| 123 |
+-----+
| 123 |
+-----+
1 row in set (0.00 sec)
mysql> select 123 from dual where 1=0;
Empty set (0.00 sec)


如果注入点在order by后面,那么则可以使用判断语句来构造报错。
mysql> select 1 from te order by if(1,1,(select 1 union select 2)) limit 0,3;
+---+
| 1 |
+---+
| 1 |
| 1 |
| 1 |
+---+
3 rows in set (0.00 sec)
mysql> select 1 from te order by if(0,1,(select 1 union select 2)) limit 0,3;
ERROR 1242 (21000): Subquery returns more than 1 row


2.基于时间的盲注(Timebase),其实我一直纳闷基于时间是啥意思
基于时间的盲注的话,mysql主要涉及两个函数,sleep banchmark 基本是使用如下。
mysql> select 1 from te where if(1=1,sleep(1),1) limit 0,1;
Empty set (27.00 sec)
mysql> select 1 from te where if(1=2,sleep(1),1) limit 0,1;
+---+
| 1 |
+---+
| 1 |
+---+
1 row in set (0.00 sec)

3.基于报错的盲注(Errorbase)是需要网站显示数据库报错信息
对于这三种盲注我还在继续了解,请见谅。

另外,如果命令不回显的话(我的编程能力也差),我搜了各种博客呀什么的,看到两个东西:可以使用DNS Log和access log记录命令执行的结果(我也不知道这样是不是对的),以上就是我的了解啦。