一、xss的形成原理
xss 中文名是“跨站脚本攻击”,英文名“Cross Site Scripting”。
xss也是一种注入攻击,当web应用对用户输入过滤不严格,攻击者写入恶意的脚本代码(HTML、JavaScript)到网页中时,如果用户访问了含有恶意代码的页面,恶意脚本就会被浏览器解析执行导致用户被攻击。
常见的危害有:cookie窃取,session劫持,钓鱼攻击,蠕虫,ddos等。
二、xss的分类
xss根据其特性和利用方式可以分为三大类:反射型xss,存储型xss,DOM型xss
1、反射型xss
反射型xss一般出现在URL参数中及网站搜索栏中,由于需要点击包含恶意代码的URL才可以触发,并且只能触发一次,所以也被称为“非持久性xss”。
2、存储型xss
存储型xss一出现在网站留言板,评论处,个人资料处,等需要用户可以对网站写入数据的地方。比如一个论坛评论处由于对用户输入过滤不严格,导致攻击者在写入一段窃取cookie的恶意JavaScript代码到评论处,这段恶意代码会写入数据库,当其他用户浏览这个写入代码的页面时,网站从数据库中读取恶意代码显示到网页中被浏览器执行,导致用户cookie被窃取,攻击者无需受害者密码即可登录账户。所以也被称作“持久性xss”。持久性xss比反射型xss危害要大的多。
3、dom型xss
DOM xss是基于dom文档对象模型,前端脚本通过dom动态修改页面,由于不与服务端进行交互,而且代码是可见的,从前端获取dom中的数据在本地执行。
常见的可以操纵dom的对象:URL,localtion,referrer等
引起触发的几条语句:
<script>alert('hello,gaga!');</script>
>"'><img src="javascript.:alert('XSS')">
' onmouseover=alert(2) '
" onclick=alert(1) "
"><a href=javascript:alert(1)>ddd
"><img src=# onerror=alert(1)>>
<svg onload=alert(1)>
绕过思路:
1.JS编码
八进制e 145
十六进制 e x65 或者 x0065
特殊C风格:
2.HTML实体编码
命名实体:< <
字符编码:十进制、十六进制 ASCII码或Unicode字符编码
样式为:“&#数值;”
例如: < 可以编码为 <; <
3.URL编码
两次URL全编码
三:
xss挑战 网址:
http://xss.tesla-space.com/
参考答案: