就在本月月初,跟其他社交网络一样,twitter也开始了全新的漏洞奖励计划,奖金达到了$140+/漏洞,可以说报酬还是很丰厚的。相比于我们国内的厂商来说,我个人认为这才是一个网络公司正确的对待安全的态度:积极应对,不逃不避,努力借助白帽子的力量使自己得到更加完备的安全防护。给twitter点个赞!
一位埃及研究员,Ahmed Mohamed Hassan Aboul-Ela(好长的名字..我们就叫他埃拉好了-_-..),早在之前,就曾为Google,Microsoft,Apple等巨头公司提交过多个漏洞,也受到颇多奖励。这次,他又在twitter身上斩获新的战功:twitter广告服务允许删除任意用户的信用卡信息。
First Blood(第一枚)
最初,埃拉发现过ads.twitter.com的两个漏洞,但是这两个漏洞造成了相同的影响。一个漏洞存在于twitter的信用卡删除(Delete)链接:https://ads.twitter.com/accounts/[account id]/payment_methods
通过点击删除信用卡(Delete this card),会向服务器发送一个ajax POST请求,而请求的变量就明晃晃的放在了请求链接当中:
Account:twitter账户ID
ID:信用卡ID和纯数字的信用卡号
(小编:看到这里我想大家都已经很明白了,很明显的一个平行越权漏洞啦~有点意思,我们接着看)
“我所做的其实就是改变我自己的twitter账户的这两个变量,然后看一下服务器的响应,我忽然发现当我改变两个变量时我居然删掉了其他twitter账户的信息,尽管服务器没有给我正确的响应。”埃拉这样写道。
(当改变两个变量时)页面返回的是“403 forbbiden”,但是事实上,服务器已经执行了删除指令,信用卡已经被删除了。(小编:这样居然也行。。汗)
Second Blood(第二枚)
埃拉在ads.twitter.com发现了另外一个相似的漏洞,但是据埃拉说,这个漏洞的影响要比上面那个影响要大很多。下面我们看一下。
当调皮的埃拉填了一个无效的信用卡号到他的twitter账户时,服务器报错了:“我们无法添加您填写的信用卡信息”,并且弹出一个Dismiss按钮。当点击这个按钮时,信用卡信息就从他的账户里面消失了。
“我觉得这个地方可能也存在类似上一个漏洞一样的删除信用卡的漏洞,然后我就又填了一个无效的信用卡账户,然后将数据包拦截了下来。”他说。
不同于第一个漏洞,这次并没有账户变量信息,只有一个信用卡ID变量存在。他将信用卡ID变量改成受害人的ID变量然后又修改了请求数据,然后send request,受害人的信用卡就这么被删除了。