繁体   English   中英

XSS-是否只能使用JavaScript?

[英]XSS - is it only possible by using JavaScript?

我了解SO上有很多有关跨站点脚本的问题,并试图阅读投票最多的问题。 也已经阅读了一些网页,我仍然不确定这种攻击类型可以使用的所有可能性。 我不问如何使输入饱和,而是可以期望什么。

在SO和其他页面上给出的大多数示例中,有两种方法,其中最简单的方法(例如,PHPMaster上的该方法 )是插入一些用于窃取cookie的<script>代码。

Baba用户在此处提出的另一个方法是插入完整的<form>代码结构,但是,似乎在用户提交表单之前它不起作用,但是某些JavaScript事件,例如... onmouseover='form.submit()'...可能会被使用。

我已经检查过的所有网络示例仅是基于使用某些JavaScript代码的方法。

是否可以使用其他方法(例如-以某种方式)更改HTML甚至服务器端脚本?

我知道可以通过SQL注入或仅通过对服务器进行黑客攻击来获取此信息,但是我的意思是仅通过操纵(处理不当)GET,POST请求-或其他一些方法?

XSS与javascript有关。

但是,要注入您的恶意javascript代码,您必须使用页面代码的漏洞,该漏洞可能在服务器或客户端。

您可以使用CSP(内容安全策略)来阻止现代浏览器中的XSS。

XSS备忘单中还列出了XSS技巧。 但是,这些技巧大多数都不适用于现代浏览器。

如果Webkit也是请求的一部分,则不会执行javascript。 例如demo.php?x=<script>alert("xss")</script>即使将script标签注入dom也不会显示警报框。 而是引发以下错误:“拒绝执行JavaScript脚本。在请求中找到脚本的源代码。”

我知道可以通过SQL注入或仅通过对服务器进行黑客攻击来获取此信息,但是我的意思是仅通过操纵(处理不当)GET,POST请求-或其他一些方法?

GET参数和POST正文是通过HTTP请求攻击Web应用程序的主要媒介,但还有其他一些媒介。 如果您不小心上传文件,那么我也许可以上传Trojan 如果您天真地将上传的文件托管在与您的网站相同的域中,那么我可以上传JS或HTML并使其具有相同的起源特权 请求标头也是攻击者可能操纵的输入,但我不知道滥用它们的成功攻击。

代码注入是一类攻击,包括XSS,SQL注入,Shell注入等。

每当将由攻击者控制的GET或POST参数转换为代码或编程语言符号时,您都将面临代码注入漏洞的风险。

如果将GET或POST参数天真地插入到SQL字符串中,则可能会冒用SQL注入的风险。

如果将GET或POST参数(或标头(如文件上传中的文件名))传递给Shell,则可能会面临注入Shell包含文件的风险。

如果您的应用程序使用与服务器端语言等效的eval和不受信任的参数,那么您可能会面临服务器端脚本注入的风险。

您需要对所有输入都保持怀疑,将其视为纯文本字符串,然后在用另一种语言编写字符串时,请通过转义将纯文本字符串转换为该目标语言的子字符串。 过滤可以在这里提供深入的防御。


XSS-是否只能使用JavaScript?

不可以。VBScript可以注入IE中。 可以通过URL和CSS间接注入Javascript。 注入的图像可能会泄漏隐藏在引荐来源网址中的机密。 注入的元标记或iframe可以重定向到您网站的网络钓鱼版本。

易受HTTP响应标头拆分影响的系统可以通过注入响应标头(例如重定向URL或Set-Cookie指令)中的HTML和脚本来破坏。

HTML嵌入了许多种语言,因此在包含不可信来源的HTML片段时需要非常小心。 如果必须在网站中包含外部HTML,请使用白名单消毒剂

跨站点脚本编写不仅是将JavaScript代码插入网页中。 对于易受攻击的网页上下文中浏览器解释的任何代码注入,它都是一个通用术语,请参阅CWE-79

在页面生成期间,应用程序不会阻止数据包含Web浏览器可执行的内容,例如JavaScript,HTML标签,HTML属性,鼠标事件,Flash,ActiveX等。

例如,攻击者可以将自己的登录表单注入到现有登录页面中,该登录页面将凭据重定向到他的站点。 这也称为XSS。

但是,注入JavaScript通常更容易,也更有希望,因为它可以控制文档和受害浏览器。 使用JavaScript,攻击者可以读取cookie,从而窃取受害者的会话cookie来劫持受害者的​​会话。 在某些情况下,攻击者甚至可以在受害者的计算机上执行任意命令。

XSS的攻击媒介是多种多样的,但它们的共同点是,由于某些处理不当的输入,它们是可能的。 这既可以通过GET或POST提供的参数,也可以通过HTTP请求中包含的任何其他信息(例如cookie或任何其他HTTP标头字段)来实现。 有些使用单个注入点,另一些则分成多个注入点。 有些是直接的,有些是间接的; 有些是自动触发的,有些则需要某些事件; 等等

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM