天天看点

可别小看了XSS漏洞

可别小看了XSS漏洞

可别小看了XSS漏洞

可别小看了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>

可别小看了XSS漏洞

第五 识别用户安装的软件

​ 通过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防御