你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
当前回答
几年前,一位朋友给了我一把他发现的旧斧头,希望我告诉他这是一件古老的人工制品。所以,我在谷歌上搜索了一些可能有助于识别的网站,得到了一个链接到英国中部某处的博物馆网站。
只不过它把我放到的那个页面给了我整个网站的完全管理员权限。作为一个负责任的人,我更改了账户所有者的名字,这样他们就知道我不是在胡说八道,并给他们发了一封电子邮件,建议他们在更恶毒的人发现之前,把让我进入的漏洞堵上。
不用说,我收到了网站所有者的一封非常感谢的电子邮件,开发人员向他保证,错误已经被发现并修复了。尽管你不得不怀疑一个如此粗心大意的人的能力。
其他回答
我曾经打电话给一个BBS,它在首页上有一个“Drop To DOS”选项。菜单上没有列出来,但我打错了,无意中找到了。
然后我可以远程访问这家伙的DOS命令行。
这是我在微软早期的真实故事。
直到有一天你醒来,看到ZDNet.com上的头条是“在'Blah'中发现了有史以来最严重的ie安全漏洞”,你才知道什么是恐惧,而'Blah'是你六个月前自己写的代码。
在开始工作后,我立即检查了更改日志,发现另一个团队中的某人——我们信任的对产品进行更改的人——签出了我的代码,毫无理由地更改了一堆安全注册表项设置,重新签入,并且从未得到代码审查或告诉任何人。直到今天,我还不知道他到底在做什么;此后不久,他就离开了公司。(自愿的。)
(更新:对评论中提出的问题进行了一些回应:
首先,请注意,我选择采取宽容的立场,即安全密钥的更改是无意的,是基于粗心或不熟悉,而不是恶意的。我没有这样或那样的证据,我相信把错误归咎于人的易犯错误是明智的。
其次,我们现在的签到系统比12年前强大得多。例如,如果签入系统不将更改列表通过电子邮件发送给相关方,现在就不可能签入代码。特别是,在开发周期后期所做的更改有很多“流程”,这确保了所做的更改是正确的,以确保产品的稳定性和安全性。)
Anyway, the bug was that an object which was NOT safe to be used from Internet Explorer had been accidentally released as being marked "safe for scripting". The object was capable of writing binary files -- OLE Automation type libraries, in fact -- to arbitrary disk locations. This meant that an attacker could craft a type library that contained certain strings of hostile code, save it to a path that was a known executable location, give it the extension of something that would cause a script to run, and hope that somehow the user would accidentally run the code. I do not know of any successful "real world" attacks that used this vulnerability, but it was possible to craft a working exploit with it.
让我告诉你,我们很快就为这款游戏发布了补丁。
我在JScript中造成并随后修复了更多的安全漏洞,但它们都没有得到应有的宣传。
社会工程:
<Cthon98> hey, if you type in your pw, it will show as stars
<Cthon98> ********* see!
<AzureDiamond> hunter2
<AzureDiamond> doesnt look like stars to me
<Cthon98> <AzureDiamond> *******
<Cthon98> thats what I see
<AzureDiamond> oh, really?
<Cthon98> Absolutely
<AzureDiamond> you can go hunter2 my hunter2-ing hunter2
<AzureDiamond> haha, does that look funny to you?
<Cthon98> lol, yes. See, when YOU type hunter2, it shows to us as *******
<AzureDiamond> thats neat, I didnt know IRC did that
<Cthon98> yep, no matter how many times you type hunter2, it will show to us as *******
<AzureDiamond> awesome!
<AzureDiamond> wait, how do you know my pw?
<Cthon98> er, I just copy pasted YOUR ******'s and it appears to YOU as hunter2 cause its your pw
<AzureDiamond> oh, ok.
从bash.org
去年,我发现我所在的公司用来处理支票/报表的网站充满了SQL注入漏洞。
不用说,他们很快就把洞补好了。
我的第一份工作是在IT安全部门实习。我的任务是自动化对不同用户帐户的网络和应用程序访问,因为每个用户都转移到不同的部门/角色。也就是说,我可以使用一些基本的工具,比如查询分析器,以及一些数据库,但其他的就不多了。该公司通常会把所有东西都锁起来,所以总是有重置和授予的权限。
在这份工作中,所有的兼职人员都被要求使用一个小的VB胖客户端应用程序来跟踪工作时间,在一周结束时,一个按钮可以显示登录的用户一周工作了多少小时,以及他们这一周将获得多少报酬。
出于纯粹的无聊,有一天我偶然发现了小时间跟踪应用程序驻留在网络上的目录,并注意到在该目录中除了EXE之外只有一个其他文件,一个settings.ini文件。
果不其然,打开文件后,连接字符串在明亮的闪光纯文本;用户、密码、数据库名、服务器等等。
在这一点上,我认为这不是真正的信息,但在启动查询分析器,并进入ini设置后,我进入了主生产数据库,其中有任何人都需要给自己加薪的每一块数据。对引导的完全读写权限。
最后,我向老板展示了一份关于谁赚多少钱的问题,他平静地让我把它转发给人力资源总监。
让我告诉你,在我的生活中,我从来没有收到过这么快的,亲自回复任何其他邮件的邮件。
第二天我开始工作,时间跟踪应用程序有一个更新,唉,没有更多的settings.ini文件。