我正在学习一门关于软件安全的课程,并向您介绍了以下场景:
运行在服务器上的PHP代码:
<?php
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=response.txt");
readfile($_GET['file']."/remove/this.txt");
?>我需要知道是否可以利用此漏洞在服务器上获取任意文件(*/remove/ this . the除外)。
我尝试使用空字节(%00),但它不起作用( apache服务器正在Ubuntu上运行PHP5.3)。
我还尝试用php://filter、php://input等来实现创造性。这里的问题是指令的最后一部分是资源。
路径截断似乎也不起作用。现在我唯一能做的就是用?var=读取网址.
发布于 2014-09-30 17:47:05
我只是运行了一个简单的测试,可以说,没有一个单一的字符攻击,这将切断最后的文件名部分。示例:
<pre>
<?php
for($i=0;$i<=255;$i++){
$chr = chr($i);
readfile("B.txt{$chr}A.txt");
}创建了一个名为A.txt (标准文件)和B.txt (目标文件)的文件。在每个文件中放置一些值得注意的内容,这样您就可以知道它何时被读取(我已经有了其他文件,每个文件中都有一个类似100项的不同列表)。
我的系统上没有一个字符漏洞,那就是RHEL6。如果文件remove/this.txt存在于其他地方,并且您可以重定向到另一个目录,则可以利用该漏洞进行攻击。
https://stackoverflow.com/questions/26125970
复制相似问题