Whose moon cake

Ali

2016年中秋,阿里在内部搞了一个中秋抢月饼的活动,不过阿里安全的四位童鞋却狂拽酷炫地秀了一把技术,不动声色地多刷了124盒月饼。然而,这件事情却迅速发酵。根据内部决定,为了维护企业文化,阿里巴巴居然决定“挥泪斩马谡”,把这五位童鞋给开除了。但是这件事也让阿里的公关走到了风口浪尖: https://www.zhihu.com/question/50600301?rf=50612778

最近公司也做了旧电脑的福利,在公司内部进行抢购,作为一个搞技术的,怎么可能像傻逼一样抱着手机在那里点呢,肯定是搞些自动化的东西来用,只是不知道公司会不会开除我?

APP

公司内部行政部和系统部开发了一个应用,可以在上面做了个抢购的功能来抢这些旧电脑,听说这次有苹果什么的,价格也非常低,好多同学都擦拳磨掌了。

看到上面的倒计时,立刻把手机的时间调整了一下,仍然不行,恩,看来没这么蠢。

接下来就只能抓包分析了。

MitM

由于APP用的API是HTTPS的,需要解密 HTTPS 流量(即 Man-in-the-middle attack 简称 MitM)。


中间人攻击(Man-in-the-Middle Attack, MITM)是一种由来已久的网络入侵手段,并且在今天仍然有着广泛的发展空间,如SMB会话劫持、DNS欺骗等攻击都是典型的MITM攻击。简而言之,所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。
随着计算机通信网技术的不断发展,MITM攻击也越来越多样化。最初,攻击者只要将网卡设为混杂模式,伪装成代理服务器监听特定的流量就可以实现攻击,这是因为很多通信协议都是以明文来进行传输的,如HTTP、FTP、Telnet等。后来,随着交换机代替集线器,简单的嗅探攻击已经不能成功,必须先进行ARP欺骗才行。如今,越来越多的服务商(网上银行,邮箱登陆)开始采用加密通信,SSL(Secure Sockets Layer 安全套接层)是一种广泛使用的技术,HTTPS、FTPS等都是建立在其基础上的。 from baidu

在iOS中安装一个自己签发的CA证书,然后强行信任,用这个证书来劫持流量,分析数据。最终发现了很多问题:

  • 所有的请求都是GET方式
  • 时间是从服务器端获取的时间
  • 没有任何认证机制
  • 数据格式不够标准

仔细分析了下,下面这个url引起了我的关注:

https://fc.xxx.com/app/order/time?uid=xxxxxx

果然返回结果有一个当前时间戳,恩,想办法把这个请求劫持一下。


{"currenttime":"2018-03-25 00:54:14","starttime":"2018-03-27 14:00:00","endtime":"2018-03-28 17:00:00","success":true}

正好iOS上有个软件可以根据正则302rewrite某些请求,于是我按下面这样配置:


^https://fc\.xxx\.com/app/order/time

https://baokun\.li/time

这样就将这个时间请求劫持到我的服务器上来了。打卡APP看一下:

看来后面没有验证,有点太简单了。测试了下,可以正常下单的。

Fair

如果跳过时间可以直接下单,有点太不公平了,至少应该在一起跑线上,向阿里一样,哈哈。可以考虑写个小工具来自动化,而不是劫持时间去抢。

好了 ,不写了,去准备简历了。