我正在处理这个问题:
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。
我得到了正确的答案;然而,我不太明白这是怎么回事。
-
首先,你如何知道什么时候东西容易受到目录遍历。我这么做是因为我看了论坛,但是我怎么知道目录遍历是一个选项呢?
-
如果你点击阅读诗歌-->"诗歌名称",你会得到这样的网址:
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中的目录遍历,但允许路径