你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。

不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。


当前回答

我曾经做过一份工作,其中有一个用Java代码编写的安全层,用于检查用户是否有权编辑DB表列。这是函数的样子:

public boolean canEdit(User user, DBColumn column) {
    if(true) {
        return true;
    } else {
        return false;
    }
}

其他回答

About 3 years ago I built a site for a somewhat large non-profit organization in our state. When it came time to deploy the application to their web host server, I noticed an odd file named "cc.txt" or something obvious like that in their public site. It was under their web root, was getting served, and was a csv file of all their donor's names, addresses, credit card numbers, expiration dates, and CVV/CVC codes. I cannot count the number of times I brought the issue up - first to my boss, then our company accountant, the client's IT director, finally the client's President. That was 3 years ago. The file is still being served, it can even be googled. And it's been updated. I tend not to respond to their donation solicitations when I get them.

我曾经黑过Novel Login (DOS提示)。我写了一个C程序来模拟登录提示符,并将登录/密码写入文件,并输出无效的密码。

我在大学时代过得很开心。

微软鲍勃 (来源:Dan's 20th Century Abandonware)

如果您第三次输入密码错误,系统将询问您是否忘记密码。

http://img132.yfrog.com/img132/8397/msbob10asignin15.gif

但是,你可以输入任何新密码,它会替换原来的密码,而不是像继续提示输入正确的密码,直到输入正确的密码,或者在多次尝试错误后锁定你!任何人都可以用任何密码“保护”的Microsoft Bob帐户这样做。

不需要事先进行身份验证。 他的意思是,用户1只需要三次输入密码错误,然后第四次输入新密码就可以更改自己的密码,而不必使用“更改密码”。

这也意味着User1可以修改User2, User3…以完全相同的方式。任何用户都可以更改其他用户的密码,只要输入三次错误密码,然后在出现提示时输入新密码,然后他们就可以访问该帐户。

http://img132.yfrog.com/img132/9851/msbob10asignin16.gif

我的任务是发现一个用于报告的ODBC DSN,其中密码与用户匹配,并且用户属于数据库服务器管理组。

因此,任何具有此ODBC DSN的PC都可以使用任何ODBC兼容工具通过报表用户读取/更改所有数据(甚至更糟)。不需要授权,而且身份验证非常弱。

我在一家公立医院工作,这个软件几乎安装在该州每家政府医院的每一台电脑上,数据库服务器包含各种敏感的医疗数据(完整的患者详细信息、实验室测试结果等)。

最糟糕的是,我们悄无声息地报告了安全漏洞,然后正式报告,但在我继续在那里工作的2年里,它仍然没有修复,那已经是5年前的事了。

最不可原谅的安全漏洞,不幸的是,一个非常常见和容易找到的漏洞,是谷歌黑客。举个例子:

http://www.google.com/search?q=inurl%3Aselect+inurl%3A%2520+inurl%3Afrom+inurl%3Awhere

令人惊讶的是,互联网上有多少页面,特别是政府网站,通过查询字符串传递SQL查询。这是最糟糕的SQL注入形式,查找易受攻击的站点毫不费力。

经过一些小的调整,我已经能够找到未受保护的phpMyAdmin安装,未受保护的MySQL安装,查询包含用户名和密码的字符串,等等。