php LFI漏洞的一些收集

2021-06-22 09:33:25 字數 1796 閱讀 6985

1. lfi全稱是local file include,先舉個最簡單的例子來說明下:

<?php 

$file=$_get['file'];

if (isset($file))

include("$file");

else

include("key.php")

?>

測試如下:

2. 最二的防範:

<?php 

$file=str_replace('../','',$_get['file']);

var_dump($file);

if(empty($file))

else

include("$file");

?>

上面只是直接將../轉換成空,../../../../etc/passwd就會轉化成etc/passwd,但是可以這樣過濾掉../../../../..//ect/passwd

3. 加字尾的繞過方法:

<?php 

$file=str_replace('../','',$_get['file']);

var_dump($file);

if(empty($file))

else

include("$file"."php"); #在此處加字尾

?>

可以通過%00來繞過(前提是

4. include包含的檔案會直接將其對待成php進行解析,所以所有的.txt,.jpg,.gif裡面包含一句話就可以直接菜刀連線

5. php://input輸入流直接可以執行命令。php://input 是個可以訪問請求的原始資料的唯讀流。 post 請求的情況下,最好使用 php://input 來代替 $http_raw_post_data,因為它不依賴於特定的 php.ini 指令。 而且,這樣的情況下 $http_raw_post_data 預設沒有填充, 比啟用 always_populate_raw_post_data 潛在需要更少的記憶體。 enctype="multipart/form-data" 的時候 php://input 是無效的。

下面來看下php://input是如何執行系統命令的:

include.php的**如下:

<?php 

$query=$_get['p'];

include($query);

?>

下圖直接post**<?php system('ls')?>

6. data://讀取源**:

收集的一些題or結論

兩條單鏈表如果交叉的話不可能一條有環一條沒有環。已知有個rand7 的函式,返回1到7隨機自然數,讓利用這個rand7 構造rand10 隨機1 10 rand7 1 7得到乙個離散整數集合a 其中每個整數的出現概率也都是1 7。而rand7 得到的集合b 中每個整數出現的概率也是1 7。顯然集合a...

關於抽象的一些收集

什麼是抽象?什麼是抽象等級高?什麼是具象?大家天天說抽象,甚至還在比較抽象的等級高階,但是我實在不知道大家腦子裡的 抽象 一詞到底是什麼意思?首先,很關鍵的一點是 現在你站在 最關鍵的是觀察者主體的位置處在 首先關鍵的是參照點。更令人迷惑的是你一定會運動!因為你是主體,你有主觀能動性,你可以在問題空...

收集的一些語法糖

蒐集一些語法糖 去掉列表中每個元素頭尾的空格 freshfruit banana loganberry passion fruit str.strip for str in freshfruit banana loganberry passion fruit 把列表中,大於3的元素,乘以2 vec ...