xss开始使用xss


备注

概述跨站点脚本(通常称为XSS)是一种Web应用程序注入攻击,其中恶意脚本被注入受信任的网站。

当攻击者利用或“利用”Web应用程序中的缺陷将攻击者的有效负载发送到客户端的浏览器时,就会发生XSS攻击。当Web应用程序将用户输入发送到浏览器而未事先验证或编码时,通常会遇到这些缺陷。

XSS有效负载在“可信站点”的域内执行,并且有可能访问该网站的cookie,修改页面的DOM甚至滥用客户端的浏览器或扩展。

XSS类型

虽然最终结果对于所有XSS攻击(服务器响应中的攻击者控制的有效负载)是相同的,但是存在三种不同类型的XSS漏洞。

  • 存储的XSS是一种攻击,其中XSS有效负载永久存储在目标网站上,例如在数据库中。当客户端(例如受害者)加载诸如论坛板或评论部分的页面以加载有效载荷时,它将在其浏览器中执行。
  • 反射的XSS是一种攻击,其中XSS有效负载随请求一起发送到服务器并反映在响应中。可以通过单击精心制作的链接,提交表单或许多其他传递机制来触发这些攻击。
  • 客户端XSS ,也称为基于DOM的XSS ,是一种仅在客户端浏览器中发生的攻击(即,它不是由服务器的响应发送的),它通过操纵DOM的环境来强制页面上的现有可信脚本执行XSS有效载荷。

搜索结果示例

假设我们有一个搜索结果页面,显示用户的搜索查询。下面的代码是如何在PHP中完成此操作的示例:

Results for "<?php echo $_GET['query'] ?>"
 

为此,您可以使用以下URL访问该页面:

https://yoursite.test/search?query=stackoverflow
 

在回复中,我们得到:

Results for "stackoverflow"
 

现在我们将尝试将有效负载注入响应中:

https://yoursite.test/search?query=<script>alert(1)</script>
 

我们的新回应:

Results for "<script>alert(1)</script>"
 

我们已成功注入了XSS有效负载。