• 网络安全从入门到精通 (第六章-1) XSS的原理分析与解剖


    本文内容:

    • 什么是XSS?
    • XSS类型
    • XSS主要拼接是什么?
    • XSS判断是否存在方法
    • XSS能做什么
    • 如何打XSS
    • XSS主流防御方法
    • XSS常见场景
    • XSS绕过方法

    1,什么是XSS?

      XSS:HTML代码注入。

      HTML代码注入:

        用户的输入会被当做HTML等前端代码执行。

        并不止是HTML代码,是前端的所有语言,如:JS、HTML、CSS。

      两个关键条件:

        1.用户能够控制输入。

        2.原本程序要执行的代码,拼接了用户输入的数据。

    2,XSS主要拼接的是什么?

      SQL注入拼接的是操作数据库的SQL语句。

      SQL注入用户的输入会被当做SQL语句执行。

      XSS拼接的是网页HTML代码。

      XSS主要就是调用js。

    3,XSS判断是否存在方法:

      业内一般把弹窗函数作为一个存在XSS的认定。

      最经典的判断方法:<script>alert(1)</script>

      一般证明XSS存在,就是在正常页面传参,然后构建函数让它弹窗,就是存在XSS了。

      弹窗证明具有XSS,不弹窗也不能证明不具有XSS,只是一种判断方法。

      为什么通过弹窗判断XSS?

        因为XSS攻击如果需要达到真正的利用,需要调用JS。

    4,XSS能够做什么?
      盗取COOKIE(使用最频繁)[打哪偷那]

      获取内网IP

      获取浏览器保存的明文密码

      截取网页屏幕

      网页上键盘记录

    5,如何打XSS:

      首先:因为达到各种各样的效果需要比较 复杂的代码,所以XSS平台应运而生。

      XSS平台:

        xsspt.com(开放注册)

        XSS9.com(填写邀请码)

        XSS平台大大方便了XSS攻击,只需要引入一个平台外部链接就可以实现功能了。

      打XSS:

        我们写入的代码,要当做JS执行

        在进行sql注入时,我们使用了0x标示,告诉数据库这个是十六进制。

        在进行XSS注入时,我们也需要使用标示,告诉浏览器这个是JS代码,而不是HTML之类的。

        触发JS方法有三种:
          1.标签:<script>alert(1)</script>

          2.伪协议:<a href=javascript:alert(1)>test</a>

          3.事件型:

            事件也是可以执行JS的。

            在HTML里面有一些标签它拥有事件

            事件:当满足了条件就可以触发。

          例如:

            onerror=alert(1)在加载文档或图像时,发生错误。<img src='a' onerror=alert(1)/>

            常用的有:onerror(失败加载执行)、onload(成功加载执行)、oninput(有输入框、输入的时候触发),onfocus获取焦点

           注意:

            第一种方法用的最多,被拦截的可能性最大。

            第二种方法触发的几率比较小,比较鸡肋,特殊的时候才能使用。

            第三种方法常用的

    6,XSS防御方法:

      1.过滤尖括号,单引号、双引号。

      2.实体化编码。

    7,XSS类型:

      反射型:XSS:提交的数据成功实现XSS,但是仅仅对本次访问有有效,非持久性攻击。

      存储型:XSS:提交的数据成功实现XSS,存入数据库每次访问有效,持久性攻击。

      DOM型:XSS:原本不存在XSS,经过JS处理之后产生了XSS。

        反射型XSS经过js处理变成放射Dom型Xss。

        存储型XSS经过js处理变成存储Dom型Xss。

    8,XSS常见场景:

      重灾区:评论区、留言区、个人信息、订单信息等。

      针对型:站内信、网页即时通讯、私信、意见反馈

      存在风险:搜索框、当前目录、图片属性等。

    9,XSS绕过方法:

      改变大小写:<ScRipt>ALeRt(“XSS”);</sCRipT>

      关闭标签:“><script>alert(“Hi”);</script>

      使用hex编码绕过。

      绕过magic_quotes_gpc。

      对标签属性值进行转码。

      事件型。

  • 相关阅读:
    BZOJ BLO 1123 (割点)【双连通】
    P4291 [HAOI2008]排名系统
    P3165 [CQOI2014]排序机械臂
    P3224 [HNOI2012]永无乡
    P1169 [ZJOI2007]棋盘制作
    P2303 [SDOi2012]Longge的问题
    P2216 [HAOI2007]理想的正方形
    P2473 [SCOI2008]奖励关
    P2617 Dynamic Rankings
    P2518 [HAOI2010]计数
  • 原文地址:https://www.cnblogs.com/xz25/p/12714694.html
Copyright © 2020-2023  润新知