XSS可以在服务器上执行吗?

时间:2013-05-09 14:05:57

标签: security xss

您的XSS攻击被视为来自客户端计算机的攻击。但有没有办法对服务器进行XSS攻击?

我想知道有没有办法在服务器上使用客户端接口执行代码,就像SQL注入一样,但这里不是数据库服务器,而是简单的Web服务器或应用服务器。 / p>

3 个答案:

答案 0 :(得分:2)

有时,也可以使用XSS作为向量来触发和利用跨站点请求伪造(CSRF)攻击。

在网站上使用XSS就像控制用户在访问时执行的javascript一样。如果管理员偶然发现您的XSS代码(通过发送恶意链接或通过存储的XSS),那么您可能会让他或她在网络服务器上执行普通用户通常无法访问的请求或操作。如果您对网页布局足够了解,可以代表访问者(后端,用户列表等)请求网页,并将结果发送(渗透)到互联网上的任何位置。

您还可以使用更高级的攻击框架(例如BeEF)来尝试利用访问者浏览器中的漏洞。如果相关访问者是网站管理员,这可能会产生有趣的信息,以进一步攻击网络服务器。

XSS本身不允许您在服务器上执行代码,但它可以很好地利用Web应用程序中存在的其他漏洞。

答案 1 :(得分:0)

XSS或SQL注入等漏洞是一个更普遍问题的特定实例:将攻击者可控文本不正确地连接成其他格式(例如,SQL,HTML或Javascript)

如果您的服务器运行任何此类格式(例如eval()),它可能会有类似的漏洞。

答案 2 :(得分:0)

你的问题的答案并不完全是直截了当的。

具体来说,不能通过其接口注入代码来使用XSS攻击服务器

但是,有一些方法可以通过其接口将代码“注入”到服务器中并让服务器运行它。这些技术差别很大,而且具有很强的实施依赖性。

例如,有一个Web应用程序允许用户上传图像文件以供显示。 Web应用程序具有“修饰”图像的代码。修补代码中存在漏洞。恶意用户上传了一个精心准备的恶意.jpg文件,该文件溢出代码中的缓冲区,并将shell推送到攻击者的机器上。在这种情况下,攻击是通过其界面将代码“注入”到Web应用程序中进行的。

只要您永远不会处理用户输入(除了将其存储在数据库中并将其返回给其他用户),那么您应该对此类攻击非常安全。可能99%的网络应用程序需要更加担心用户对其他用户的XSS攻击,而不是针对自己的代码注入攻击。