我的朋友赵一天今晚给我发了一个站,跟我说他xss绕不过去,让我试试。我正好无事,就帮她看看咯。

    通过赵一天发我的站点,说实话,我自己学到了很多东西,感谢大佬的教诲。今天分享出来:

    站点:xxx.com/sou

      

当我尝试:

  xxx.com/souaaaa

    

我们查看源码或者f12 Ctrl+f搜索aaaa:

颇为震惊,搜索结果有400多条。。

    

首先是我们发现第一处利用是<input>标签,下面的都是href=""中利用

    继续往下看看aaaa还在哪些标签里面:

下面大部分都是a标签。。

    

继续往下看:

我们发现aaaa在我们的js中。

ok我们整理好了,我们输入的aaaa在input,a和js中输出了。

  现在我们以input元素为例子尝试去xss攻击:

    首先我先尝试闭合标签:

然后查看源码:

真刺激,我们输入的>被转义成了全角的>

    

无法利用了

换个姿势我们还能" onxx=

我们试试:

    

查看源码:

没有对onxxx进行过滤,庆幸的是咱们可以onxxx

  这里就用onmouseover了。那么我们直接 "%20onmouseover=alert(1)"

我们发现没有弹窗。。看看怎么回事吧。。

""(1)""

观察发现,过滤了alert这个弹窗事件,括号变成了中午的括号:

我这里采取的措施:把alert事件改成

过滤了alert

我们尝试其他弹窗方法,confirm和prompt,因为过滤了括号,所以使用``(反引号进行利用):

  尝试:

查看源码:

    

prompt没被过滤掉,反引号被过滤了。。头大了 。

然后我尝试对其进行各种编码再次查看源码:

变成这个样子,现在我们来总结下我们的过滤问题:

1.全局的过滤了(),当攻击者输入()将会转义成中文的括号

2.当攻击者对()进行编码处理直接不显示信息被过滤

3.当攻击者输入>会被转义成全角的>

首先从这里看来我们无法明面上进行弹窗xss了。。

  那么我们使用另一种思路

从onxxx=下手

onxxx=内容=<script>内容</script>

    我首先选择document节点,因为过滤了()所以我不能document.getElementById(id)肯定会被过滤。。。

   那么我现在想加载document还想要不被过滤?怎么做? 选择一个不使用()的不就可以了吗。

    我尝试:看看是否可以

    

除了这种方法我们还有其他办法执行吗?

答案是肯定有:" onmouseover="var ccc=11111;document.body.innerHTML=ccc//

成功闭合

对于xss我们的感觉就是必须得弹窗,这里没弹窗,我们的目标,不弹窗誓不罢休:

我们知道location.hash这个属性

今天我们要讲解一个新知识点,docuemt.URL

document.URL属性包含页面完整的URL比如:{协议}://{用户名}:{密码}@{主机名}:{端口号}/{路径}/{文件}?{参数}

他的功能和location.hash类似,我们可以#xss payload利用:

  我们如下:" onmouseover=document.body.innerHTML=document.URL "#<img src=1 onerror=alert(1)>

在最新版本IE下:

为什么我不用var xx=xss payload;document.body.innerHTML=xx是因为<>被转义了。。

现在这是一种弹窗方式,还有一种就是JS下的。

JS下的弹窗,我首选location.href:

简直了到处过滤

没办法了还是使用我们之前的姿势吧:"; document.body.innerHTML=document.URL// #<img src=1 onerror=alert(123)>

JS下利用

记录学习下,蛮有意思的。。。如果有其他思路欢迎留言。

    

      

记录一次有意思的XSS过滤绕过的更多相关文章

  1. 记录一次有意思的XSS过滤绕过2

    前几天在漏洞挖掘中遇到个xss,感觉绕过过程蛮有意思的,写篇文章记录下. 接下里是我对这个xss详细的分析和绕过 存在问题站点http://******/index/appInfo?appId=784 ...

  2. WAF指纹识别和XSS过滤器绕过技巧

    [译文] -- “Modern Web Application Firewalls Fingerprinting and Bypassing XSS Filters” 0x1 前言 之前在乌云drop ...

  3. Bypass xss过滤的测试方法

    0x00 背景 本文来自于<Modern Web Application Firewalls Fingerprinting and Bypassing XSS Filters>其中的byp ...

  4. XSS插入绕过一些方式总结

    详见:http://blog.csdn.net/keepxp/article/details/52054388 1 常规插入及其绕过 1.1 Script 标签 绕过进行一次移除操作: <scr ...

  5. (转)Bypass xss过滤的测试方法

    from wooyun//五道口杀气 · 2014/01/02 19:16 0x00 背景 本文来自于<Modern Web Application Firewalls Fingerprinti ...

  6. xss原理绕过防御个人总结

    xss原理 xss产生的原因是将恶意的html脚本代码插入web页面,底层原理和sql注入一样,都是因为js和php等都是解释性语言,会将输入的当做命令执行,所以可以注入恶意代码执行我们想要的内容 x ...

  7. 风炫安全WEB安全学习第二十六节课 XSS常见绕过防御技巧

    风炫安全WEB安全学习第二十六节课 XSS常见绕过防御技巧 XSS绕过-过滤-编码 核心思想 后台过滤了特殊字符,比如说

  8. dedecms功能性函数封装(XSS过滤、编码、浏览器XSS hack、字符操作函数)

    dedecms虽然有诸多漏洞,但不可否认确实是一个很不错的内容管理系统(cms),其他也不乏很多功能实用性的函数,以下就部分列举,持续更新,不作过多说明.使用时需部分修改,你懂的 1.XSS过滤. f ...

  9. Asp.net Mvc中利用ValidationAttribute实现xss过滤

    在网站开发中,需要注意的一个问题就是防范XSS攻击,Asp.net mvc中已经自动为我们提供了这个功能.用户提交数据时时,在生成Action参数的过程中asp.net会对用户提交的数据进行验证,一旦 ...

随机推荐

  1. (办公)SpringBoot和swagger2的整合.

    因为开发项目的接口需要给app,小程序测试,所以用swagger. 1.pom.xml: <dependency><!--添加Swagger依赖 --> <groupId ...

  2. JMeter接口测试 (二) ~ 参数化

    对应qq群号:616961231 上篇内容介绍了jmeter的基本使用, 略微提了如何做参数化,  本篇对参数化做进一步深入讲解, 参数化可以将一个变量使用不同数据, 比如有多个用户下单购买商品,调用 ...

  3. SQLServer之修改标量值函数

    修改标量值函数注意事项 更改先前通过执行 CREATE FUNCTION 语句创建的现有 Transact-SQL 或 CLR 函数,但不更改权限,也不影响任何相关的函数.存储过程或触发器. 不能用 ...

  4. Swift NSAttributedString的使用

    NSMutableAttributedString let testAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue, ...

  5. LeetCode算法题-Repeated Substring Pattern(Java实现)

    这是悦乐书的第236次更新,第249篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第103题(顺位题号是459).给定非空字符串检查是否可以通过获取它的子字符串并将子字符 ...

  6. 新数据革命: 开源C#图形化爬虫引擎Hawk5发布

    https://ferventdesert.github.io/Hawk/ Hawk是一款由沙漠之鹰历时五年个人业余时间开发的,开源图形化爬虫和数据清洗工具,GitHub Star超过2k+,前几代版 ...

  7. python爬虫【实战篇】模拟登录人人网

    requests 提供了一个叫做session类,来实现客户端和服务端的会话保持 使用方法 1.实例化一个session对象 2.让session发送get或者post请求 session = req ...

  8. An Overview of End-to-End Exactly-Once Processing in Apache Flink (with Apache Kafka, too!)

    01 Mar 2018 Piotr Nowojski (@PiotrNowojski) & Mike Winters (@wints) This post is an adaptation o ...

  9. Java之匿名内部类详解

    前言 本文讲解Java中最后一种内部类,叫做匿名内部类.顾名思义,所谓的匿名内部类就是一个没有显式的名字的内部类,在实际开发中,此种内部类用的是非常多的. 匿名内部类 本质:匿名内部类会隐式的继承一个 ...

  10. k-近邻(KNN)算法改进约会网站的配对效果[Python]

    使用Python实现k-近邻算法的一般流程为: 1.收集数据:提供文本文件 2.准备数据:使用Python解析文本文件,预处理 3.分析数据:可视化处理 4.训练算法:此步骤不适用与k——近邻算法 5 ...