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自我整理的更多相关文章

  1. sql注入总结(二)--2018自我整理

    0x00前言: 继上篇的内容,这章总结下二次注入,python脚本,bypass 上篇sql注入总结(一)--2018自我整理 0x01二次注入: 二次注入的原理是在把非法代码添加进数据库里面存储了, ...

  2. sql注入总结(一)--2018自我整理

    SQL注入总结 前言: 本文和之后的总结都是进行总结,详细实现过程细节可能不会写出来~ 所有sql语句均是mysql数据库的,其他数据库可能有些函数不同,但是方法大致相同 0x00 SQL注入原理: ...

  3. Preview of Spring-framework :Spring框架的预习和自我整理

    Spring简介 - 预习的自我整理 1. What's Spring? Spring是一个从实际开发中抽取出来的框架,完成了大量开发中的通用步骤,留给开发者仅仅是与特定应用相关的部分,从而提高了企业 ...

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

    PHP没有创建变量的命令,变量会在首次赋值时进行创建. 简单样例 1 <?php $word="My first choice"; $x=5; echo $x; echo & ...

  5. 2014 NOIP 赛前自我整理提醒。

    空谈WA,实干AC. 所以作为一个就要上战场的OIer ,实干当然是最重要,但刷题不在多,要点牢记是关键,虽然本渣没记住多少,但还是列几点值得注意的小点. 1.战场上容不得失误. 对于每日都要敲键盘的 ...

  6. maya 操作自我整理(二)

    随身携带自己的maya习惯我们在一台电脑上设置好自己的使用习惯,包括自己定义的快捷键.标记菜单.界面颜色.工具架等信息,当换到另一个工作环境时再进行设置十分不便利,将自己的习惯随身带走有利于我们更快捷 ...

  7. maya 操作自我整理(一)

    绘制曲线时的点的控制 当我们在使用CV Curve Tool或者EP Curve Tool创建NURBS曲线的过程中,按下"Insert"键,配合键盘上的上.下箭头方向键,可以自由 ...

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

    @interface AppDelegate () <UIApplicationDelegate> @end @implementation AppDelegate - (BOOL)app ...

  9. CTF SQL注入

    目录 一.宽字节注入 二.基于约束的注入 三.报错注入 四.时间盲注 五.bool盲注 六.order by的注入 六.INSERT.UPDATE.DELETE相关的注入 七.堆叠注入 八.常用绕过 ...

随机推荐

  1. JQuery基础概念--$符号的实质

    $符号的实质 //$其实就是一个函数,以后用$的时候,记得跟小括号 $(); //参数不同,功能就不同 //3种用法 //1. 参数是一个function, 入口函数 $(function () { ...

  2. Java获取资源路径——(八)

     获取文件资源有两种方式: 第一种是: 获取Java项目根目录开始制定文件夹下指定文件,不用类加载器(目录开始要加/) // 获取工程路径 System.out.println(System.getP ...

  3. fastdfs+nginx集群高可用搭建的一些坑!!记录一下

    首先我这里是三台节点,都搭tracker和storage,然后使用nginx做负载,只建一个group1,三个tracker! 搭建步骤比较麻烦,里面有很多坑需要注意,步骤就不啰嗦了,这里主要记录几个 ...

  4. TabCtrl使用

    TabCtrl使用 0x1 新建子页面 插入三个对话框,ID分别为:IDD_PAGE_FILE.IDD_PAGE_NETWORK.IDD_PAGE_PROCESS 工具箱-[属性]-[Style]设置 ...

  5. 【黑客免杀攻防】读书笔记7 - 软件逆向工程基础1(函数调用约定、Main函数查找)

    0x1 准备工作 1.1.准备工具 IDA:交互式反汇编工具 OllyDbg:用户层调试工具 Visual Studio:微软开发工具 1.2.基础知识 C++开发 汇编语言 0x2 查找真正的mai ...

  6. k64 datasheet学习笔记4---Memory Map

    1.前言 本文主要介绍K64地址空间的映射 2. System Memory Map 3. K64地址映射 4. Armv7m地址映射 4.1 Armv7M.System地址段(0XE0000000~ ...

  7. log4j2使用入门(二)——与不同日志框架的适配

    在之前博客中已经指出log4j2可以与不同的日志框架进行适配,这里举一些实际应用进行说明: 1.比如我们在项目中使用了log4j2作为日志器,使用了log4j-api2.6.2.jar和log4j-c ...

  8. windows使用python原生组件包获取系统日志信息

    #coding=utf8 import sys import traceback import win32con import win32evtlog import win32evtlogutil i ...

  9. 『转载』Matlab中fmincon函数获取乘子

    Matlab中fmincon函数获取乘子 一.输出结构 [x,fval,exitflag,output,lambda] = fmincon(......) 二.结构说明 lambda结构 说     ...

  10. centos6中创建软raid方法

    raid概述: 组建raid阵列命令: mdadm:模式化的工具 /etc/mdadm.conf     -A  Assemble 装配模式     -C  Create 创建模式     -C:专用 ...