那些年我们一起学xss


目录 1. 什么都没过滤的入门情况...............................................................................................................................................................................................1 2. 输出在<script></script>之间的情况............................................................................................................................................................3 3. 输出在 HTML 属性里的情况......................................................................................................................................................................................... 5 4. 宽字节复仇记 [QQ 邮箱基本通用].............................................................................................................................................................................10 5. 反斜线复仇记.................................................................................................................................................................................................................13 6. 换行符复仇记.................................................................................................................................................................................................................17 7. 宽字节、反斜线与换行符一起复仇记........................................................................................................................................................................ 19 8. Dom Xss 入门 [显式输出].............................................................................................................................................................................................22 9. Dom Xss 入门 [隐式输出].............................................................................................................................................................................................26 10. Dom Xss 进阶 [邂逅 eval]........................................................................................................................................................................................... 34 11. Dom Xss 进阶 [善变 iframe]........................................................................................................................................................................................38 12. Dom Xss 进阶 [路径 con]............................................................................................................................................................................................42 13. Dom Xss 实例 [Discuz X2.5].......................................................................................................................................................................................47 14. Flash Xss 入门 [navigateToURL]................................................................................................................................................................................ 51 15. Flash Xss 进阶 [ExternalInterface.call 第一个参数].................................................................................................................................................. 56 16. Flash Xss 进阶 [ExternalInterface.call 第二个参数].................................................................................................................................................. 61 17. XSS 过滤器绕过 [通用绕过]...................................................................................................................................................................................... 67 18. XSS 过滤器绕过 [猥琐绕过]...................................................................................................................................................................................... 69 19. 存储型 XSS 入门 [什么都没过滤的情况]................................................................................................................................................................ 72 20. 存储型 XSS 入门 [套现绕过富文本]........................................................................................................................................................................ 76 21. 存储型 XSS 进阶 [猜测规则,利用 Flash addCallback 构造 XSS]........................................................................................................................79 1. 什么都没过滤的入门情况 只是些反射型 XSS,单单发出来没有什么意义。 只是些反射型 XSS,腾讯怎么修都修不完。 只是些反射型 XSS,我想让它变得更有价值。 只是些反射型 XSS,我拿他们做成了教程。 1. XSS 的存在,一定是伴随着输入,与输出 2 个概念的。 2. 要想过滤掉 XSS,你可以在输入层面过滤,也可以在输出层面过滤。 3. 如果输入和输出都没过滤。 那么漏洞将是显而易见的。 4. 作为第一个最基础的例子, 我们拿出的是一个什么都没过滤(其实还是有些转义的,主要没过滤< , >)的例子。 这种例子出现在 腾讯这种大网站的概率不是很高。 但是还是让我找到了一个。 5. http://app.data.qq.com/?umod=commentsoutlet&act=count&siteid=3&libid=9&dataid=1480&score=1&func=haoping&_=13534752618 86 6. 对于上面这个例子。我们可以看到什么是输入,什么是输出。 7. 经过测试,我们发现,score 这个【输入】参数,没有进行任何过滤, 即,输入是什么,输出就是什么? 通俗点就是“吃什么,拉什么”。。。 如下图: 网页中看到的效果如下: 8. 既然可以直接输入 < > HTML 标签,接下来的利用也就相对简单了。 http://app.data.qq.com/?umod=commentsoutlet&act=count&siteid=3&libid=9&dataid=1480&score=&func=haoping&_=1353475261886 效果如下: 修复方案: 这种 XSS 属于最基本的一类 XSS,也最好防御。。 它的模型是: [输出] 或 [输出] a. 通常,我们只需要在输出前,将 < , > 过滤掉即可。 b. 这类 XSS 在小型网站中比较常见,在大型网站中少见。 c. 这类 XSS 通常都被浏览器的 XSS 过滤器秒杀了,所以一般来说,威力较小。 d. 对于普通用户来说,请使用 IE8 及以上版本(并开启 XSS 过滤器功能,默认开启),或 chrome 浏览器,将可以防御大部分此种类型 的 XSS 攻击 2. 输出在<script></script>之间的情况 接着上面一个教程,我们继续。这个例子属于第一例的特殊情况,当然也有特殊解法。也属于非常常见的一种情况。 1. 我们找到这么一个点,也是输入和输出都未过滤的一个点。相比教程第一例,其特殊之处在于,是输出在了 之间。 http://activity.soso.com/common/setParentsInfo.php?callback=aaaaaaaaa 如下图:callback 参数未做过滤。 在【查看源代码】下,我们可以看到。 缺陷网页源代码: 原理入下图: 构造 callback 参数后的源代码 (_ret);} 2.3 如果过滤了 <, >,那么就无法使用上面的办法了。我们接着看 3 3. script 代码里的构造。 友情提示:这里可能需要一点点 javascript 的知识才行哦~~ 我们可以如下构造: http://activity.soso.com/common/setParentsInfo.php?callback=eval('alert(1)');void 可以看到,源代码是下面的样子。 也就是说,我们插入的内容,使得这一段 javascript 依然【语法正确】,能够【正确执行】,并且能够执行【我们所插入的 JS 代码】, 这样我们的目的就达到了。 构造后的源代码如下: 4. 这种输出在 JS 代码里的情况十分常见,但是呢?不幸的是,像这样没过滤的情况,却不是很常见。例如: var a="[输出]";// 通常程序员会把 " 过滤掉, 这样的话,一般来说,我们就很难构造。 但是,这并不是说,就一定是不能利用,后面我们会拿腾讯一些【比较有意思】的例子,来进一步说到 这个【输出在 js 里】的情况的~ 修复方案: 这类 XSS 的模型通常是: