刘鑫自从和张莹熟悉了之后,每天差不多就是三点一线,家里教室食堂,不过有个小妹子天天陪着,他倒是不觉得无聊。。
刘鑫一直没啥女人缘,以前无论是在售楼部还是在大学里,都是差不多的,但是自从刘鑫穿越过之后,发现这种情况改变了。。
今天刘鑫和往常一样,背着书包去湖大复习,与以往不同的是,这次刘鑫额外带了一台苹果Macbook Pro16寸顶配的笔记本电脑,这是因为刘鑫准备从事的特殊行业需要高强度的硬件配置,这部电脑搭配了32个G的内存,一T的固态硬盘和最新的十核心中央处理器以及32核心图形处理芯片,花了刘鑫26000大洋,这让刘鑫整整心疼了三秒钟。。
“刘鑫,刚刚我又在网上看到了微软的漏洞悬赏计划,有五万美元的奖金,你有没有把握?”张莹坐在刘鑫旁边小声说道。。
刘鑫微微一笑道:“这个我早知道了,自从微软公布了Instagram上的帐户劫持漏洞后,我就试图在其他服务中的寻找类似漏洞,我仔细阅读了大量微软发布的资料,寻找类似的技术在其他服务中的应用,我觉得一种技术,不可能只用在一处的,所以我想只要找到应用了类似技术的地方,那么类似的漏洞就会存在。。”
结果,我最后发现了微软在重置用户密码使用了类似的技术,现在我们需要做的就是对其进行渗透测试,以查看其否存在任何速率限制的漏洞。。
张莹一脸惊喜道:“刘鑫你真的是个天才,这么快就能找到新的漏洞,我想请教一下,这个渗透测试你准备怎么进行?“
刘鑫打开了笔记本电脑,进入了微软的账户登录界面,然后对张莹演示道:“你看,我们平时如果忘记了密码,就需要对密码进行重置,在对微软帐户密码进行重置时,我们需要进入“忘记密码”页面,并在页面中输入账户的电子邮件地址或电话号码,之后,会要求我们选择可接收安全码的电子邮件或手机号码。”
张莹点了点头:“是啊,这有什么问题吗?”
刘鑫继续道:“我们必须在页面中输入收到7位数安全码,才能对该账户密码进行重置。但如果我们可以对7位数安全码的所有组合进行暴力破解,我们将可以在未经许可的情况下重置任意用户的密码。但是,显然为了应对这种暴力破解,微软的后端肯定存在一定的速率限制,以阻止我们进行大量的尝试。。”
刘鑫打开自己的小工具,随意输入了一个1234567的安全码提交,然后将向代码验证端点发出的HTTP POST请求拦截,然后将拦截到的详细代码展现给张莹看。。
“你看在这个请求的详细代码中,我们可以看出不存在我们输入1234567安全码。它已被加密,然后发送以进行验证。我猜想开发人员这样做的目的是为了防止自动暴力破解工具对其系统进行利用。”
张莹:“你的意思是说,我们无法使用Burp Intruder之类的工具自动测试多个代码,因为它们不会执行加密。那下一步是不是我们必须要搞明白这里用的加密技术?”
刘鑫点了点头道:“完全正确,不过这个问题不难,因为微软所用的加密技术在过去几年都没有变化过,所以我很轻易的在一个国外的技术论坛上找到了几种微软常用的加密技术,我逐一测试后,找到了正确的加密方法,并且能够自动的完成从加密代码到发送多个并发请求的整个过程。。”
张莹:“刘鑫你太聪明了,你是怎么想到的,我怎么就没想到?”
刘鑫:“这个其实很简单的,我其实没有用太多的技术,你看我发现的这个漏洞,就是微软已经公布了的,只是我喜欢阅读他们的技术文档,因为这对我来说阅读这些技术文档,对我的帮助很大,远远胜过只读那些死板的教材。”
张莹:“这就是社会工程学吗?”
刘鑫:“可以这么说,其实很多新漏洞,都是过往很多漏洞在其他方面的错误重复,我们大部分的时候,都可以根据以往的错误,来寻找新的漏洞,因为错误总是会重复出现,又或者说程序员总会犯差不多的错误。”
张莹:“那测试的结果怎么样?”
刘鑫:“我的初始测试结果,表明存在速率限制,这符合我的预期。在发送的1000个代码中,只有122个能够成功通过,其他代码则受到1211错误代码限制。而且如果我们不断发送请求,它们将阻止相应的用户帐户发送进一步的尝试。”
“接下来,我尝试通过发送并发请求,以绕过速率限制,从而允许我们发送大量请求。但是当注入正确的7位数安全码时,我依然无法获得成功的响应。这意味着,开发人员可能已经采取了一些控制措施来防止此类攻击。”
“尽管在发送正确的安全码时出现错误,但是并没有出现我们在初始测试中遇到的阻止用户的迹象,所以我的希望并没有完全破灭。”
“之后我突然意识到,如果我们发送的所有请求没有同时到达服务器,则服务器会将IP地址列入黑名单。即使请求之间的延迟间隔只有几毫秒,服务器仍可以检测到攻击并进行组织。想通这一点后,我立即调整了代码以处理这种情况,并再次对其进行测试。。”
“令人惊讶的是,它生效了,这次我获得了成功的响应。我一共发送了约1000个左右七位数的密码,其中包含正确的那一个密码,并能够成功进行下一步更改密码。”
张莹:“我有个问题,刚刚你说的,上面的过程仅对未启用双因素身份验证的用户有效,因为如果用户启用了双因素验证,我们必须绕过双因素身份验证代码才能更改密码。”
刘鑫点了点头道:“是的,我对一个启用了双因素验证的帐户进行了测试,我发现其同样也容易受到此类攻击。启用双因素验证的账户在重置密码时,首先会被要求输入由身份验证器应用程序生成的6位数字代码,验证通过后,才会被要求输入发送到其电子邮件或电话号码中的7位数字代码。
“这意味着,攻击者必须同时发送6位和7位安全码的所有可能性,我计算了一下大约会有1100万次请求尝试,以更改任意微软帐户的密码。”
“要发送如此大量的并发请求并不是一件容易的事,攻击者需要需要大量的计算资源以及数千个IP地址才可能成功进行攻击。所以我没有办法进行更进一步测试了,但是以我目前的成果,应该可以拿到那5万美金的奖金了。”
张莹:“五万美元的奖金,那换算成人民币岂不是有30万,刘鑫你发财了啊。没想到还能有这种方法赚钱。”
刘鑫点了点头道:“我也没想到我能成功,我其实一开始也只是试着玩一玩,并没有觉得自己能成功,不过我觉得这个赚钱方式还是挺适合我的。”
“发现这个漏洞后,我立即用视频记录下了所有绕过的过程,并将其连同漏洞复现的详细步骤提交给微软安全团队,我希望我的发现能给他们带来帮助,并支付给我5万美元的奖金。”
张莹:“哈哈,刘鑫你还怕我微软赖账啊,微软那么一个大公司,不会和我们这些小人物计较的,我估计你的钱很快会到账,因为我以前听说我们业界一个牛人也拿到了微软的奖金。”
“以前,你说要去考清华,我觉得你在吹牛,但是现在我觉得清华也未必配得上你,你这么厉害就几天的功夫就赚了30万,我估计你现在去微软面试,拿个几百万的年薪根本不是问题,完全不用去过独木桥了。”
刘鑫微微一笑:“书我们还是要读的,清华也好,湖大也好,对我来说都差不多,而且如果不是你借我的那本windows程序设计,我也不会往这方面去想,也就赚不到这个钱了,这里面有你一半的功劳,等钱到账了,我分你一半。”
张莹先是一脸惊喜,而后又有些不好意思:“算了,虽然这个钱我很想要,但是这个我知道不是我自己赚的,而且我只是借了一本书给你而已,这不算什么,只要你这次帮我考上湖大的研究生,我就满足了,怎么样?你以后要帮我复习功课哦?”
刘鑫:“是你自己不要的啊,帮你复习功课没有问题,等五万美金到账了,我们买点什么东西呢?”
张莹:“嗯,你已经租了一间大房子了,短时间内不用担心住房问题,就是出门打车不太方便,要不我们去买辆车吧,我去年就考了驾照一直没有车开。”
刘鑫一听哈哈一笑道:“我说你怎么这么大方,分你一半都不要,原来是惦记着买车啊,算了,我是男子汉就不和你这小女子计较了,那就听你的我们去买车吧,不过30万也不是很多,你想买个啥车啊。”
张莹:“我想买辆国产车,最好是霸气越野的。”
刘鑫想了想,然后道:“如果是国产霸气的,我觉得坦克300中的最新车型赛博坦克比较合适30万出头就能搞定,长城的车子应该不错,也算支持国产了吧。”
“对了,你一个女孩子,怎么会喜欢国产霸气越野的车型呢?我看其他的小女生一般都在喜欢宝马甲壳虫之类的小巧车型,很少有喜欢霸气越野的。”
张莹:“我就是喜欢霸气的车子,这样我和别人相撞吃亏得也是别人,不然怎么叫彪悍的女司机呢?”
刘鑫一听就头大:“听你这么一说我都不敢给你买车了,你知不知道交通安全最重要,钱没了还可以赚,你这么开车,会闯祸的,我看买车还是算了吧,打车也挺好,起码安全。”
张莹一听刘鑫不买车了,顿时急了,连忙道:“你说话不算话,刚刚明明答应的买车的,现在又反悔了。”
刘鑫:“我不是反悔,只是怕你不适合开车,如果你正因为开车出了问题,那就是我害了你。”
张莹:“刘鑫,你以前开过车吗?”
刘鑫:“当然,我以前开的也是越野车,但是后来我觉得开车太累了,就让同事帮着开,我自己只坐车很少开车了,开车真的很累,不骗你,如果你不是说要买车,如果按照我的性格,我宁可选择打车,也不愿意自己开车。”
刘鑫说的是实话,刘鑫在欢乐颂的世界里,座驾就是大G,一开始还很兴奋,后来就感觉很麻烦了,因为还需要经常找停车位,而且时不时会出点小的交通事故,让刘鑫不胜其烦,后来他就是索性让其他人帮着开车。。
张莹看刘鑫的表情不像作假,心里也觉得像刘鑫这样的人,明显不是心疼钱的主,他不想开车可能是真的,于是她道:“你不想买车,我们就不买了,开车确实需要好技术,我也只是个新手。”
刘鑫:“我也不是这个意思,新手就是最有激情,我最开始得时候和你一样,买了一辆最骚包的越野车,也就开了一阵子,后来觉得累了自己就很少开了,反而让别人开的比我自己还多。。”
“不过我既然答应你了,那咋就一定买,不过还得找个司机才行,你才是个新手,我实在不放心。”
张莹:“如果这样的话,我们就只能买MPV了,广汽本田奥德赛很实用,我一个亲戚家就买了这种车,空间足够大也便于驾驶,如果找个司机,我们还可以坐在后面,不受影响。”
刘鑫点了点头:“随你吧,反正花的是微软的钱,只要钱一到账,我们就去提车。。”
刘鑫其实不知不觉就喜欢上这个和他一起复习考研的小姑娘了,否则虽然刘鑫不缺钱,但是还没有到随便给人买车的地步。。
人生就是这么奇妙,当初在欢乐颂世界遇到关雎尔,现实中遇到张莹,给刘鑫的感觉都差不多,刘鑫都非常乐意給对方自己拥有的一切,当然前提是刘鑫都足够优秀,否则人家小姑娘眼睛又不瞎,怎么会看上你。。