您好,登錄后才能下訂單哦!
SQL注入就是一種通過操作輸入(可以是表單,可以是get請求,也可以是POST請求等)相關SQL語句,并且能讓該語句在數據庫中得以執行,從而進行***的技術。最主要的原因就是沒有對用戶輸入數據的合法性或者說是客戶端提交的可變參數進行嚴格的檢查和過濾,從而導致應用程序存在該漏洞。這篇文章主要是講述通過一個mysql注入漏洞,通過os-shell執行echo命令獲取webshell的***過程,大牛繞過,寫這篇文章主要表揚自己開始有了自己的想法,可能該想法是其他人早就知道的!
本來通過管理后臺弱口令進入到系統中,發現上傳點,但是各種繞過都無法成功上傳***,不得已才想到通過SQL注入來寫一句話到文件中,看來不愧是菜鳥,還需要各位路過的大神多多指教!
0×00系統基本信息獲取
當我打開本次測試的站點時,使用Firefox的server-spy獲取到基本信息,該網站使用的環境是Nginx 1.4.4,腳本類型時PHP 5.3.29,如圖1所示。server-spy更多信息請關注其官方網站:https://github.com/100apps/ServerSpy。
圖1使用server-spy獲取網站基本信息
0×01獲取操作系統類型
通過改變目錄中以及網站程序名稱中的大小寫,以及ping網站域名獲取TTL值等,初步判斷該系統是Unix(linux),如圖2所示。
圖2獲取操作系統類型
知識點:
(1)TTL是 Time To Live的縮寫,該字段指定IP包被路由器丟棄之前允許通過的最大網段數量。
(2)TTL是IPv4包頭的一個8 bit字段。TTL值的注冊表位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters其中有個DefaultTTL的DWORD值,其數據就是默認的TTL值了,我們可以修改,但不能大于十進制的255,Windows系統設置后重啟才生效。
(3)TTL 是由發送主機設置的,以防止數據包不斷在 IP 互聯網絡上永不終止地循環。轉發 IP 數據包時,要求路由器至少將 TTL 減小 1,使用PING時涉及到的 ICMP 報文類型,一個為ICMP請求回顯(ICMP Echo Request),一個為ICMP回顯應答(ICMP Echo Reply),TTL 字段值可以幫助我們識別操作系統類型。
(4)UNIX 及類 UNIX 操作系統 ICMP 回顯應答的 TTL 字段值為255,Windows2003Server、Windows 2008Server的TTL默認值為64。
Compaq Tru64 5.0ICMP 回顯應答的 TTL 字段值為 64
微軟 Windows NT/2K操作系統 ICMP 回顯應答的 TTL 字段值為128
微軟 Windows 95 操作系統 ICMP 回顯應答的 TTL 字段值為32
但有些情況下有所特殊:
LINUX Kernel 2.2.x& 2.4.x ICMP 回顯應答的 TTL 字段值為 64
FreeBSD 4.1, 4.0,3.4;Sun Solaris 2.5.1, 2.6, 2.7, 2.8;OpenBSD 2.6, 2.7,NetBSD、
HP UX 10.20,ICMP回顯應答的 TTL 字段值為 255
Windows 95/98/98SE/WindowsME,ICMP 回顯應答的 TTL 字段值為 32
Windows NT4 WRKS,WindowsNT4 Server,Windows 2000,ICMP 回顯應答的 TTL 字段值為 128。
0×02獲取注入點
因為站點是一個公司的官網,所以就使用工具簡單掃描下情況,本次使用的掃描工具是safe3wvs,掃描發現有SQL注入,有xss,有后臺管理,如圖3所示,由于本次主要是講述mysql注入,因此其他略過!
圖3發現SQL注入點
0x03 sqlmap進行驗證
通過使用sqlmap注入工具進行掃描,得知該SQL注入漏洞是存在的,如圖4所示,并且數據庫是mysql > 5.0.11.
圖4sqlmap獲取數據庫信息
0×04–os-shell系統命令執行
本來只是試試的,沒想到真的能執行—os-shell,如圖5所示,人品爆發,操作系統是64位的,因為選32位不能執行命令!
圖5獲取操作系統架構
0×05獲取相關信息
通過執行whomai命令,可知當前用戶是mysql,如圖6所示,通過ifconfig可知,地址是內網地址,如圖7所示。
圖6獲取相關信息
圖7獲取本機IP地址
知識點:
私有地址(Private address)屬于非注冊地址,專門為組織機構內部使用,俗稱內網地址。
以下列出留用的內部私有地址
A類10.0.0.0--10.255.255.255
B類172.16.0.0--172.31.255.255
C類192.168.0.0--192.168.255.255
0×06尋找可寫目錄
首先通過頁面可查看到部分目錄,隨便找一張與該官網相關的圖片,查看屬性可知網站中存在目錄uploads,如圖7所示。
圖8 獲取目錄信息
另外通過os-shell,我們使用pwd查看到當前目錄,然后通過ls從第一級目錄逐級查看,當查看到uploads時,如圖8所示,就有了一個思路,就是通過相關手段去上傳***,因為目錄可以知道了。
圖9 查看目錄信息
0×07寫一句話***
由于之前在linux加固的時候,使用echo來輸入數據到文件中實現禁ping,于是就想到是不是可以通過該方法寫入一句話到文件中呢?通過在uploads目錄下多次嘗試,可能是自己技術太菜了,花了不少時間,幾乎是一個個echo輸出看到成功了,才將內容寫入文件中,在一個單引號的地方折騰了很久,用\’都沒有用,一直失敗,沒想到直接不要單引號就成功,終于寫入成功了!太興奮了,嘿嘿!
圖10 寫入webshell
0×07菜刀連接
通過使用菜刀,成功連接,但是用戶是www,權限還沒有mysql權限大,如圖9,圖10所示。
圖11 獲取webshell
圖12 查看當前用戶
0×07相關命令不能使用解決
在www用戶下,如圖11所示,不能使用ifconfig,此時我們可以通過去sbin目錄下,直接執行該命令文件,如圖12所示,就可以成功使用這些命令了(也可以直接執行命令/sbin/ifconfig)!
圖13 命令執行失敗
圖14 查看IP地址
0×07題外話
通過菜刀連接成功后,我們可以上傳大馬,從而進行進一步的提權,關于如何提權,此處省略1000字。。。。。。
0×07參考
獲取服務器相關信息,可以使用火狐的server-spy插件,可以獲取網站的部署環境,IP地址,腳本類型等相關信息!
獲取操作系統類型,我們可以改變目錄中的相關字母的大小寫,原因是linux對大小寫敏感,windows對大小寫不敏感,其次是使用ping命令來獲取操作系統類型,在一般情況下,windows XP/2003 對應的TTL值為128;linux對應的TTL值為64,Unix對應的TTL值是255,windows 7/10對應的TTL值為64,windows 95/98對應的TTL值為32。
另外就是,獲取網站的絕對路徑,如果不能使用報錯,而我們能使用pwd、ls兩個命令,那么我們也基本能找出絕對路徑來,當我們執行一些命令發現提示找不到命令時,我們可以在自己的虛擬機中locate一下該命令的路徑,然后去到該路徑中通過./來執行相關命令。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。