我允许人们将.swf文件(游戏)上传到我的服务器。我查看它们,并在网站上发布好的。从某种意义上说,理论上可以将纯闪存上载程序脚本放入游戏中,并将恶意文件上传到服务器?所有的flash上传脚本通常都需要一个php / asp / what脚本来捕获上传并从中获取它。这可以在理论上用prue flash完成,如果是这样的话....你怎么防止它?
答案 0 :(得分:1)
按照可能性递减的顺序(更可能 - >不太可能):
从服务器提供的任何SWF 都可以调用服务器可用的脚本。如果这些脚本上传任何内容,则SWF可以使用它们。
如果您的服务器提供适合套接字的跨域,那么SWF可以实现Telnet,FTP,SSH以及许多基于TCP的其他协议。如果您的服务器接受使用这些协议的自动上传,SWF可以使用它们。
SWF文件可能有一个名称,例如,如果用Unix find
搜索可能被理解为对另一个命令的调用(例如,Unix文件名允许换行,所以从输出流读取一个程序)使用shell的另一个程序可能会意外地引发随机代码的参数扩展/执行,如果你不够小心的话。)
任何一般漏洞都可以被利用,例如,如果恶人知道将SWF文件提供给阅读它的程序的方法,并以某种方式强迫程序泄露一些机密信息;当然,一切皆有可能。然而,SWF在这方面没有任何优势,如果机会出现,任何文件都可以同样“有用”。
答案 1 :(得分:0)
简答:不 - 但你应该关注XSS。
但从技术上讲,当您测试swf文件时,您可以使用vulernable。虽然Adobe通常会尝试通过将.swf文件放在沙箱中来保护其用户,但您可以编写一个具有本地文件访问权限(但没有网络权限)的swf文件。
当您的服务器提供swf文件时,swf文件正在客户端的计算机上执行 - 而不是您的。您的情况唯一的区别是,swf文件在技术上与服务器本身在同一个域上运行 - 因此wvxw是正确的,因为它可以访问您在该域上公开的服务。在正常情况下,Adobe会阻止swf文件访问不同域中的资源(除非您在服务器根目录上有一个跨域文件。但是,这种保护主要是为了保护swf文件的用户而不是服务器。恶意攻击者可以轻松拦截对crossdomain.xml文件的请求并将其提供给自定义文件。这有效地允许swf文件向任何域发出请求。
正如前面提到的,flash(或任何其他语言)可以利用文件系统上任何预先存在的漏洞。
你应该更关注XSS。从技术上讲,Flash应用程序可以向其他域发出请求以收集有关用户的信息。只是为了说明一点,一个非常狡猾的Flash应用程序在技术上可以在你的批准后的某个时刻从另一个域(创建者通过跨域文件批准)中提取自己的swf文件。然后,此swf文件的行为可能与您批准的行为完全不同。
每当您授权用户发布内容时,这都是一个普遍问题。通过解析服务器端的恶意代码,通常会阻止XSS攻击。在您的情况下,由于swf文件是二进制文件,因此基本上不可能这样做。