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

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


当前回答

我听说,当你以电子方式提交申报表时,Turbo Tax曾经以纯文本文件发送你的SSN。这似乎不是个好主意。

我还知道一家公司将信用卡信息存储在桌面上的纯文本CSV文件中。然后通过FTP发送到支付网关....

其他回答

太可怕了,我告诉我所有的朋友取消账户!


我在一家很受欢迎的赌场网站工作。flash前端不仅仅是一个不起眼的终端。他们有一个视觉错误,不正确地管理头像图像。在我和我的朋友解决这个问题的时候,我们发现了一个完全不同的缺陷。

我们观察了从客户端到服务器的流量,发现它是base64编码的。 考虑到它会有所帮助,构建了一个简单的python终端脚本,可以利用它。我们发现客户端会向服务器发送命令和逻辑信息。

几分钟之内,我就能简单地输入我有多少筹码,谁赢了,我有什么手牌,简单地用纯文本写出来!


另一个主要缺陷-用户密码被加密,管理员密码没有使用与以前相同的漏洞,我获得了数据库信息,找到管理员登录并接管了系统。

我投票给Ken Thompson的UNIX“后门”。

这里有一个链接,有人可以从中了解更多信息: 汤普森木马编译器

我之所以认为这是最糟糕的,是因为在那个时候,法官们认为,在这种事情上取得进展的最好方法是公开讨论。

这一切只是教会了一群脚本小子一个新的非常强大的技巧。

public class AuthenticationServlet extends HttpServlet
{
    private String userName;
    private String password;

    protected doPost(HttpServletRequest req, HttpServletResponse resp)
           throws ServletException, IOException
    {
        userName = request.getParameter("userName");
        password = request.getParameter("password");
        authenticateUser(userName,password);
        ......
    }
}

显然,正如有人在自动化负载测试中发现的那样,单例和缺乏同步会导致安全问题。

在签名代码中:

System.setSecurityManager(null);

(你可以通过谷歌代码搜索。)从进程中运行的所有代码中删除所有Java安全限制。可能没有想清楚。

在PHP中,这是在第一个包含文件:

extract($_GET);
extract($_POST);

它允许覆盖未被_GET或_POST调用的变量。

我的一个朋友曾经知道一个站点将SQL查询作为GET参数传递。你知道有些人会拿这个开玩笑。