首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过消息体或HTTP cookie来执行XSS?

如何通过消息体或HTTP cookie来执行XSS?
EN

Security用户
提问于 2020-04-05 09:06:04
回答 1查看 741关注 0票数 1

我正在阅读“黑客手册”,其中一章说:“在URL查询字符串、消息正文和HTTP cookie中提交的参数是最明显的入口点……”

我知道URL可以提供例如XSS。但是,有人能解释消息体和/或HTTP如何作为“用户输入”来执行例如XSS吗?请提供这样一个“用户输入”的例子。

EN

回答 1

Security用户

回答已采纳

发布于 2020-04-05 18:28:23

反射XSS的主要攻击矢量是创建一个带有嵌入式脚本代码(通常是JavaScript )的请求,然后由服务器获取该请求,并将其注入发送回客户端的响应中。脚本代码最初如何发送到服务器并不重要,只要服务器获取它并将其嵌入响应中。

在我看来,您似乎很难回答以下问题:“攻击者如何触发受害者浏览器发送这样的请求?”

  1. 在URL中。你提到你理解这个版本,这样我们就可以在那里工作了。攻击者伪造了一个他发送给受害者的URL。这可以是一个简单的链接,受害者点击,或某种形式的重定向从另一个网站。当受害者单击链接时,会用有效负载发送GET请求,服务器将其嵌入响应中,浏览器执行恶意脚本。
  2. 在消息体中。如果不能使用GET请求来执行XSS (因为服务器需要POST请求),则不能在URL中提供脚本代码。您仍然使用相同的原则,但是没有将参数放在URL中,而是将其放入消息体中。这基本上是一样的,但现在你不能制作一个简单的链接与有效载荷。相反,您必须欺骗受害者浏览器以发送POST请求。对于攻击者来说,一个简单的方法就是引诱受害者进入他控制的网站。在这个网站上,他使用例如JavaScript创建一个带有自动提交的表单,该表单将有效负载作为消息体中的POST参数。当访问该网站时,浏览器执行JavaScript代码,该代码向易受攻击的网站发送带有XSS有效负载的post请求--瞧!
  3. 在饼干里。这在一开始看起来很棘手,因为您不能在受害者浏览器中为另一个域设置cookie。但这已经是解决问题的办法了--它通常不起作用。您需要的是一个特殊的用例,它允许您通过网站中的机制设置易受攻击的cookie。想象一个定义网站语言的cookie。该网站可以实现一个简单的请求,允许用户将自己的语言首选项存储在cookie中,从而允许任意值。服务器使用包含此用户定义值的Set-Cookie响应头进行应答。此任意语言值存储在浏览器中,并与未来的每个请求一起作为cookie发送。如果该网站易受XSS攻击,这意味着它反映了没有卫生设施的cookie值,攻击者可以通过强制受害者的浏览器发送两个请求来进行简单的攻击。第一个将cookie有效负载存储在浏览器中,第二个将是对网站的另一个请求,在那里cookie会被反射。

最后,XSS的概念在所有三种场景中都保持不变,只有攻击向量看起来略有不同。但是,按照您在问题中的要求提供特定的用户输入是没有意义的,因为有效负载总是相同的。如果您可以使用URL中的GET参数来完成它,那么您也可以使用任何其他形式的用户输入来完成它。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/229267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档