1. lfi全稱是local file include,先舉個最簡單的例子來說明下:
測試如下:<?php
$file=$_get['file'];
if (isset($file))
include("$file");
else
include("key.php")
?>
2. 最二的防範:
上面只是直接將../轉換成空,../../../../etc/passwd就會轉化成etc/passwd,但是可以這樣過濾掉../../../../..//ect/passwd<?php
$file=str_replace('../','',$_get['file']);
var_dump($file);
if(empty($file))
else
include("$file");
?>
3. 加字尾的繞過方法:
可以通過%00來繞過(前提是<?php
$file=str_replace('../','',$_get['file']);
var_dump($file);
if(empty($file))
else
include("$file"."php"); #在此處加字尾
?>
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的**如下:
下圖直接post**<?php system('ls')?><?php
$query=$_get['p'];
include($query);
?>
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 ...