技术笔记

SQL注入详解 第三集(时间盲注)

字号+ 作者:sqler 来源:转载 2016-11-30 14:27 我要评论( )

0x01前言 不知道写啥,那个...大家吃好喝好啊~ 0x02时间盲注 先上源代码 [AppleScript] 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17......

0x01  前言
    不知道写啥,那个...大家吃好喝好啊~

0x02  时间盲注
先上源代码
[AppleScript] 纯文本查看 复制代码
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$con = mysqli_connect("localhost","root","root","test");
//检查连接
if(mysqli_connect_error())
{
    echo "数据库连接失败" . mysqli_connect_error();
}
 
$name = $_GET['name'];
if(preg_match("/union/i",$name))
{
    exit("<html><body>no</body></html>");
}
 
$result = mysqli_query($con,"select * from admin where name = '".$name."' ");
$row = mysqli_fetch_array($result);
 
if($row)
{
    exit("<html><body>yes</body></html>");
}
else
{
    exit("<html><body>no</body></html>");
}
?>

不同于之前,这里我们过滤了union,然后把获取到的name的值拼接到sql语句里。
因为union被过滤了,如果包含union,则直接返回no。所以不像前两节那样直接可以union select。而且我们这儿只回显yes和no。
当我们我们访问111.php?name=admin
则返回

如果我们输入跟数据库里不匹配的项,则返回no

我们包含一下union

可以看到,是不是也返回no了啊?

这时候,我们就可以使用时间盲注了。
我们先来讲讲mysql有两个函数
sleep()
benchmark()
我们先去phpmyadmin测试一下

可以看到,我们这里是不是延迟了3秒啊,总共查询时间是3.0004秒,其中,我们让他休眠了3秒,查询用了0.0004秒
我们把延时3秒改为5秒试试

是不是用了5秒多,这就是sleep起到了作用

然后我们来讲讲benchmark()
在老版本当中benchmark的作用是,将一行命令执行多少次,比如执行一次需要1秒钟(当然用不到一秒钟,这里只是举例子)
刚才打算截图发生了个小插曲,我执行了100次,没啥区别,1000次还是区别不大,一怒之下9999999,然后...我到现在phpmyadmin还连不上,这儿就不截图了,有兴趣的可以自己搭环境试试。




那么我们回到实验环境
我们这里要用到火狐里的firebug插件,这里有个网络选项

我们来看看正常请求一个网站多长时间

是不是花了1秒钟左右啊?(旁白:要不是刚才给数据库玩卡了,需要1秒???)
我们来构造语句
[AppleScript] 纯文本查看 复制代码
?
1
111.php?name=admin' and sleep(5) %23


是不是用了6秒,其中5秒是我们让他休眠的
有人问,是休眠了啊,那么有什么用呢?
这时我们可以构造语句了
[AppleScript] 纯文本查看 复制代码
?
1
http://10.211.55.4/111.php?name=admin' and if(substring(user(),1,1)='r',sleep(3),1) %23

这里我们用if判断,如果user()第一个字母为r,则延时3秒

这里我们是不是延时了啊?
如果跟user()的首字母不同,那么不延时

下面我们判断第二个字符

就这样,我们可以成功注入出你想要的东西

本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Note/376.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 转大表哥安全狗SQL注入语句(176处)

    转大表哥安全狗SQL注入语句(176处)

    2017-12-05 13:47

  • Mysql注入点在limit关键字后面的利用方法

    Mysql注入点在limit关键字后面的利用方法

    2016-12-18 15:06

  • 一个罕见的MSSQL注入漏洞案例

    一个罕见的MSSQL注入漏洞案例

    2016-12-18 15:03

  • postgresql注入之文件读写

    postgresql注入之文件读写

    2016-12-13 15:25

网友点评
暂时未开启评论功能~