XSS跨站脚本
- XSS简介
- XSS验证
- XSS危害
XSS简介
XSS被称为跨站脚本攻击(Cross-site scripting),由于和CSS(Cascading Style 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需要具备两个条件:1.向Web页面注入恶意代码2.对页面的输入没有做过滤,恶意代码能够被浏览器成功执行。
<?php
$XSS = $_GET['XSS'];
echo "<h1>".$XSS."</h1>";
?>
XSS验证
< script> alert(/xss/)< /script>
< script>confirm(‘xss’)< /script>
< script> prompt(" xss")< /script>
script:
多用于提示作用。
confirm:
可以用于收集选择作用。
prompt:
这里不仅可以收集信息, 还可以表示一些自己的观念。
在测试页面中提交上述的代码,浏览器执行后就能看到弹框的操作,弹窗的目的是验证JS代码是否被执行。我们发现,提交的代码< script>alert(‘xss’)< /script>,被当做字符串输出在HTML页面中,浏览器会根据< script>标签识别为JS代码,并会执行它,执行弹窗操作。也就是我们可以执行JS代码,验证了XSS漏洞的存在性。
XSS危害
1.盗取各种用户账号
2.窃取用户Cookie资料,冒充用户身份进入网站劫持用户会话,执行任意操作
3.刷流量,执行弹窗广告
4.传播蠕虫病毒
5.攻击者能在一定限度内记录用户的键盘输入
6.……