XSS攻击

来自个人维基
跳转至: 导航搜索

什么是XSS攻击

跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
= 为什么会产生XSS攻击。
一些网站或者服务器程序会将用户输入的信息作为页面的一部分插入到某些页面中。典型的有评论功能、BBS、论坛等等。但是注意,无论用户的输入是什么,最终呈现给其他用户的信息都是以Html语言撰写的页面。这就意味着,如果没有对用户的输入信息加以限制,其输入内容就会作为页面的一部分插入整个页面的代码中。试想,如果用户输入了一段Html代码呢?很显然,用户的输入作为一段代码,会被所有访问此页面的浏览器执行。

我们通过几个实例来了解XSS攻击。

注入已有元素

此处以一个经典的漏洞作为演示。

打开站长之家的ip查询工具:IP/IPv6查询,服务器地址查询 - 站长工具 (chinaz.com)

在页面的左侧,除了IP地址以外,你还能看到许多特殊的信息。这些信息源于你的请求数据包中所附带的请求头中的内容。不难发现,其中的“浏览器”部分就是请求头中“User-Agent”的内容。利用Burp Suit更改User-Agent的内容为一串HTML脚本,就能够达到执行脚本的效果。比如更改为:

<script>alert(示例消息)</script>

此时,浏览器就会显示一个提示“示例消息”的内部窗口。

在更多实例中,我们甚至可以通过类似的方法注入会被展示给其他用户的内容(比如一些防御较弱的论坛的签名模块),来进一步扩展攻击范围。

警告:请勿在公网上随意进行XSS攻击实验。所造成的法律后果请自己承担。

关于XSS攻击的更多研究

用HTML和JavaScript模拟XSS攻击 | 唐泽雪穗
给你讲清楚什么是XSS攻击 - 程序员自由之路 - 博客园