0x00 前言
看到了某篇關于站庫分離類型站點相關的讨論,想總結下資訊收集的技巧。
0x01 正文
關于站庫分離類型站點網上暫時沒有找到總結性的文章,是以想嘗試記錄下關于站庫分離類型站點的滲透思路。
對站庫分離類型站點通常可以有兩個滲透入口點。
1.web網站
2.資料庫
滲透思路其實也是比較正常。但是這裡如果兩個入口點無非兩種路徑。
1.從web網站打入進而打站庫分離的資料庫,内網滲透;
2.從資料庫打入進而打站庫分離的web網站,内網滲透。
根據不同的路徑定制不同的滲透測試方案,下面記錄一下流程和容易遇到的問題。
一、從 web 入口滲透
從 web 入口通常就是通過網站的各種漏洞來getshell,比如檔案上傳、指令執行、代碼執行、還有SQL注入寫入一句話(into outfile、日志備份等)。
在獲得 web 權限或者有諸如檔案讀取等漏洞時,我們還讀資料庫配置檔案、對資料庫内容分析、查找資料庫備份,進而對資料庫目标 ip 進行滲透,以便後續操作。
二、從資料庫入口滲透
但是這裡要說主要是外網暴露的資料庫入口點弱密碼;web網站SQL注入。
從資料庫入口滲透,同樣主要是為了擷取更大的權限,或者擴充我們的滲透成果,比如從資料庫裡可以得到一些密碼資訊,使用者名等,在後續的内網滲透中可以很有效的幫助我們。
站點是站庫分離的,資料庫和web不在同一台伺服器上,這時候不能寫入一句話木馬通過web去連,因為路徑沒有用。如果是從web端找到的SQL注入,那麼可以通過以下這些方式去做收集、擷取權限。
MYSQL
(1)定位 web 端 ip 位址
通過查詢
information_schema
庫中的
PROCESSLIST
可以檢視目前 MYSQL 的連接配接情況。因為 web 應用會産生查詢資料庫操作,是以在回顯出來的
host
字段中會帶回目标的
ip:port
。
select * from information_schema.PROCESSLIST;
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iNmFmYhBDM5UTN4IjNlRjYmZmN2EWYmVWOkFGNiBjMm9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在得到了web端的ip,我們可以進而對web端進行滲透。
(2).load_file()擷取資料庫所在伺服器的敏感資訊
如果沒有secure_file_priv參數的限制(MySQL5.7以下),我們還可以用load_file()函數對檔案内容進行讀取。
select load_file('C:/test.txt');
還可以擷取網卡資訊,比如讀:
/etc/udev/rules.d/70-persistent-net.rules //擷取網卡名稱
/etc/sysconfig/network-scripts/ifcfg-網卡 //靜态IP
DHCP的話 /var/lib/dhclient/dhclient--網卡.lease
MSSQL
(1) 判斷是否站庫分離
得到用戶端主機名
select host_name();
得到服務端主機名
select @@servername;
根據結果判斷是否分離,結果一樣就可能站庫同伺服器,結果不一樣就是站庫分離。
(2)存儲過程執行指令
我們可以通過 MSSQL的存儲過程執行系統指令,可以嘗試直接提升權限後滲透其他主機。
常用到的兩個:
1.XP_CMDSHELL
2.SP_OACREATE
可以探測資料庫伺服器是否出網,通過執行ping或者curl看是否出網,通常遇到MSSQL我們直接就通過指令執行上線了。
同樣是資料庫,自然其中有一些敏感資訊,為了進一步滲透,可以整理密碼本或者其他資訊。