网站地图    收藏   

主页 > 后端 > 网站安全 >

php include 路径截断漏洞的利用 - 网站安全 - 自学

来源:自学PHP网    时间:2015-04-17 14:47 作者: 阅读:

[导读] php 的include结构可以用于包含并运行指定文件,不过文件的路径在一些情况下会被截断,比如路径中包含ascii值为0的字符。先上一段演示代码:?php$s=$_GET[#39;s#39;];$path = demo/$s/;include($pat...

php 的include结构可以用于包含并运行指定文件,不过文件的路径在一些情况下会被截断,比如路径中包含ascii值为0的字符。先上一段演示代码:

<?php
$s=$_GET['s'];
$path = "demo/$s/";
include($path."style.css");
?>

这是很普通的一段代码,根据用户输入的$s值,包含demo目录下的$s目录下的style.css文件(O(∩_∩)O,示例代码,别管有什么实际用处)。

看到这段代码,首先就想到 $s可以随意伪造,不过无论我们怎么伪造,似乎都没有多大利用价值,因为

include(“demo/../upload/1.jpg/style.css")或者是

include("demo/../upload/1,jpg?/style.css")等等构造出来的,都不符合include的路径规定,都会抛出异常。

不过事实上,因为include的路径可以被截断,所以有了下面的利用方式:

include("demo/../upload/1.jpg".chr(0)."/style.css")

在chr(0)处会发生截断,上面这句就等效于include("upload/1.jpg"),漏洞爆出来了^_^,接下来,就是怎么让$s成为我们希望的值(假设开始的那段演示代码保存在test.php里)

http://www.2cto.com /test.php?s=../upload/1.jpg%00

后面的%00就是我们要的,这样路径就会被截断了

文章作者:荆棘鸟 本文地址:http://www.classover.com.cn/?p=3092

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论