可别小看了XSS漏洞
对于初了解xss漏洞的人来说,XSS漏洞的危害就是获取受害者的cookie,来进行 ‘cookie劫持’。
今天就总结一下XSS漏洞的危害性,望安全人员不要轻视,开发人员不要忽视
XSS漏洞简介
XSS攻击通常指黑客通过“HTML注入”篡改网页,插入恶意脚本,从而使用户浏览网页时控制用户浏览器的一种攻击。
例如:
<p>a</p>
如果我能控制a,将a改为</p><script>alert("1")</script><p>
,这个地方的代码就会变成这样:
<p></p>
<script>alert("1")</script>
<p></p>
就会执行script脚本,这么想我们是不是能篡改网页html文件,来让他执行我们的语句?
第一 cookie劫持:
如果网站存在XSS漏洞,可以通过XSS漏洞来获取用户的cookie
危害:利用用户的cookie来进行登录用户后台
payload:<script>alert(document.cookie)</script>
第二 构造GET或POST请求:
黑客可以通过XSS漏洞,来使得用户执行GET或POST请求
危害:可以控制用户删除数据或者发送邮件
例如GET payload:
<script>window.location.href='http://http://www.xxx.com/index.php?type=delete&id=1';</script>
POST请求 需要线创建一个表单,然后让表单自动提交信息。
第三 钓鱼
我们从一开始的XSS漏洞简介可知道,XSS漏洞可以让我们对网页进行篡改,如果黑客在登录框的地方把原来的登录框隐藏一下,自己伪造一个登录框,用户在登录框上输入账号密码就会传送到黑客的服务器上
危害:获取用户账号密码
第四 识别用户浏览器
通过script语句能获得用户的浏览器信息
危害:获取浏览器信息,利用浏览器漏洞进行攻击
payload:<script>alert(navigator.userAgent)</script>
第五 识别用户安装的软件
通过script语句能够识别用户安装的软件
危害:获取用户软件信息,利用软件漏洞进行攻击
如下代码:
try{
var Obj=new ActiveXObject('XunLeiBHO.ThunderIEhelper');
}
catch(e){
//异常
}
第六 获得用户真实ip地址
借助第三方软件,比如客户端安装了Java(JRE)环境,那么可以通过调用JavaApplet接口获取客户端本地IP
第七 判断用户是否访问某个网站
style的visited属性,访问过的链接,颜色会变化.
第八 蠕虫
用户之间发生交互行为的页面,如果存在存储型XSS,则容易发起XSS Worm攻击.
如:2003年的冲击波蠕虫,利用的是Windows的RPC远程溢出漏洞
还有百度空间蠕虫,可自行百度搜一下
XSS绕过方式
- JS编码
- HTML编码
- URL编码
- 长度绕过
- 标签绕过(标签闭合,标签优先性)
- window.name利用
- Flash XSS
- 利用Javascript开发框架漏洞
- 利用浏览器差异
- 关键字、函数
XSS防护方法
- 过滤输入的数据,非法字符
- 对数据进行编码转换
- 添加HttpOnly
- 输入合法性检查
- 白名单过滤标签
- DOM XSS防御