我在这个网站上问了一个问题 -无法理解为什么网络应用程序容易受到目录遍历攻击,在那里我得到了一份报告,说明我的网络应用程序易受攻击。
我从报告中发布了几个样本,比如Testing Path: http://127.0.0.1:80/??/etc/issue <- VULNERABLE!,现在有人问我/??发布的网址中这两个是什么。
我跑了几个测试:
http://127.0.0.1:80/??/etc/issue 返回主页。
http://127.0.0.1:80/.?/etc/issue 返回主页。
http://127.0.0.1:80/?./etc/issue 返回主页。
因此,下面的模式返回主页:
http://127.0.0.1:80/Position1Position2Anything/Anythingcouldbehere,
如果Position1= ?,则返回主页,而与 处的内容无关Position2。
If Position1= .thenPosition2必须是?, 用于主页。
Anything也可以是空字符串。
现在,任何与上述模式不匹配的东西都会返回 400/404。
而且,我跑了上面的测试security.stackexchange.com/,它也返回相同的结果(遵循相同的模式.和?)和浏览器返回它的主页。
请解释? 和.在网址中的作用。
编辑:
根据渗透测试人员发送的报告,只有这种模式(上面的模式,带有?和.)使网络应用程序容易受到目录遍历攻击。