XSS漏洞
跨站脚本攻击——XSS(Cross Site Scripting),本应该缩写为CSS,但是该缩写已被层叠样式脚本Cascading Style Sheets所用,所以改简称为XSS。也称跨站脚本或跨站脚本攻击。指攻击者通过在web页面中写入恶意脚本,进而在用户浏览页面时,控制用户浏览器进行操作的攻击方式。假设在一个服务器上,有一处功能使用了这段代码,它的功能是将用户输入的内容输出到页面上,这就是其常见的表现。
XSS漏洞原理
跨站脚本攻击XSS通过将恶意的JS代码注入到Web页面中,当用户浏览该网页时,嵌入其中Web里面的JS代码会被执行,从而达到恶意攻击用户的目的。(JS可以非常灵活的操作HTML、CSS和浏览器,这使得XSS攻击的“想象”空间特别大)
本质:在前端JS中插入恶意的JS代码
XSS漏洞执行步骤:
通过将精心构造的代码(JS)代码注入到网页中,并由浏览器解释运行这段JS代码,以达到恶意攻击的效果。
当用户访问被XSS脚本注入的网页,XSS脚本就会被提取出来。用户浏览器就会解析这段XSS代码,也就是说用户被攻击了。用户最简单的动作就是使用浏览器上网,并且浏览器中有javascript解释器,可以解析javascript,然而浏览器不会判断代码是否恶意。也就是说,XSS的攻击对象是用户的浏览器。
微博、留言板、聊天室等等收集用户输入的地方,都有可能被注入XSS代码,都存在遭受XSS的风险,只要没有对用户的输入进行严格过滤,就会被XSS 。只要攻击者可以将恶意代码注入到服务器中,我们就认为其存在xss漏洞。
XSS漏洞危害
XSS(Cross Site Scripting)跨站脚本攻击,它自1996年诞生以来,常被OWASP评为十大安全漏洞之一。
XSS最大的特点:
能注入恶意代码到用户浏览器的页面上,从而达到劫持用户会话的目的。
例如,2011年6月,国内信息发布平台爆发XXS蠕虫攻击,该蠕虫漏洞仅持续16分钟,但感染用户近33000,后果十分严重。
XSS利用JS代码实现攻击,有很多种攻击方法,以下简单列出几种
盗取各种用户账号
窃取用户Cookie资料,冒充用户身份进入网站
劫持用户会话,执行任意操作(浏览器劫持)
刷流量,执行弹窗广告
传播蠕虫病毒
等等
XSS漏洞的验证
我们可以用一段简单的代码,验证和检测漏洞的存在,这样的代码叫做poC(proof of Concept)。
POC(Proof of Concept ):概念验证,漏洞的验证和检测
EXP(Exploit):漏洞的完整利用工具
shellcode(shell代码):利用漏洞时,所执行的代码(工具执行代码)
payload():攻击载荷
sqlmap 攻击代码的模板
msf shellcode类似,功能是建立与目标的连接
验证XSS漏洞存在的poC如下
弹窗:<script>alert(/xss/)</script> //经典语句(既简单又效果明显)
弹出确认框:<script>confirm('xss')</script>
弹出输入框:<script>prompt('xss')</script> <