從mysql注入到getshell

來源:互聯網
上載者:User

標籤:webshell   echo   滲透測試   mysql注入   sqlmap   

    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。

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/A2/83/wKioL1mhJwmBlOnTAAAoEAbq0b8072.png-wh_500x0-wm_3-wmp_4-s_511429199.png" title="image001.png" width="300" height="231" border="0" hspace="0" vspace="0" style="width:300px;height:231px;" alt="wKioL1mhJwmBlOnTAAAoEAbq0b8072.png-wh_50" />

圖1使用server-spy擷取網站基本資料

0×01擷取作業系統類型

    通過改變目錄中以及網站程式名稱中的大小寫,以及ping網站網域名稱擷取TTL值等,初步判斷該系統是Unix(linux),2所示。

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/A2/83/wKioL1mhJ0HwyjLJAAA1xe96wXw598.jpg-wh_500x0-wm_3-wmp_4-s_2821449154.jpg" title="image002.jpg" alt="wKioL1mhJ0HwyjLJAAA1xe96wXw598.jpg-wh_50" />

圖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注入,因此其他略過!

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M00/A2/83/wKioL1mhJ1Oxl0x5AABrk20ZXyg054.jpg-wh_500x0-wm_3-wmp_4-s_1971669282.jpg" title="image003.jpg" alt="wKioL1mhJ1Oxl0x5AABrk20ZXyg054.jpg-wh_50" />

圖3發現SQL注入點

0x03 sqlmap進行驗證

    通過使用sqlmap注入工具進行掃描,得知該SQL注入漏洞是存在的,4所示,並且資料庫是mysql > 5.0.11.

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/03/D3/wKiom1mhJ2zwvoNCAAAMyKwRcdk562.png-wh_500x0-wm_3-wmp_4-s_104401348.png" title="image004.png" alt="wKiom1mhJ2zwvoNCAAAMyKwRcdk562.png-wh_50" />

圖4sqlmap擷取資料庫資訊

0×04–os-shell系統命令執行

    本來只是試試的,沒想到真的能執行—os-shell,5所示,人品爆發,作業系統是64位的,因為選32位不能執行命令!

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/A2/83/wKioL1mhJ2jyrPomAABG6EJ8Suw277.jpg-wh_500x0-wm_3-wmp_4-s_4041745698.jpg" title="image005.jpg" alt="wKioL1mhJ2jyrPomAABG6EJ8Suw277.jpg-wh_50" />

圖5擷取作業系統架構

0×05擷取相關資訊

    通過執行whomai命令,可知目前使用者是mysql,6所示,通過ifconfig可知,地址是內網地址,7所示。

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/03/D3/wKiom1mhJ3-gmPd6AAAWC-VrzC4402.png-wh_500x0-wm_3-wmp_4-s_607095791.png" title="image006.png" alt="wKiom1mhJ3-gmPd6AAAWC-VrzC4402.png-wh_50" />

圖6擷取相關資訊

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/03/D3/wKiom1mhJ4nzqFDQAABk8hGW5DM147.jpg-wh_500x0-wm_3-wmp_4-s_1090538371.jpg" title="image007.jpg" alt="wKiom1mhJ4nzqFDQAABk8hGW5DM147.jpg-wh_50" />

圖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所示。

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/A2/83/wKioL1mhJ4aSebcnAAA3TecMiCg226.png-wh_500x0-wm_3-wmp_4-s_3348279418.png" title="image008.png" width="300" height="248" border="0" hspace="0" vspace="0" style="width:300px;height:248px;" alt="wKioL1mhJ4aSebcnAAA3TecMiCg226.png-wh_50" />

圖8 擷取目錄資訊

    另外通過os-shell,我們使用pwd查看到目前的目錄,然後通過ls從第一級目錄逐級查看,當查看到uploads時,8所示,就有了一個思路,就是通過相關手段去上傳木馬,因為目錄可以知道了。

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/03/D3/wKiom1mhJ8-wCbdjAABzkurgIOc258.png-wh_500x0-wm_3-wmp_4-s_2034006979.png" title="image009.png" alt="wKiom1mhJ8-wCbdjAABzkurgIOc258.png-wh_50" />

圖9 查看目錄資訊

0×07寫一句話木馬

    由於之前在linux加固的時候,使用echo來輸入資料到檔案中實現禁ping,於是就想到是不是可以通過該方法寫入一句話到檔案中呢?通過在uploads目錄下多次嘗試,可能是自己技術太菜了,花了不少時間,幾乎是一個個echo輸出看到成功了,才將內容寫入檔案中,在一個單引號的地方折騰了很久,用\’都沒有用,一直失敗,沒想到直接不要單引號就成功,終於寫入成功了!太興奮了,嘿嘿!

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/03/D3/wKiom1mhJ-WAknbwAAARJQrDxCo441.jpg-wh_500x0-wm_3-wmp_4-s_2819803385.jpg" title="image010.jpg" alt="wKiom1mhJ-WAknbwAAARJQrDxCo441.jpg-wh_50" />

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/A2/83/wKioL1mhJ-LCDh8-AAAZlNRK2V0855.png-wh_500x0-wm_3-wmp_4-s_2231605496.png" title="image011.png" alt="wKioL1mhJ-LCDh8-AAAZlNRK2V0855.png-wh_50" />

圖10 寫入webshell

0×07菜刀串連

    通過使用菜刀,成功串連,但是使用者是www,許可權還沒有mysql許可權大,9,圖10所示。

650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/03/D3/wKiom1mhKCDiCHFEAABKxyx82yA143.png-wh_500x0-wm_3-wmp_4-s_2751176027.png" title="image012.png" width="300" height="219" border="0" hspace="0" vspace="0" style="width:300px;height:219px;" alt="wKiom1mhKCDiCHFEAABKxyx82yA143.png-wh_50" />

圖11 擷取webshell

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/A2/83/wKioL1mhKDPxdp9AAAAEtwYmS2s455.png-wh_500x0-wm_3-wmp_4-s_367789037.png" title="image013.png" alt="wKioL1mhKDPxdp9AAAAEtwYmS2s455.png-wh_50" />

圖12 查看目前使用者

0×07相關命令不能使用解決

    在www使用者下,11所示,不能使用ifconfig,此時我們可以通過去sbin目錄下,直接執行該命令檔案,12所示,就可以成功使用這些命令了(也可以直接執行命令/sbin/ifconfig)!

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/A2/83/wKioL1mhKFai90jZAAAFKhI3QeI356.png-wh_500x0-wm_3-wmp_4-s_3818484632.png" title="image014.png" alt="wKioL1mhKFai90jZAAAFKhI3QeI356.png-wh_50" />

圖13 命令執行失敗

650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/03/D3/wKiom1mhKHHSFC-bAABCM-ze3Jk869.jpg-wh_500x0-wm_3-wmp_4-s_1907348414.jpg" title="image015.jpg" alt="wKiom1mhKHHSFC-bAABCM-ze3Jk869.jpg-wh_50" />

圖14 查看IP地址

0×07題外話

    通過菜刀串連成功後,我們可以上傳大馬,從而進行進一步的提權,關於如何提權,此處省略1000字。。。。。。

0×07參考

    擷取伺服器相關資訊,可以使用Firefox的server-spy外掛程式,可以擷取網站的部署環境,IP地址,指令碼類型等相關資訊!

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/A2/83/wKioL1mhKKGSuK1mAAAoEAbq0b8962.png-wh_500x0-wm_3-wmp_4-s_3010396042.png" title="image001.png" width="300" height="231" border="0" hspace="0" vspace="0" style="width:300px;height:231px;" alt="wKioL1mhKKGSuK1mAAAoEAbq0b8962.png-wh_50" />

    擷取作業系統類型,我們可以改變目錄中的相關字母的大小寫,原因是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一下該命令的路徑,然後去到該路徑中通過./來執行相關命令。

本文出自 “eth10” 部落格,請務必保留此出處http://eth10.blog.51cto.com/13143704/1959546

從mysql注入到getshell

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.