SQL注入就是一種通過(guò)操作輸入(可以是表單,可以是get請(qǐng)求,也可以是POST請(qǐng)求等)相關(guān)SQL語(yǔ)句,并且能讓該語(yǔ)句在數(shù)據(jù)庫(kù)中得以執(zhí)行,從而進(jìn)行***的技術(shù)。最主要的原因就是沒(méi)有對(duì)用戶輸入數(shù)據(jù)的合法性或者說(shuō)是客戶端提交的可變參數(shù)進(jìn)行嚴(yán)格的檢查和過(guò)濾,從而導(dǎo)致應(yīng)用程序存在該漏洞。這篇文章主要是講述通過(guò)一個(gè)mysql注入漏洞,通過(guò)os-shell執(zhí)行echo命令獲取webshell的***過(guò)程,大牛繞過(guò),寫這篇文章主要表?yè)P(yáng)自己開始有了自己的想法,可能該想法是其他人早就知道的!
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括東河網(wǎng)站建設(shè)、東河網(wǎng)站制作、東河網(wǎng)頁(yè)制作以及東河網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,東河網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到東河省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!本來(lái)通過(guò)管理后臺(tái)弱口令進(jìn)入到系統(tǒng)中,發(fā)現(xiàn)上傳點(diǎn),但是各種繞過(guò)都無(wú)法成功上傳***,不得已才想到通過(guò)SQL注入來(lái)寫一句話到文件中,看來(lái)不愧是菜鳥,還需要各位路過(guò)的大神多多指教!
0×00系統(tǒng)基本信息獲取
當(dāng)我打開本次測(cè)試的站點(diǎn)時(shí),使用Firefox的server-spy獲取到基本信息,該網(wǎng)站使用的環(huán)境是Nginx 1.4.4,腳本類型時(shí)PHP 5.3.29,如圖1所示。server-spy更多信息請(qǐng)關(guān)注其官方網(wǎng)站:https://github.com/100apps/ServerSpy。
圖1使用server-spy獲取網(wǎng)站基本信息
0×01獲取操作系統(tǒng)類型
通過(guò)改變目錄中以及網(wǎng)站程序名稱中的大小寫,以及ping網(wǎng)站域名獲取TTL值等,初步判斷該系統(tǒng)是Unix(linux),如圖2所示。
圖2獲取操作系統(tǒng)類型
知識(shí)點(diǎn):
(1)TTL是 Time To Live的縮寫,該字段指定IP包被路由器丟棄之前允許通過(guò)的大網(wǎng)段數(shù)量。
(2)TTL是IPv4包頭的一個(gè)8 bit字段。TTL值的注冊(cè)表位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters其中有個(gè)DefaultTTL的DWORD值,其數(shù)據(jù)就是默認(rèn)的TTL值了,我們可以修改,但不能大于十進(jìn)制的255,Windows系統(tǒng)設(shè)置后重啟才生效。
(3)TTL 是由發(fā)送主機(jī)設(shè)置的,以防止數(shù)據(jù)包不斷在 IP 互聯(lián)網(wǎng)絡(luò)上永不終止地循環(huán)。轉(zhuǎn)發(fā) IP 數(shù)據(jù)包時(shí),要求路由器至少將 TTL 減小 1,使用PING時(shí)涉及到的 ICMP 報(bào)文類型,一個(gè)為ICMP請(qǐng)求回顯(ICMP Echo Request),一個(gè)為ICMP回顯應(yīng)答(ICMP Echo Reply),TTL 字段值可以幫助我們識(shí)別操作系統(tǒng)類型。
(4)UNIX 及類 UNIX 操作系統(tǒng) ICMP 回顯應(yīng)答的 TTL 字段值為255,Windows2003Server、Windows 2008Server的TTL默認(rèn)值為64。
Compaq Tru64 5.0ICMP 回顯應(yīng)答的 TTL 字段值為 64
微軟 Windows NT/2K操作系統(tǒng) ICMP 回顯應(yīng)答的 TTL 字段值為128
微軟 Windows 95 操作系統(tǒng) ICMP 回顯應(yīng)答的 TTL 字段值為32
但有些情況下有所特殊:
LINUX Kernel 2.2.x& 2.4.x ICMP 回顯應(yīng)答的 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回顯應(yīng)答的 TTL 字段值為 255
Windows 95/98/98SE/WindowsME,ICMP 回顯應(yīng)答的 TTL 字段值為 32
Windows NT4 WRKS,WindowsNT4 Server,Windows 2000,ICMP 回顯應(yīng)答的 TTL 字段值為 128。
0×02獲取注入點(diǎn)
因?yàn)檎军c(diǎn)是一個(gè)公司的官網(wǎng),所以就使用工具簡(jiǎn)單掃描下情況,本次使用的掃描工具是safe3wvs,掃描發(fā)現(xiàn)有SQL注入,有xss,有后臺(tái)管理,如圖3所示,由于本次主要是講述mysql注入,因此其他略過(guò)!
圖3發(fā)現(xiàn)SQL注入點(diǎn)
0x03 sqlmap進(jìn)行驗(yàn)證
通過(guò)使用sqlmap注入工具進(jìn)行掃描,得知該SQL注入漏洞是存在的,如圖4所示,并且數(shù)據(jù)庫(kù)是mysql > 5.0.11.
圖4sqlmap獲取數(shù)據(jù)庫(kù)信息
0×04–os-shell系統(tǒng)命令執(zhí)行
本來(lái)只是試試的,沒(méi)想到真的能執(zhí)行—os-shell,如圖5所示,人品爆發(fā),操作系統(tǒng)是64位的,因?yàn)檫x32位不能執(zhí)行命令!
圖5獲取操作系統(tǒng)架構(gòu)
0×05獲取相關(guān)信息
通過(guò)執(zhí)行whomai命令,可知當(dāng)前用戶是mysql,如圖6所示,通過(guò)ifconfig可知,地址是內(nèi)網(wǎng)地址,如圖7所示。
圖6獲取相關(guān)信息
圖7獲取本機(jī)IP地址
知識(shí)點(diǎn):
私有地址(Private address)屬于非注冊(cè)地址,專門為組織機(jī)構(gòu)內(nèi)部使用,俗稱內(nèi)網(wǎng)地址。
以下列出留用的內(nèi)部私有地址
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尋找可寫目錄
首先通過(guò)頁(yè)面可查看到部分目錄,隨便找一張與該官網(wǎng)相關(guān)的圖片,查看屬性可知網(wǎng)站中存在目錄uploads,如圖7所示。
圖8 獲取目錄信息
另外通過(guò)os-shell,我們使用pwd查看到當(dāng)前目錄,然后通過(guò)ls從第一級(jí)目錄逐級(jí)查看,當(dāng)查看到uploads時(shí),如圖8所示,就有了一個(gè)思路,就是通過(guò)相關(guān)手段去上傳***,因?yàn)槟夸浛梢灾懒恕?/p>
圖9 查看目錄信息
0×07寫一句話***
由于之前在linux加固的時(shí)候,使用echo來(lái)輸入數(shù)據(jù)到文件中實(shí)現(xiàn)禁ping,于是就想到是不是可以通過(guò)該方法寫入一句話到文件中呢?通過(guò)在uploads目錄下多次嘗試,可能是自己技術(shù)太菜了,花了不少時(shí)間,幾乎是一個(gè)個(gè)echo輸出看到成功了,才將內(nèi)容寫入文件中,在一個(gè)單引號(hào)的地方折騰了很久,用\’都沒(méi)有用,一直失敗,沒(méi)想到直接不要單引號(hào)就成功,終于寫入成功了!太興奮了,嘿嘿!
圖10 寫入webshell
0×07菜刀連接
通過(guò)使用菜刀,成功連接,但是用戶是www,權(quán)限還沒(méi)有mysql權(quán)限大,如圖9,圖10所示。
圖11 獲取webshell
圖12 查看當(dāng)前用戶
0×07相關(guān)命令不能使用解決
在www用戶下,如圖11所示,不能使用ifconfig,此時(shí)我們可以通過(guò)去sbin目錄下,直接執(zhí)行該命令文件,如圖12所示,就可以成功使用這些命令了(也可以直接執(zhí)行命令/sbin/ifconfig)!
圖13 命令執(zhí)行失敗
圖14 查看IP地址
0×07題外話
通過(guò)菜刀連接成功后,我們可以上傳大馬,從而進(jìn)行進(jìn)一步的提權(quán),關(guān)于如何提權(quán),此處省略1000字。。。。。。
0×07參考
獲取服務(wù)器相關(guān)信息,可以使用火狐的server-spy插件,可以獲取網(wǎng)站的部署環(huán)境,IP地址,腳本類型等相關(guān)信息!
獲取操作系統(tǒng)類型,我們可以改變目錄中的相關(guān)字母的大小寫,原因是linux對(duì)大小寫敏感,windows對(duì)大小寫不敏感,其次是使用ping命令來(lái)獲取操作系統(tǒng)類型,在一般情況下,windows XP/2003 對(duì)應(yīng)的TTL值為128;linux對(duì)應(yīng)的TTL值為64,Unix對(duì)應(yīng)的TTL值是255,windows 7/10對(duì)應(yīng)的TTL值為64,windows 95/98對(duì)應(yīng)的TTL值為32。
另外就是,獲取網(wǎng)站的絕對(duì)路徑,如果不能使用報(bào)錯(cuò),而我們能使用pwd、ls兩個(gè)命令,那么我們也基本能找出絕對(duì)路徑來(lái),當(dāng)我們執(zhí)行一些命令發(fā)現(xiàn)提示找不到命令時(shí),我們可以在自己的虛擬機(jī)中l(wèi)ocate一下該命令的路徑,然后去到該路徑中通過(guò)./來(lái)執(zhí)行相關(guān)命令。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。