关于目录遍历的问题



我正在处理这个问题:

https://www.hackthissite.org/missions/realistic/3/

上面的网站已经被黑客入侵,我们的工作是让它恢复原状。我从查看源代码开始。黑客留下评论:

"网站管理员注意这个网站已经被黑客入侵,但还没有完全摧毁。旧网站仍然存在。我只是简单地将旧的index.html文件复制到oldindex.html并重新制作这个。很抱歉给您带来不便。">

所以我去了https://www.hackthissite.org/missions/realistic/3/oldindex.html

然后我点击提交诗歌。在名称字段中,我输入/index.html,在诗歌字段中我放了页面的源代码:

网址:www(dot)hackthissite.org(点)missions/realistics/3/oldindex(点)html。

我得到了正确的答案;然而,我不太明白这是怎么回事。

  1. 首先,你如何知道什么时候东西容易受到目录遍历。我这么做是因为我看了论坛,但是我怎么知道目录遍历是一个选项呢?

  2. 如果你点击阅读诗歌-->"诗歌名称",你会得到这样的网址:

    www(点)hackthissite(点)org/missions/realistics/3/readpouse(点)php?name=%20Idiot

    在这种情况下,最终的url不会使用/index.html be:

    www(dot)hackthissite(点)org/missions/realistics/3/?name=索引(点)html

    不是www(点)hackthissite(点)org/missions/realistic/3/index(点)html

对不起(点)。我需要更多的声誉来发布更多的链接。

在目录遍历攻击过程中,攻击者会提交一个包含字符的文件名,使他们能够访问预期目录之外的文件。例如,一个点(.)表示当前目录,两个点(..)表示父目录。在攻击过程中,目标是使用PHP提升的权限访问和读取受限制的文件。

这是一个目录横向易受攻击的php代码示例:

$page = $_GET['page'];
$filename = "/pages/$page";
$file_handler = fopen($filename, "r");  
$contents = fread($file_handler, filesize($file)); 
fclose($file_handler); 
echo $contents;

在您的挑战中,文件:"readpo诗.php"在他的$_GET['name']变量中是易受攻击的,并且它也发生了类似的情况。

在blackbox pentesting中,您可以通过跟踪模糊值和分析请求/响应流量时产生的错误来检测它。

en.wikipedia.org/wiki/Fuzz_testing

防止这种情况的一种解决方案是检查"禁止"事件,有人在这里举了一个例子:防止PHP中的目录遍历,但允许路径

相关内容

  • 没有找到相关文章

最新更新