作者:zero ? 本文為SQL基本注入的進階文章,如有任何疑問請查看: SQL基本注入演示:https://www.cnblogs.com/anbus/p/10082452.html 導(dǎo)語:??利用SQL注入進行攻擊來獲取WebShell其實就是在向服務(wù)器寫文件。(注意:這里我們需要得到網(wǎng)站的絕對路徑)如何理解?引入余弦老哥的一句話: 黑客通過輸入提交“特殊數(shù)據(jù)”,特殊數(shù)據(jù)在數(shù)據(jù)流的每個層處理,如果某個層沒處理好,在輸出的時候,就會出現(xiàn)相應(yīng)層的安全問題。 也就是“輸入輸出”,余弦老哥舉的這個例子就很精彩!
為什么要進行SQL注入WebShell?在所有常用的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)中均包含內(nèi)置的向服務(wù)器文件系統(tǒng)寫文件的功能,通過這些內(nèi)置的功能,我們可以將自己的WEBshell寫目錄或文件進去。 什么是web?shell?Web shell 我們可以把他拆開來看,web就是指在web服務(wù)器上,shell指的是用腳本語言編寫的程序,那么,web?shell就是用來管理服務(wù)器的一個工具,擁有對服務(wù)器進行操作的權(quán)限,又被稱作web?admin。Web?shell一般是被網(wǎng)站管理員用于網(wǎng)站管理、服務(wù)器管理等等一些用途,但是由于web?shell的功能比較強大,可以上傳下載文件,查看數(shù)據(jù)庫,甚至可以調(diào)用一些服務(wù)器上系統(tǒng)的相關(guān)命令(比如創(chuàng)建用戶,修改刪除文件之類的),所以經(jīng)常會被黑客加以利用,通過一些上傳缺陷,將自己編寫的web?shell上傳到web服務(wù)器的頁面的目錄下,然后通過頁面訪問的形式進行滲透,或者通過插入?“一句話” 來進行滲透。 Web?shell 種類:Web?shell根據(jù)腳本可以分為多種,例如:PHP腳本木馬,ASP腳本木馬,也有基于.NET的腳本木馬和JSP腳本木馬。在國外,還有用python腳本語言寫的動態(tài)網(wǎng)頁,當然也有與之相關(guān)的web?shell,根據(jù)功能來區(qū)分可以分為大馬和小馬,小馬通常就指的是一句話木馬,那下面我們就來說說一句話木馬。 什么是一句話木馬?一句話木馬顧名思義就是只有一行代碼的木馬,短短的一行的代碼就可以做到與大馬相當?shù)墓δ埽瑸榱死@過檢測機制的檢測,一句話木馬出現(xiàn)過無數(shù)種變形,但是核心功能還是不變的,就是木馬函數(shù)執(zhí)行我們發(fā)送的信息。說到發(fā)送,正常我們發(fā)送的途徑有三種:分別是?get?,?post?,?cookie??梢杂眠@三種方式向一個網(wǎng)站提交數(shù)據(jù)。 一句話木馬用?$_GET[' ']??, $_POST[' ']?,$_COOKIE[' ']?來接受我們發(fā)送的數(shù)據(jù),并把接收到的數(shù)據(jù)傳遞給一句話木馬中執(zhí)行命令的函數(shù),進而執(zhí)行命令。所以我們看到很多一句話木馬大多數(shù)都有兩個部分,一個用來接受命令,一個用來執(zhí)行命令。 舉個例子:這就是一個經(jīng)典的一個一句話木馬,其中?post 就是使用 post 的方式來接受命令,而 eval 就是執(zhí)行命令的函數(shù),eval 在 PHP 中的意思是將收到的數(shù)據(jù)轉(zhuǎn)化成 PHP 代碼來執(zhí)行,這樣我們就能夠讓插了一句話木馬的網(wǎng)站執(zhí)行我們傳遞過去的任意php語句,是不是覺得一下豁然開朗? 演示一下一句話木馬的使用:新建立一個叫做muma.php的php文件,將它放入到www目錄中 因為是post方法,所以我們用hankbar來提交數(shù)據(jù) 我們提交一個叫?phpinfo 的命令,phpinfo?的意思是展現(xiàn)當前php版本信息,然后提交一下 ? 成功執(zhí)行! 但是不只是?eval 這一個函數(shù)可以實現(xiàn)這個功能,還有很多函數(shù)可以間接或者直接的實現(xiàn),而你要做的,便是想方設(shè)法進行變異來繞過某些檢測機制,這些思路網(wǎng)上有很多,這里就不在贅述了。 常用工具:中國蟻劍的使用不一定得是這個工具,筆者只是將用這個工具來做個科普。 中國蟻劍,一劍在手,縱橫無憂!其他的多余的話咱們就不說,來做個演示: 利用蟻劍鏈接一句話木馬 還是寫入一個一句話木馬,密碼值是value 將其中寫入到www目錄里面 ? 添加數(shù)據(jù) 然后添加數(shù)據(jù),成功! 點擊文件管理,就可以成功進入到目標服務(wù)器了。 利用SQL注入漏洞獲取webshell:從前文我們可以看出,一切一切的難度在于如何上傳小馬,而我們一般都是利用上傳漏洞來進行上傳各種大馬小馬,本次我們利用SQL注入來進行上傳操作,以達到寫入webshell的這一個操作。 select ...into outfile介紹:正常的使用規(guī)則就是select?A into?outfile B,意思就是選擇a的數(shù)據(jù)導(dǎo)入到b,常和union連用。但是有兩種寫法,一種是利用union的,一種是不用的。 如果要利用需要滿足多種條件:
挖洞這門藝術(shù)是運氣與實力的充分展現(xiàn),在get?shell的過程中限制會有很多,尤其是絕對路徑,有點時候有可能報錯或者是直接默認路徑直接就可以出來絕對路徑,有的時候得通過掃后臺敏感信息啊,sqlmap掃目錄啊,等等多種手段才能出來,這可能也就是挖洞的魅力所在吧。
思路引導(dǎo):首先我們理順一下思路,前提是我們已經(jīng)發(fā)現(xiàn)這個漏洞了,是select語句類型的SQL漏洞,并且已經(jīng)注入成功了,我們對這個漏洞進行進一步利用,通過測試我們發(fā)現(xiàn)我們擁有寫入權(quán)限,并且也沒有規(guī)定路徑,能使用單引號,我們也知道了后臺服務(wù)器的絕對路徑,于是決定寫入小馬對漏洞進行進一步的利用。 ?對于構(gòu)造語句,我們使用select?into?out?file?和union進行聯(lián)合使用,具體語句如下:
其中,前面的我想應(yīng)該就不用講了吧,不明白可以回顧一下前面的文章,重點在于:
這個十六進制碼這個翻譯過來就是: 帶引號的一個小馬,欸這里有人可能要問了,小馬就算了,為什么還要帶引號?SQL語句因為是解釋型語言,這條語句進入后臺后,首先后臺會解碼,把十六進制轉(zhuǎn)換成字符,然后再執(zhí)行,而帶引號的小馬會被當成字符串傳遞到muma.php的php文件中,這時在muma.php里面就是已經(jīng)變成字符串的一句話木馬,但是如果不加引號,傳遞到muma.php?的就是未被轉(zhuǎn)換的十六進制,這就是為什么要加引號的原因。 注入語句! 打開www目錄,我們發(fā)現(xiàn)已經(jīng)注入進去了 現(xiàn)在我們用蟻劍來進行連接 ? 成功鏈接! ? 常見防御姿勢:
? ? 本文到此結(jié)束!? 來源:http://www./content-2-156651.html |
|