Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
绕过PHP readfile中的字符串concat进行LFD攻击_Php_File Io_Exploit - Fatal编程技术网

绕过PHP readfile中的字符串concat进行LFD攻击

绕过PHP readfile中的字符串concat进行LFD攻击,php,file-io,exploit,Php,File Io,Exploit,我正在学习一门关于软件安全性的课程,并介绍了以下场景: 服务器上运行的PHP代码: 我需要知道是否可以利用此漏洞在服务器上获取任意文件(而不是*/remove/this.txt) 我尝试使用空字节(%00),但它不起作用(apache服务器在Ubuntu上运行PHP5.3) 我也试着用它来创造php://filter, php://input等等,什么都没有。这里的问题是指令的最后一部分是资源 路径截断似乎也不起作用。现在我唯一能做的就是使用?var= 我刚刚运行了一个简单的测试,可以说没有

我正在学习一门关于软件安全性的课程,并介绍了以下场景:

服务器上运行的PHP代码:


我需要知道是否可以利用此漏洞在服务器上获取任意文件(而不是*/remove/this.txt)

我尝试使用空字节(%00),但它不起作用(apache服务器在Ubuntu上运行PHP5.3)

我也试着用它来创造php://filter, php://input等等,什么都没有。这里的问题是指令的最后一部分是资源


路径截断似乎也不起作用。现在我唯一能做的就是使用?var=

我刚刚运行了一个简单的测试,可以说没有一个单个字符利用此漏洞来删除最后一个文件名部分。例如:



我只是分析了实现。如果字符串中有NUL字节,它将失败。除此之外,没有机会。只有
php://filter
;最愚蠢的部分是
/resource=
部分需要位于字符串的末尾。。。唯一关键的是,攻击者可以访问通常不暴露于外部网络的服务器。(通过http://
)@bwoebi确切地说,你完全理解这个问题,虽然我还没有准备好放弃。例如,我在玩游戏时发现,在Windows中“\\localhost-xxx/whatevertext”产生的结果与“\\localhost”相同;显然,这并不能解决任何问题,但我的观点是,如果我们努力寻找并发挥创造力,我们可能会找到一些东西。你试过了吗?也许它已经安装。@Gumbo非常聪明,但它给了我以下信息:“警告:readfile():找不到包装器“expect”-配置PHP时忘记启用它了吗?@LorenzoWills。。。该提交引入了该检查,但它仅为5.4(及更新版本)。你说你正在运行PHP5.3,所以,NUL字节应该可以工作,我想??是的,我也这么做了,即使有两个字符,下面的代码是:代码太长了。无论如何,我认为解决方案,如果有的话,将不会依赖于打破道路。。。也许有点像php://filter 最后一个论点可以忽略的地方我做得很好,涵盖了一些选项。不错的帖子和讨论,但没有解决方案。另一件事是,涵盖了更多选项。我不能让他们中的任何一个工作,但提供了一些更多的想法。
<pre>
<?php

for($i=0;$i<=255;$i++){
    $chr = chr($i);

    readfile("B.txt{$chr}A.txt");
}