挖洞经验 | 看我如何挖掘成人网站YouPorn的XSS并成功利用

由于我个人时间的限制,因此我很少或者说是几乎不参加赏金计划任务。虽然我早早的就注册了HackerOne,但你们可以到我的主页并没有任何的记录。在这里我不得不提及我的同事,他与我截然相反,可以说他把大部分时间都花在了研究赏金计划上。就在上个月的一个傍晚,当我们连接到我们的工作Jabber server时,他告诉我成人网站YouPorn也已在HackerOne上,启动了他们的bug奖励计划:

他:今天youporn加入了bug赏金计划 我:在hacker one? 他:是的 我:没时间,我正在迁移我的DNS服务器

当我正在阅读关于绑定的文档时,他回复了我:

他: oh shit,不敢相信,搜索栏中存在可利用的XSS

事情开始变得有趣起来,使我不得不停下手中的工作。我很惊讶,这个问题之前竟然没有人能发现它。搜做表单中的XSS是最基本的情况之一,我和我的朋友都经常逛YouPorn,但从来没有发现过这个问题。

时间对我们来说是非常宝贵的,我们必须要在其他人之前利用并报告该漏洞。

从缺少过滤到开放重定向

我启动了浏览器和Burp,并在搜索表单上发送了一个请求。我搜索了foobar”。正如你在下面的截图中看到的那样,搜索词是在meta标签中,以没有任何过滤(大写字母除外)的形式输出的:

但当我们尝试写入关闭标签,并添加了Javascript payload,我们发现我们的payload并未被执行:

虽然如此,但我们仍然决定利用meta HTML标签。这是一个非常强大的标签,因为它包含有http-equiv指令。该指令相当于http的文件头作用。

http-equiv指令将值设为refresh,可用于将用户重定向到其他页面。如果发生网络钓鱼攻击,这种开放重定向漏洞是非常有用的:

您向有人发送链接到http://youporn.com的链接, 您的有效载荷将它们重定向到您控制的网站,模仿YouPorn的CSS; 你问他们的凭据,他们的信用卡号码等。

  1. 向目标发送带有你的有效载荷的http://youporn.com链接;
  2. 有效载荷将目标用户重定向到你控制的高仿YouPorn钓鱼网站;
  3. 向目标用户询问凭据,信用卡号等请求。

我们输入了以下payload来进行漏洞测试:

正如你所看到的,这里有一个小问题:http-equiv中的破折号,并未被插入到源代码中。我决定使用双重编码尝试绕过。首先我对破折号做了HTML编码,然后又对其进行了URL编码。

破折号, - ,HTML编码后为&#45 ,URL编码后为%26%2345%3b:

bingo!现在我们已经成功获取到了一个可以重定向用户URL的有效载荷。

标记为重复

与此同时,我那发现并第一时间通知YouPorn的同时,收到了来自YouPorn的以下答复:

实际上你报告的这个漏洞,在你之前已被人提交过。但那位提交者并未能提供有效的利用证明,因此我当前只能将其标记为重复。但机会的大门会向你们敞开,如果你们能提供有效载荷,我们将很乐意接收并为你们提供相应的奖励! 感谢你们!

从开放重定向到反射型XSS

现在我们手中已经有了一个,可以重定向用户URL的有效载荷。

我的脑海中突然灵光一现,那么我们是否可以使用相同的技巧将破折号替换为>和<呢?

事实上这是可行的,使用“HTML-encode-then-URL-encode”技巧,我们可以插入任意的Javascript:

成功弹框:

之后我们继续做了一些测试,我们发现了YouPorn HTML渲染的一些奇怪的地方:无论我们在有效载荷上做了多少次HTML编码递归,服务器端仍然会完全的解码。这意味着:

  • < 会被解码为 <
  • &lt; 也会被解码为 <
  • &amp;lt; 还是会被解码为 <
  • 等。

结语

最后,我们将有效载荷发送给了YouPorn,并最终获取到了YouPorn发放的250美金的奖励!

总之这个过程非常的有趣,哦!我突然想起来我手头的工作,好了回归原点继续迁移我的DNS服务器!

*参考来源:allyourbase,FB小编 secist 编译,转载请注明来自FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-05-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏皮振伟的专栏

[linux][network]net bridge技术分析

前言: 对于作者这种没有在通信设备方面工作经验的人来说,理解网桥还是挺困难的。 二层之上的数据处理,协议分层,都是相对容易一些(尽管TCP协议复杂的一塌糊涂),...

67114
来自专栏编程一生

架构必会的性能指标及分析策略

1222
来自专栏美团技术团队

服务容错模式

背景 随着美团点评服务框架和服务治理体系的逐步成熟,服务化已成为公司内部系统设计的趋势。本着大系统小做、职责单一的原则,我们度假技术团队对业务系统进行了不少服务...

4394
来自专栏张高兴的博客

网络唤醒(WOL)全解指南:原理篇

网络唤醒(Wake-on-LAN,WOL)是一种计算机局域网唤醒技术,使局域网内处于关机或休眠状态的计算机,将状态转换成引导(Boot Loader)或运行状态...

3151
来自专栏生信技能树

计算资源及编程-仅针对生信人员

理论上在个人Windows电脑上面做生物信息学数据分析是不实际的,因为太多的生物信息学相关软件的开发者对windows并不熟练,没办法提供完善的基于window...

1603
来自专栏达摩兵的技术空间

bug常识入门

1372
来自专栏BeJavaGod

分布式系统的那些事儿(五) - 容错与故障

我们都经历过巨石应用,单一应用某个功能诱发的故障导致整个站点挂掉,任何人都无法访问,只能一一排错再部署上线,这样造成的影响就是用户的流失。而分布式应用就没有这样...

3795
来自专栏逍遥剑客的游戏开发

UE4中集成Wiimote

28911
来自专栏SDNLAB

SDN中的Segment Routing

作者简介:晏志文,原就职于中兴通讯,目前供职于安徽皖通邮电股份有限公司。数通测试专家,本领域从业深耕多年,熟悉传统网络技术及行业解决方案,密切关注新兴网络,IC...

2504
来自专栏chafezhou

小说python操作PLC

PLC(Programmable Logic Controller)可编程逻辑控制器,可以理解为一个微型计算机,广泛应用于工业控制中,如楼宇智控、精密机床、汽车...

2K2

扫码关注云+社区

领取腾讯云代金券