一、XSS脚本的特点
1.XSS最大的特点就是能注入恶意的代码到用户流浪器的网页上,
从而达到劫持用户会话的目的。
2.跨站脚本
是一种经常出现在web应用程序中的计算机安全漏洞,是由于web应用程序对用户
的输入过滤不严产生的。攻击者利用网站漏洞把恶意的脚本代码注入到网页中,当其他
用户浏览这些网页的时候,就会执行其中的恶意代码,对受害用户可能采用cookie资料
窃取,会话劫持,钓鱼欺骗等攻击手段。
3.XSS脚本实例
<html>
<head>xss</head>
<body>
<script>alert("xss")</script>
</body>
</html>
注:这段代码使用alert函数来执行打开一个消息框,消息框中显示XSS信息
xss输入也可能是html代码段,如果使网页不停的刷新,代码为:
<meta http-equiv="refresh" content="0;">
嵌入其他网站链接的代码是
<iframe src=http://cracer.com width=0 height=0></iframe>
4.XSS的危害
(1)网络钓鱼,包括盗取各类的用户账号
(2)窃取用户COOKIE
(3)窃取用户浏览会话
(4)强制弹出广告页面,刷流量
(5)网页挂马
(6)提升用户权限,进一步渗透网站
(7)传播跨站脚本蠕虫等
二、JavaScript简介
1、是一种直译式脚本语言,是一种动态类型、弱类型,基于原型的语言,内置支持类型。
它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最
早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态
功能。
2、Document对象
Document是一个对象,从JS一开始就存在的一个对象,它代表当前的页面,我们调用
它的write()方法就能向该对象中写入内容,即:document.write(),可以在html引用外部JS
代码<script src=x.js></script> 。JS代码中写入document.write("hello cracer");
3、JavaScript变量
定义变量 var 变量名; var x:
(1)JavaScript流程控制
if else 控制语句
var a=20
var b=10
if(a>b){
alert("a=20");
}else{
alert("b=10");
}
(2)Javascript函数
function x(a,b){
var c=a+b
return c;
}
var xx=x(1,2);
conseole.log(xx);
(3)Javascript事件
onclick属性 点击事件
function x() {
alert(/xss/)
}
<h1 οnclick="x()">hello</h1>
三、XSS分类
反射型XSS\DOM型XSS/存储型XSS
1.反射型XSS
定义:反射型跨站脚本也被称为非持久性、参数型跨站脚本,这类型的脚本是最常见的
也是使用最为广泛的一种,主要用于将恶意的脚本附加到URL地址的参数中。
例如:http://www.cracer.com/search.php?key="><script>alert("XSS")</script>
一般使用构造好的URL发给受害者,是受害者点击触发,而且只执行一次,非持久化
2.存储型XSS
1.存储型XSS比反射型跨站脚本更具有威胁性,并且可能影响到WEB服务器的自身安全
此类XSS不需要用户点击特定的URL就能执行跨站脚本,攻击者事先将恶意的JAVAScript
代码上传或存储到漏洞服务器中,只要受害者浏览包含恶意的代码的页面就会执行恶意代码
3、DOM型XSS
DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,
接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS
脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,
从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。
持续学习更新中