-2

作为系统管理员角色,我必须使用 PHP 构建安全网站。漏洞扫描器提供目录遍历攻击警告。我用谷歌搜索了很多网站,但没有找到合适的解决方案。我已经禁用了索引并将目录拒绝放在 / 上。

目录遍历是否可以通过 Aapache 配置或 PHP 来防止?

请对此进行指导。

帮助将不胜感激。

根据需要更详细的问题。

第 3 方已经发现漏洞并通过 GET 方法下载 /etc/passwd 文件。

这里更详细。

漏洞描述 该脚本可能容易受到目录遍历攻击。

目录遍历是一个漏洞,它允许攻击者访问
受限目录并在 Web 服务器的根目录之外执行命令。
此漏洞影响
发现者:脚本 (Directory_Traversal.script)。
攻击详情
URL 编码的 GET 输入文件设置为 ../../../../../../../../../../etc/passwd
找到的文件内容:
root:x :0:0:root:/root:/bin/bash

查看 HTTP 标头

请求
GET 已删除
offile=../../../../../../../../../../etc/passwd HTTP/1.1
引用者:已删除
Cookie:PHPSESSID=7lnb7v198ul8691398urchg833;
ccity=6cd5165e7bce89782ed37abe9401604a01cb6056s%3A3%3A%22AGR%22%3B;
语言=13d4e1ed1ec441aca81746dd05751ce248f3fff5s%3A2%3A%22ma%22%3B;
YII_CSRF_TOKEN=f5e14954e37e2975baa3eec9007f1d89ee8b0302s%3A40%3A%2234cb9e79ba1cafe5dbc69403f245dbcf708adb9b%22%3B
Host: removed
Connection: Keep-alive
Accept-Encoding: gzip,deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko ) Chrome/28.0.1500.63 Safari/537.36
接受:/

回复

HTTP/1.1 200 OK
日期:2016 年 3 月 10 日星期四 08:32:38 GMT
服务器:Apache
X-Powered-By:PHP/5.5.9-1ubuntu4.5
过期:1981 年 11 月 19 日星期四 08:52:00 GMT
缓存-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Transfer-Encoding: binary
Content-Length: 1348
Content-Disposition: inline; 文件名=../../../../../../../../../../etc/passwd
Keep-Alive: timeout=60, max=781
Connection: Keep-活动
内容类型:应用程序/pdf

文件内容

root:x:0:0:root:/root:/bin/bash 守护进程:x:1:1:守护进程:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin :/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60 :games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/ spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr /sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data: x:33:33:www-data:/var/www:/usr/sbin/nologin 备份:x:34:34:backup:/var/backups:/usr/sbin/nologin 列表:x:38:38:邮件列表管理器:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats 错误报告系统(管理员):/var/lib/gnats:/usr/sbin/nologin 没有人:x:65534:65534:nobody:/不存在:/usr/sbin/nologin libuuid:x:100:101::/var/lib/libuuid:syslog:x:101:104::/home/syslog:/bin/ false mysql:x:102:106:MySQL Server,,,:/nonexistent:/bin/false messagebus:x:103:107::/var/run/dbus:/bin/false Landscape:x:104:110: :/var/lib/landscape:/bin/false sshd:x:105:65534::/var/run/sshd:/usr/sbin/nologin ntp:x:106:114::/home/ntp:/bin /false tpl-nag:x:1001:1002::/home/tpl-

该漏洞的影响 通过利用目录遍历漏洞,攻击者可以跨出根目录,访问其他目录中的文件。因此,攻击者可能会查看受限文件或执行命令,从而彻底破坏 Web 服务器。

如何修复此漏洞 您的脚本应从用户输入中过滤元字符。

4

1 回答 1

0

1)了解漏洞(https://en.wikipedia.org/wiki/Directory_traversal_attack)。我相信你已经这样做了。

2)重现漏洞。根据 1) 和您对组织所做工作的了解自己找到它,或询问发现它的第 3 方。如果他们无法提供至少一个漏洞的具体示例(例如:URI),请要求您退款:)多个示例会有所帮助。

3) 您现在应该有足够的信息来修复您的服务器。它可能在 Apache 和/或 PHP 和/或其他地方,但无法通过问题中提供的信息来判断。如果您在那个阶段仍然无法修复它,请随时在此处提出另一个问题。

4) 测试您在 2) 中发现的任何内容在您的服务器更改后不再发生。

编辑(提供更多信息)

第 3 方实际上已经很好地回答了您的问题:“如何修复此漏洞您的脚本应从用户输入中过滤元字符。” 让他们在这里发布他们的答案,您可以接受:)

于 2016-04-06T09:02:39.277 回答