XSS漏洞详解

目录

壹、XSS概述

贰、XSS类型

叁、XSS代码构造

肆、XSS变形绕过

伍、Shellcode的调用

陆、XSS防御与会话劫持

1.XSS防御

2.劫持

柒、XSS实战通关游戏


壹、XSS概述

        1、XSS原理:

        XSS被称为跨站脚本,是一种发生在前端浏览器端的漏洞。形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符(JS代码等)输出在前端时被浏览器当作代码解析执行从而产生危害。

XSS漏洞详解_第1张图片

         微博、留言板、聊天室等收集用户输入的地方,都有可能被注入XSS代码,只要没对用户的输入进行过滤,就会被攻击。

        2、XSS漏洞危害:

        @1   盗取用户账号;

        @2   盗取用户Cookie,冒充用户身份进入网站;

        @3   劫持用户会话,执行任意操作;

        @4    刷流量,执行弹窗广告等待;

        3、XSS漏洞存在常用PoC:




贰、XSS类型

        1.反射型XSS: 非持久性,参数型的跨站脚本。反射型的XSS的代码在Web应用的参数中。

        2.存储型XSS: 持久性跨站脚本,将代码写入数据库或文件等可以永久保存数据的介质中。

        3.DOM型XSS:修改浏览器DOM树来执行恶意代码。

叁、XSS代码构造

        1.利用`<>`构造HTML标签或JS代码

        2.利用javascript:伪协议的方式构造XSS

touch me!

         3.事件驱动

       //键盘点击触发
         //键盘断开触发
       //鼠标点击触发
 //鼠标悬停触发
  //文档载入失败触发

        4.其他触发方式


肆、XSS变形绕过

        1.大小写转换:HTML对大小写不敏感;注意:alert函数属于JS,而JS对大小写敏感


touch me!

        2.引号的引用:HTML对引号不敏感



        3.左斜线[/]代替空格

        4.添加制表符,回车符

touch me!

        5.对标签属性值进行转码

常用字符编码

字母    十进制编码  十六进制编码

a          a         a

e          e       e

touch me!

下面字符可可插入任意位置

Tab:    换行:   回车:

下面字符可插入头部

SOH:  STX:

touch me!

        6.拆分跨站



        7.双写绕过:针对一次过滤 eg:ipt>

伍、Shellcode的调用

        Shellcode就是利用漏洞所执行的代码。完整的XSS攻击,会将Shellcode存放在一定的地方,然后触发漏洞,调用Shellcode.

远程调用JS:将JS代码放在js文件中,然后通过http协议远程加载该脚本。如 xss.js文件内容为Shellcode

......后面补>_<.......

陆、XSS防御与会话劫持

1.XSS防御

        使用XSS Filter:

                输入过滤:对输入字符、长度、范围,格式要求进行过滤,不允许可能导致XSS攻击的字符输入;
                输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

                黑白名单:黑名单-非允许数据  白名单-允许的数据

2.beef(kali自带)浏览器劫持

        beef所在目录:/usr/share/beef-xss  配置文件:/usr/share/beef-xss/config.yaml

        第一次使用要修改默认用户、密码

        web界面管理控制台:http://ip:3000/ui/panel  Shellcode:http://ip:3000/hook.js

        测试页面:http://ip:3000/demos/butcher/index.html

3.美少妇(msf)利用浏览器漏洞getshell

        可以配合beef工具一起使用,由于msf工具我还搞明白,以后再补上>_

柒、XSS实战通关游戏

XSS通关小游戏链接:xss平台 - 游戏闯关练习

游戏一:测试过滤代码

[02]:">

[03]:' οnmοuseοver='alert(/xss/)

[04]:" οnmοuseοver="alert(/xss/)

[05]:测试代码

你可能感兴趣的:(xss,安全,web安全)