XSS漏洞概述XSS简介XSS被称为跨站脚本攻击(Cross-site scripting),由于和CSS(CascadingStyle Sheets)重名,所以改为XSS。
XSS主要基于javascript语言完成恶意的攻击行为,因为javascript可以非常灵活的操作html、css和浏览器。
XSS就是指通过利用网页开发时留下的漏洞(由于Web应用程序对用户的输入过滤不足),巧妙的将恶意代码注入到网页中,使用户浏览器加载并执行攻击者制造的恶意代码,以达到攻击的效果。这些恶意代码通常是JavaScript,但实际上也可以包括Java、VBScript、ActiveX、Flash 或者普通的HTML.
当用户访问被XSS注入的网页,XSS代码就会被提取出来。用户浏览器就会解析这段XSS代码,也就是说用户被攻击了。
用户最简单的动作就是使用浏览器上网,并且浏览器中有javascript 解释器,可以解析javascript,然而由于浏览器并不具有人格,不会判断代码是否恶意,只要代码符合语法规则,浏览器就会解析这段XSS代码。
简单来说,XSS就是通过攻击者精心构造的JS代码注入到网页中,并由浏览器解释运行这段JS代码,以达到恶意攻击浏览器的效果。XSS攻击的对象是用户浏览器,属于被动攻击。因此XSS攻击涉及到三个角色:
攻击者用户浏览器服务器从上述可知,XSS属于客户端攻击,受害者最终是用户,不要以为受害者是用户就认为跟自己的网站、服务器安全就没有关系。不要忘记,网站的管理员也是用户之一!因为管理员要比普通用户权限大的多,可以利用当其跳板实施攻击。
微博、留言板、聊天室等等收集用户输入的地方,都有遭受XSS的风险,只要对用户的输入没有进行严格的过滤,就有可能遭受XSS攻击.
实施XSS攻击需要具备的两个条件:
需要向Web页面注入精心构造的恶意代码对用户的输入没有做过滤,恶意代码能够被浏览器成功的执行代码语言:js复制
在测试页面中提交上述的代码,浏览器执行后就能看到弹框的操作,弹窗的目的是验证JS代码是否被执行。我们发现,提交的代码,被当做字符串输出在HTML页面中,浏览器会根据标签
代码语言:js复制
XSS
2.利用HTML标签的属性值(伪协议)
代码语言:txt复制可参考:https://www.w3school.com.cn/tags/html_ref_eventattributes.asp
4.利用CSS:
可以利用CSS(层叠样式脚本)触发XSS。但是这种方法比较古老,基本上不适合现在主要的浏览器,但是从学习的角度,我们需要了解这种类型的XSS,以下代码均在IE6下测试:
代码语言:txt复制行内样式
页内样式
外部样式
5.大小写:
代码语言:txt复制
click me6.双写关键字:
代码语言:txt复制
如果在HTML标签中,可以不用引号;如果在is中,可以用反引号代替单双引号
代码语言:txt复制
(代替括号)8.【/】代替空格:
代码语言:txt复制9.Tab与回车:
在一些位置添加Tab(水平制表符)和回车符来绕过关键字检测
代码语言:txt复制
click me!10.编码:
HTML实体编码
代码语言:txt复制a 97 a aURL编码
代码语言:txt复制%3Cscript%3Ealert(/xss/)%3C/script%3E本文部分图片摘自深信服安全服务认证工程师课程课件中,为方便个人学习使用,勿作商用!!!!文字内容为自己手打,并非直接搬运!如有侵权,请联系删除!!!
本文档所提供的信息仅用于教育目的及在获得明确授权的情况下进行渗透测试。任何未经授权使用本文档中技术信息的行为都是严格禁止的,并可能违反《中华人民共和国网络安全法》及相关法律法规。使用者应当合法合规地运用所学知识,不得用于非法入侵、破坏信息系统等恶意活动。我们强烈建议所有读者遵守当地法律与道德规范,在合法范围内探索信息技术。