本文出自 “技术成就梦想” 博客,请务必保留此出处http://flyfishes.blog.51cto.com/3527694/819693
一个码农的自留地
本文出自 “技术成就梦想” 博客,请务必保留此出处http://flyfishes.blog.51cto.com/3527694/819693
一盏好看的台灯,会给房间带来不错的视觉效果,比如这款“3D”立体感的台灯——BULBING。
BULBING是一款非常挑战大脑和眼睛的LED错觉台灯,它看似是个立体图案,实际上是一块厚度仅有5毫米的有机玻璃,每一块都通过激光雕刻出三维线性图案,点亮后会出现3D立体视觉效果。
它有各种图案,如气球、灯泡、骷髅头等形状,灯的底座是桦木胶合板,想要啥图案就换上相应的玻璃即可。特有的节能技术使灯泡寿命也变得很长,并且不会过热,换灯泡很容易。
目前,BULBING已在众筹平台Kickstarter上筹得超过十倍的资金,一个灯座加一个灯的价格约为30英镑(约318元),图案不同价格也不同。
首先用手机开闪光灯,定位芯片的位置,在用笔画出芯片位置。卡内构造是一个比较大的线圈连接一个小小的芯片,最重要的就是那个芯片,通俗来讲就是无线电波通过线圈激活IC卡芯片在将IC卡芯片数据发射出去或接受读写器的数据。
因为最开始的时候找不到剪刀只能用网线钳了,哈哈。
然后再将剪好的卡芯片放进了丙酮,就是溶解PVC的药水。泡几个小时就能把白白的外壳泡烂。注意不要直接用手触摸这是有毒的,最好用镊子抓出来。
把多余的塑料和原来的线圈用刀片分开。
然后用烙铁把锡和自己做的线圈焊接芯片上,放在IC卡器上测试是否能感应到(PS线圈太小的话很有可能感应不了的!!!!!)
把线圈和芯片放进手环U盘槽里。
假如说市面上的智能手环(如小米)内置IC芯片然后通过大杀器acr122u,或者用radiowar团队Proxmark3 复制到手环上刷各种卡时候直接上了一个档次.妈妈再也不用担心我的卡丢掉了!
一说到@radiowar团队就想吐槽一下.WiFiPineapple卖的好贵撒。然后我通过自己的努力以及某基友的帮助终于吧WiFiPineapple系统移植到自己屌丝机HG255D上karma居然不能正常工作了。这是芯片问题么?还是移植不完美.
最近发现发送到微信公众平台的图片被旋转了90度,导致后续操作出错。后来仔细研究,发现用iphone前置摄像头拍出来的照片会自动镜像,而且会右旋90度,之前TX服务器会处理这种情况,貌似最近不干了,害客户抱怨我这里的问题。
然后开始研究服务器传回来照片的格式,发现exif里面Orientation的值为6,正好是右旋了90度,正好可以根据这个来自动调整图片。
首先读取exif值
$exif = exif_read_data($src, 0, true);
if($exif[‘IFD0’][‘Orientation’]==6){
flip($src,$src,-90);
}
其实还有其他方向,也可以根据这个来旋转,我这里只需要这么多。
另外附上flip方法
function flip($filename,$src,$degrees=90)
{
//读取图片
$data = @getimagesize($filename);
if($data==false)return false;
//读取旧图片
switch ($data[2]) {
case 1:
$src_f = imagecreatefromgif($filename);break;
case 2:
$src_f = imagecreatefromjpeg($filename);break;
case 3:
$src_f = imagecreatefrompng($filename);break;
}
if($src_f==””)return false;
$rotate = @imagerotate($src_f, $degrees,0);
if(!imagejpeg($rotate,$src,100))return false;
@imagedestroy($rotate);
return true;
}
万一你机器上面没有exif模块,参照我前一篇博文。
我记得在两年前,两步验证(2-Factor-Authentication, 2FA)变得非常普及并且在各大主流网站(Google, Facebook, Yahoo 等)广泛应用。那时我十六岁,天真的我想不通为什么这么天才的想法之前没有人想到过。在那时,我认为2FA就是一个可以保护自己的金色盾牌,它可以抵御那些最复杂的网络欺诈。
当两步验证依旧是你所使用的主要应用的金色盾牌时,我开始列出以下文档—我是如何用一系列的方法来绕过Google, Facebook, Yahoo, LinkedIn的两步验证以及几乎任何向语音信箱发送两步验证标记的服务的。
注:超过959万的澳大利亚Optus公司的手机用户会受到我下面所说的语音信箱的攻击。这959万使用两步验证的用户中任何一人,都很有可能会受到我下文所说的绕过两步验证的攻击。
当将两步验证看做一个整体时,从一个攻击者的角度看来仅仅有这些东西。在我第一次对两步验证的分析中,我经常在想是否可能进行以下的攻击:
以上技术都是攻击的有效手段,但是通常没有人会使用,因为这些手段太老套了,已经有了相应的防御。
在我经历过这个初步测试的阶段后,我列举了更多的东西,意识到一定有一个弱点能够让我们完全避开两步验证。这个弱点就是语音信箱。
有些读者可能会知道为什么语音信箱容易出问题,因为他们可能听说过2009年英国某些名人的语音信箱被黑客攻击的丑闻。他们进入语音信箱的方式相当让人担心,分为以下几种:默认的语音信箱PIN,未设置语音信箱PIN以及拨打自己电话的方法—都在Sophos Security中写到过。
在另一起类似的事故中,Cloudflare公司的CEO也是通过语音信箱绕过两步验证的受害者之一。然而,在这一次事件中,攻击更为复杂,要求攻击者设法使得AT&T(美国电话电报公司)的员工将Matthew Prince的语音信箱重定向到一个假的语音信箱处。
那些我用来登录到语音信箱账号(仅限于那些已经授权的用于测试的账号)的方法在很久以前我就写过了,并且执行起来并不难。
虽然进入语音信箱的方法受到越来越多的关注,但是这一方法并不适应部分国家的大多数网络。
作为一个攻击者,你需要知道四件事情,才能进入被攻击者被两步验证保护的账号中。它们包括:
在现实中,作为一名富有经验的攻击者,以上四点要求并不难达到。获取用户名和密码可以通过任何传统的方法做到,获取关联的手机号码在现在也并不困难。
手机号欺诈服务,比如Spoofcard(可以显示虚假的手机号码的服务)仅仅花费十美元就可以多次使用并且可以获得手机语音信箱的端点。另外,如果想要避免Spoofcard的登记,他们可以雇佣VoIP服务,打电话人的ID可以是虚假的,作用是一样的。
攻击第一阶段:
由于被攻击者正在跟攻击者通话,两步验证的电话服务就会立即将验证码发送到被攻击者的语音信箱里。
这是第一个漏洞。我是这样认为的,大家或许不同意,但是我想不出别的使验证码发送到语音信箱的方法了。由于这种方法的易用性,这样做的时候有一点危险。根据过去几年的语音信箱黑客的情况来看,通过向语音信箱发送pin,看起来好像不用管下面我将要告诉你们的第二个漏洞,直接就可以绕过两步验证。
当被攻击者没有接两步验证的电话时,两步验证的pin码也会被发送到语音信箱中。
绕过两步验证的第二阶段实际上依赖所谓的语音信箱窃听/电话窃听。
上图是应用于澳大利亚的和我的整个第二部分的方法,它只是和上述移动服务运营商相对应(在未发现其他的运营商之前)。在图中,我展示了我认为容易受到语音信箱攻击的网络以及其他部分或者完全不易攻击的网络。
另外,我必须指出,英国的Three 和EE网络也很容易通过电子欺骗受到语音信箱攻击。这一点最近被英国的The Register证实。
完全易受攻击的:
Telco公司的自动数字识别(ANI)或者是Caller ID是用来判断呼叫者是否是语音信箱账户的合法拥有者。如果ANI或Caller ID和账户持有者相匹配,在进入语音信箱账户时系统就不会要求输入pin码。
在美国,可以不通过Caller ID来请求pin码,然而在澳大利亚,据我所知除非服务提供商从他们的服务上来解决问题,否则没有可以预防语音信箱受到欺诈攻击的办法。
为什么目标号码是+610411000321:
注意:Optus语音信箱中任何易被攻击的端点都已经被固定了,包括我曾经用来绕过他们的端点。
部分易受攻击/不易受到攻击的:
我说过Telstra, Virgin和 Vodafone是部分易受攻击或不易受到攻击的,因为我并没有机会彻底测试攻击语音信箱的能力。然而我的确知道:
你如果不确定你现在使用的是哪种网络,或者你想检查一下自己是否是易受攻击的,我的一个朋友((Aleksa Sarai)写了一段程序通过你的手机号来确定你的在澳大利亚的移动网络。你只需输入你的手机号然后点击check就可以了。
你可以在Github上找到检测移动网络的代码。
谷歌是两步验证的早期使用者,它的全部服务都使用了两步验证。如果你所选择的电话公司在语音信箱安全方面管理非常严格的话,谷歌现在使用的两步验证系统还是非常安全的,但是谷歌所提供的两步验证可以绕过的概率其实是非常高的。
假设你现在已经阅读了上文中提到的破解步骤,使我能够绕过两步验证的Google, Facebook, Yahoo 等其他主要的支持两步验证服务的漏洞是当你不在线时,两步验证会发送两步验证标记到你的语音信箱中。单看这一点,这是个很小的问题,但是站在安全的角度上来看,这个漏洞是非常明显的。
语音信箱并未实现全球统一化,它的安全性也是一样的。每个电话公司都运行他们自己的语音信箱管理服务。
如果你想看我和谷歌对话的全部邮件记录,你可以点击这里: google.pdf。
注意:通过这个绕过两步验证的方法并不能不动声色地来盗取谷歌账户,因为很有可能一旦登录到支持两步验证的谷歌账户中就会自动向用户发送信息。在前面的步骤中你必须选择拨打电话的方式然后继续破解。这样很可能会引起受害者的警觉。
他们对我最初的破解的回复如下:
嗨,
谢谢你的错误报告。我们已经看了你提交的数据并且确信这不是谷歌产品的安全缺陷。这个攻击假设了一个易被盗取的密码,并且实际的易被攻击性是由于电话商提供的对语音信箱的保护不够充分导致的。请直接向电话商报告这些。
Regrads,
Jeremy
虽然我知道语音信箱系统不够安全这是电话商的错误,我仍然觉得谷歌把两步验证标记发送到语音信箱这一做法有缺陷,这是个很危险的做法,并且大部分2FA提供商都不这样做。因此,我作出了以下回复:
Hi, Jeremy,
当我发现这些漏洞时,我完全理解并且我也和电话商在不断联系。
澳大利亚和英国的大部分电话商都只要求一个并未锁定的四位的pin码。然而,使用VoIP服务以及Asterisk AGI(http://www.voip-info.org/wiki/view/Asterisk+AGI)的一些脚本就在一天内可以进入语音信箱的账号。
实质上,虽然你说的“这一定是电话商的问题”是对的。这不仅意味着在最近四年里(或更多),在澳大利亚使用Optus提供的服务的人(澳大利亚的大部分人)是非常容易受到绕过两步验证攻击的,这也意味着许多国家的电信商也非常容易受相同种类的攻击。
我觉得把这个问题说成是一个纯粹的电话商的问题,会有点忽略掉两步验证并没有很好的理由来发送到个人的语音信箱里这个事实。另外,先不考虑由于外部的易受攻击性使得谷歌的两步验证可以被绕过这件事,谷歌这样做事实上还是会把敏感信息交给一个可能易受攻击的终端。
另外,在做了一些调查后,我能够跟Duosecurity 和Authy的专门负责两步验证的工作人员交流了。当我第一次发现谷歌发送两步验证的标记到语音信箱时,我非常肯定像Duosecurity 和Authy这样的两步验证服务提供商也是易受攻击的。但是我错了,他们并不会将两步验证标记发送到语音信箱。他们是这样处理这个问题的:
请让我知道你对此有何看法以及谷歌是否有应对这种情况的措施。十分显然这个问题是由于电话商的不安全的语音信箱服务造成的,然而这并不是谷歌或者是我可以控制的因此使得两步验证在某种程度下易受攻击。
两步验证对于那些将Optus手机号和谷歌账户绑定到一起的澳大利亚人来说是无效的,并且至少近四年是无效的(假设其他人已经知道Optus语音信箱的漏洞了)。
谢谢,
Shubham
谷歌很快回复道:
嗨,
感谢你解释这个问题的潜在作用域。
由于这并不是我们2SV系统在技术上的缺陷,我不确定我们能够做些什么来应对这个问题。但是我已经把一个bug记录下来并且会让团队成员来看一看。
Jeremy
假设这个问题不能修正,因此目前解决这个问题的最好方法就是禁用通过短信或者电话的两步验证,启用谷歌的两步验证,如果你绑定到手机就可能容易受到攻击。
这个设置方法可以在下面找到:https://accounts.google.com/b/0/SmsAuthSettings
另外,当不确定时,可以通过下面的方法通过两步验证来还原谷歌账户:
https://support.google.com/accounts/answer/183728
https://support.google.com/accounts/answer/152124
我自己还原账户时失败了,我的朋友也是一样的。然而一段时间以前,Matthew Prince (Cloudflare)成功地还原了账户。
状态: 仍然易受攻击/并不会修复 | 揭露时间: Wed, Apr 30, 2014 at 11:49 AM
———————————————————————————————————————————————————–
因为我的一个失误,在这次揭露之前我刚刚意识到可以用攻击谷歌的类似方法来攻击Facebook。Facebook称他们的两步验证“Login Approvals”是一个类似于登录通知的特点,但是有额外的安全步骤。
用和上述步骤相同的流程来破解,同样可以绕过Facebook的两步验证。
让Facebook发送验证码到语音信箱的步骤如下:
另外,除了上述模式,也可以通过向”https://www.facebook.com/ajax/login/approvals/send_sms“发送表单数据为”method_requested=phone_requested”的请求。
这个方法是通过截取最初发送短信的请求,将”sms_requested”替换为”phone_requested”来实现的,它是最有效地方法。
你可以在这里找到我向facebook 披露这个漏洞的完整版本facebook.pdf.
然而,他们对此的回复如下:
Shubham 你好,
我们目前暂时禁用了通过电话来发送登录验证码的功能,未来还将进一步研究。我们的计划是当可以实现用户在通话中的交互时再重新启用这一功能,这样就可以防止我们将验证码发送到语音信箱中。
Neal, Facebook 安全团队
Facebook在我绕过两步验证之后迅速的禁用了部分功能,他们非常迅速地采取了措施,至少是临时的措施。
状态: 不再会受攻击| 揭露日期: Sun, May 11, 2014 at 10:28 AM
正如谷歌和Facebook一样,当被攻击者没有接到系统自动来电或者占线时LinkedIn就会将两步验证码发送到被攻击者的语音信箱中。
LinkedIn处理地很好,他们关闭了通过电话发送两步验证码这个功能,直到他们可以和第三方的两步验证提供商来修复这个问题。
你可以在这里看到我和LinkedIn发送的所有邮件linkedin.pdf.
他们对这一问题的主要回复如下:
Shubham,你好
感谢你在公开这个问题之前告诉我们。
虽然这个问题对我们的影响是有限的,但是我们暂时关闭了发送两步验证码的语音的功能。我们正在和第三方协商解决这个问题。在问题修复后,我们会考虑恢复语音功能。
谢谢,
David
状态: 不再会受攻击| 揭露日期: Wed, Apr 30, 2014 at 4:15 AM
雅虎支持两步验证的主要服务也容易受到我上文中所说的攻击。事实上,对支持两步验证的雅虎账号的攻击会更严重因为攻击者并不用担心被攻击者知道他的账号已经登录。
通常支持两步验证的网络应用会在有人登录后发送短信通知。然而,当登录到雅虎账号以后,并不会发送短信,并且可以选择通过短信或者是电话来发送验证码。
由于攻击者不用冒着被立刻知道的风险,攻击者会更有可能登录更长时间。
当我揭示这个问题14天后,雅虎仍然没有回复,因此他们仍然很容易受到攻击。
在这里可以看到我揭示雅虎漏洞的全过程yahoo.pdf
状态: 仍然易受攻击/尚未回复 | 揭露日期: 2014-04-29 13:46:16 UTC
我很快假设那些提供两步验证的服务都一定是易受攻击的。然而,我是错误的—因为他们知道这个事实并且对发送pin码到语音信箱这个问题有着长远考虑。
你可以阅读我和Authy 及 Duosecurity的来往邮件 authy.pdf and duosecurity.pdf
这两个服务提供商都在24小时内给了我回复,并且他们对此都非常热心。
Authy | 状态:不易受攻击 | 揭露日期: Wed, Apr 30, 2014 at 1:27 AM
Duosecurity | 状态:不易受攻击 | 揭露日期: 2014-04-29 13:46:16 UTC
Authy会发送空白的语音信息,Duosecurity会在验证前要求用户的交互操作。
感谢Authy 和Duosecurity!
广大的读者你们好,我校对了上面的一些信息,包括世界各地各种移动网络的终端。
由于我不能查对 Telco 的海外电话商,我 知道世界各地的人都关心他们的电话商是否是易受攻击的。
要看你是否可以通过欺诈服务不用pin码就进入语音信箱,仅需要跟着上午所说的流程来,将终端号码改为你的电话商用的。
如果你的电话商也容易受到攻击请通过邮件或者是评论来告诉我。
应对这个问题并没有想象中的那么简单,这要求重新构造两步验证的电话通知。这里是一些建议的解决方法(在给那些公司的邮件里都提到过):
最后也是最重要的:
我和Ben Grubb一起工作很愉快(The Sydney Morning Herald and The Age的编辑),他帮助我把这些问题反映给Optus并且在此过程中非常热心也很有合作精神。
当我第一次发现Optus是易受攻击的时候,我的研究让我注意到这篇文章thisIs your Voicemail Hackable? Optus, Telstra and Vodafone respond
Optus很严肃认真地对待顾客的隐私。顾客必须设置一个独一无二的PIN码来激活他们的语音信箱系统。当他们的PIN码被用户服务重新设置时,Optus会建议他们重新设置一个只有他们自己知道的PIN码。
至于欺诈服务,我们正在寻求多种方式来强调这一正在出现的整个工业界的威胁,包括技术上的解决途径以及进行对顾客的教育。
这篇文章的日期是2011年7月22号,距今已经三年了,令人惊讶的是这个问题依然存在并且是一个关于隐私的巨大隐患!
我和Ben在2014年3月2日将这个问题告诉了Optus,从那以后七天左右Optus修复了这个问题。
然而,在修复以后几个小时之内,我能够又一次找出不用pin就可以进入任何Optus顾客语音信箱的方法。Optus正在研究这样的绕过方法,但是在没有其他公告之前,如果你使用Optus或者其他使用他们网络的代理商的服务,请假设你的语音信箱是不安全的,比如Vaya, LiveConnected, Amaysim, Exetel, Yatango 等等。
正如同我之前对于captchas, SSRF和 rate limiting的迷恋一样,我认为语音信箱和移动网络的安全会占用我未来的许多时间。
每个人都知道移动网络的安全性很差,但是都没有做出什么改变,直到我们因此受到侵害才能意识到这件事情的重要性。
如果你想要跟进我的语音信箱的研究,我会根据电话商的回复来定期更新我的twitter.
以下服务可能会受到影响,但是我并没有彻底去检测:
另外有已确认是易受攻击的:
感谢你的阅读,我希望你能够觉得这篇文章有用。