为啥公共可写目录容易受到攻击?
Posted
技术标签:
【中文标题】为啥公共可写目录容易受到攻击?【英文标题】:Why is a public writable directory vulnerable?为什么公共可写目录容易受到攻击? 【发布时间】:2014-03-17 10:09:54 【问题描述】:只是尝试一些东西:)
我创建了一个新目录并执行了 chmod 777(使其可公开写入)
现在假设我无权访问该目录所在的服务器。我尝试了以下方法:
file_put_content('http://myserver.com/writabledir/newfile.txt', "我的新文件文件内容"); (我是 php 用户)。 // 由于不支持 HTTP 包装器,因此无法正常工作。
我使用 javascript 将文件上传到同一个可写目录。我收到 CORS 错误。
现在我无法将任何文件上传到这个公共可写目录。有人能指出如何滥用公共可写目录吗?
【问题讨论】:
因为没有什么比工作需要更多的特权了。如果您服务器上的 任何 进程受到威胁,他们可以在那里写入。他们应该做不到。问题不是:“我为什么不这样做?”。开始思考:“我为什么需要这个?”。如果您有多个用户且没有跨组读取setfacl
,则设置正确的所有者并仅授予其写入权限是一个开始,实际上,开始运行SELinux
。
@Wrikken 我完全同意你的看法,这就是我在现实世界中所遵循的。这个问题是出于好奇,我相信有一些邪恶的方式可以利用这种设置。只是想知道它是如何完成的。我真的很渴望知识:) 所以仅仅知道不应该这样做对我来说是不够的。我需要回答为什么。
这样看:Apache 不应该写在那里,除非你明确地配置它,否则不会,IF 一切都按预期工作。但是,如果发现 Apache 漏洞,您希望将其可能造成的损害降至最低。这是假设你拥有整个服务器,如果你在共享主机上......好吧......任何人都可以在那里做他们喜欢做的事情。
@LuckySoni 我想你有点困惑。您不能使用 PHP 的 file_put_contents() 或 JavaScript 写入服务器上的文件。它需要是直接在服务器上的东西,例如 PHP 或 Perl 脚本、bash 脚本、通过 SSH 连接的某人等。例如,如果您在共享主机上,则主机上的其他任何人都可以修改你的文件,如果它们是世界可写的。
【参考方案1】:
有人能指出如何滥用公共可写目录吗?
就其本身而言?他们不能滥用它们。结合其他功能(或漏洞),它使利用更容易。
这就是全部答案。我们可以深入假设场景并讨论各种threat models,但最终,将您的可公开访问的目录设为只读的建议来自“不要冒不必要的风险”。
这是一个强大的位置。
【讨论】:
以上是关于为啥公共可写目录容易受到攻击?的主要内容,如果未能解决你的问题,请参考以下文章