xss总结--2018自我整理
0x00前言
因为ctf中xss的题目偏少(因为需要机器人在后台点选手的连接2333),所有写的比较少
这里推荐个环境http://test.xss.tv/
0x01xss作用
常见的输出函数:print()、 print_r()、 echo、 printf()、 sprintf()、 die()、 var_dump()、 var_export()
xss是往页面中添加了一段代码,并且被浏览器执行了
反射型将恶意代码写入参数,或者自己服务器上搭个form表单传送,用来钓鱼
存储型就等着别人点这个网页就行了
0x02手段
xss主要出现的地方:文章发表,评论回复,留言,资料设置等
xss无非就是要对方的cookie,但是常常会有httponly导致cookie并不能传到xss平台,这是一种有效的防御方式
但是xss预防应该从本质出发,即对该页面用户输入不能被执行
xss触发方法
利用script标签执行js
<script>alert(1)</script>
字符串用" ' 包裹都行
采用on事件方法
on事件不用单引号或双引号也可以触发,但是必须闭合标签内的引号
<onclick=alert(1)> =>点击就会触发
<onmouseover=alert(1)> =>鼠标移动触发
能够使用on事件的标签
支持on click事件的标签有<a>, <address>, <area>, <b>, <bdo>, <big>, <blockquote>, <body>, <button>,
<caption>, <cite>, <code>, <dd>, <dfn>, <div>, <dl>, <dt>, <em>, <fieldset>,
<form>, <h1> to <h6>, <hr>, <i>, <img>, <input>, <kbd>, <label>
采用a标签来做到xss
<a href="javascript:alert(1)" >
0x03bypass方法
采用编码,把字符串可以进行编码
&# 后接十进制 => unicode编码 &#x 后接十六进制 => unicode编码
采用标签中的空隙规则
假设正则是
<\s*(script[^>]*)>([\s\S][^<]*)<\/\s*script>
可以采用
<script>alert(1)</script > ==> 最后有个p和>间有空格绕过
采用双写绕过空字符替换
如果被删除关键字,可以采用重写方法比如 <scriscriptpt>
采用大小写绕过不严格的waf
<script> => <Script>
采用参数覆盖,覆盖掉hidden参数
<input name="t_sort" value="" onmouseover=alert(1) type="text" type="hidden">
我们输入的内容为:" onmouseover=alert(1) type="text
有些标签的优先级高于",导致执行xss
<!--
<iframe>
<noframes>
<noscript>
<script>
<style>
<textarea>
<title>
<xmp>
具体原理参考链接:https://blog.csdn.net/Bg70PVnyBv1/article/details/79358628?tdsourcetag=s_pcqq_aiomsg
使用方法
<iframe>"</iframe><script>alert(1)</script>"</iframe> #这语句是会弹框的 假设输入的内容是
</iframe><script>alert(1)</script>
xss总结--2018自我整理的更多相关文章
- sql注入总结(二)--2018自我整理
0x00前言: 继上篇的内容,这章总结下二次注入,python脚本,bypass 上篇sql注入总结(一)--2018自我整理 0x01二次注入: 二次注入的原理是在把非法代码添加进数据库里面存储了, ...
- sql注入总结(一)--2018自我整理
SQL注入总结 前言: 本文和之后的总结都是进行总结,详细实现过程细节可能不会写出来~ 所有sql语句均是mysql数据库的,其他数据库可能有些函数不同,但是方法大致相同 0x00 SQL注入原理: ...
- Preview of Spring-framework :Spring框架的预习和自我整理
Spring简介 - 预习的自我整理 1. What's Spring? Spring是一个从实际开发中抽取出来的框架,完成了大量开发中的通用步骤,留给开发者仅仅是与特定应用相关的部分,从而提高了企业 ...
- php实战开发之自我整理(学习笔记)
PHP没有创建变量的命令,变量会在首次赋值时进行创建. 简单样例 1 <?php $word="My first choice"; $x=5; echo $x; echo & ...
- 2014 NOIP 赛前自我整理提醒。
空谈WA,实干AC. 所以作为一个就要上战场的OIer ,实干当然是最重要,但刷题不在多,要点牢记是关键,虽然本渣没记住多少,但还是列几点值得注意的小点. 1.战场上容不得失误. 对于每日都要敲键盘的 ...
- maya 操作自我整理(二)
随身携带自己的maya习惯我们在一台电脑上设置好自己的使用习惯,包括自己定义的快捷键.标记菜单.界面颜色.工具架等信息,当换到另一个工作环境时再进行设置十分不便利,将自己的习惯随身带走有利于我们更快捷 ...
- maya 操作自我整理(一)
绘制曲线时的点的控制 当我们在使用CV Curve Tool或者EP Curve Tool创建NURBS曲线的过程中,按下"Insert"键,配合键盘上的上.下箭头方向键,可以自由 ...
- iOS远程消息推送自我整理版
@interface AppDelegate () <UIApplicationDelegate> @end @implementation AppDelegate - (BOOL)app ...
- CTF SQL注入
目录 一.宽字节注入 二.基于约束的注入 三.报错注入 四.时间盲注 五.bool盲注 六.order by的注入 六.INSERT.UPDATE.DELETE相关的注入 七.堆叠注入 八.常用绕过 ...
随机推荐
- bootstrap-table前端修改数据
使用bootstrap-table显示数据,后台传回数据以后,可能需要对其做调整,如需要前端为数据添加单位 调整数据代码 $("#"+tableId).bootstrapTable ...
- WebRTC架构和协议栈-zz
为了便于理解,我们来看一个最基本的三角形WebRTC架构(图4).在这个架构中,移动电话用“浏览器M”表示,笔记本电脑用“浏览器L”表示,通过Web服务器将它们连接起来.要建立一个实时媒体通讯,两台设 ...
- npm 无法安装 ionic 解决办法
一般从 node.js官网下载安装完之后,npm也会同时安装完. 如果通过 $ npm install -g cordova ionic 去安装,往往会失败.这个是由于GFW,很多插件下载不下来,还好 ...
- nrm安装与使用
1.什么是nrm nrm是一个npm源管理工具,使用它可以快速切换npm源. 2.安装 使用如下命令安装: npm install -g nrm 安装完后可使用 nrm -V 显示版本,注意是大写V. ...
- ReLu、LeakyRelu、PReLu(转载)
转载链接:http://blog.csdn.net/cham_3/article/details/56049205
- 生产环境elasticsearch5.0.1和6.3.2集群的部署配置详解
线上环境elasticsearch5.0.1集群的配置部署 es集群的规划: 硬件: 7台8核.64G内存.2T ssd硬盘加1台8核16G的阿里云服务器 其中一台作为kibana+kafka连接查询 ...
- jmeter之使用代理录制脚本
从loadrunner到jmeter,录制压力测试脚本好像都只支持IE,近来才知道jmeter还有自带的录制脚本元件, 且支持IE.Chrome及Firefox等多种浏览器.这里就记录一下通过jmet ...
- 蝉知CMS本地迁移到服务器具体步骤
蝉知迁移步骤(2个方案,二选一即可) 方案一(整个chanzhi(eps)目录拷贝,假设新安装的蝉知文件夹名称为chanzhieps): 1.在新服务器上安装相同版本(版本号必须一致)的蝉知(安装文档 ...
- C#面向对象(封装)
以上就是面向对象的封装和初始化:
- LeetCode(58): 最后一个单词的长度
Easy! 题目描述: 给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指由字母组成,但不包含任何空格的字符串. ...