v2-f4f9e539a53619e380a624368a68496f.jpg

浏览器的同源策略,同源策略即限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。其中,影响“源”的因素有:协议、host、子域名、端口。
XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
XSS攻击成功后,攻击者能够对用户当前浏览的页面植入恶意脚本,通过恶意脚本,控制用户的浏览器。这些用以完成各种具体功能的恶意脚本,被称为“XSS Payload”。
总结:有用户数据输入或者交互的地方就有可能有XSS漏洞。如搜索、评论、发布文章等页面都可能存在XSS漏洞。
2.XSS攻击类型
XSS攻击主要有三种攻击类型:反射型XSS、存储型XSS以及DOM Based XSS。下面详细介绍这三种攻击。
2.1反射型XSS
反射型XSS只是简单地把用户输入的数据“反射”给浏览器,该恶意脚本并未存储到服务器。如果黑客想要攻击用户,首先需要诱使用户点击一个恶意的链接才能攻击成功。
XSS的攻击流程为:
1.用户登录一个有XSS漏洞的A网站;
2.黑客向用户发送一个恶意链接并且用户点击了该链接,或者用户在别的地方点击了一个恶意链接,该链接为请求A网站的链接,但是参数中包含恶意脚本。
3.用户点击该链接后,恶意脚本则会在A网站执行,至此攻击成功。
eg:A网站有个页面,是显示用户输入的数据,链接为:
http://localhost:4444/web_test/XSS/html_content/b.jsp?name=ABC
页面显示效果为:

如果用户把输入的name参数改为一个js脚本,则A网站则会执行该脚本:
http://localhost:4444/web_test/XSS/html_content/b.jsp?name=

2.2存储型XSS
存储型XSS会把用户输入的数据存储在服务器端。当这些存储的数据再次展示在页面时,发起攻击。如黑客写下一篇包含有恶意脚本的文章发布,之后,访问该文章的用户,他们的浏览器都会执行这段恶意脚本。
2.3DOM Based XSS
DOM Based XSS为通过修改页面的DOM节点形成的XSS。从效果上来说,DOM Based XSS攻击也是反射型,但是因为起比较特殊,因此单独作为一个分类。
下面举例说明:



当用户输入内容后提交,domBasedXSS方法将会把用户输入的内容变为超链接的参数内容显示在页面。
如果构造如下数据:
‘ onclick=’alert(1)’//
提交后,页面的超链接代码将会变为:
test
此时第一个单引号会闭合href的单引号,之后插入了一个onclick事件,之后用//注释掉第二个单引号。当用户点击链接后,脚本将会执行。

也可以进行如下构造:
'><
提交后,页面的超链接代码将会变为:
<’>test
提交后页面变为:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code