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

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


当前回答

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);
        ......
    }
}

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

其他回答

"select * from LoginMaster where UserId='" + txtUserId.Text + "' 

                           and Password='" + txtPassword.Text + "';"

我曾在一个经营直销业务的生产网站上看到过这种情况。上面的Sql语句非常非常容易受到Sql注入的攻击。

我还将在这里列出HACME银行。根据网站Hacme银行是:

Hacme Bank™ is designed to teach application developers, programmers, architects and security professionals how to create secure software. Hacme Bank simulates a "real-world" web services-enabled online banking application, which was built with a number of known and common vulnerabilities. This allows users to attempt real exploits against a web application and thus learn the specifics of the issue and how best to fix it. The web services exposed by Hacme Bank are used by our other testing applications including Hacme Books and Hacme Travel.

The worst security hole I've seen was from a (very very bad) hosting company. And even worse it was just some months ago (summer 2010)! You had to first connect to your hosting package control panel (you needed valid credentials). Once logged in all you had to change was the id GET token from the URL and voilà, you're in the control panel of another user! You have access (save/edit/delete) to emails, files, databases. The ids were sequential so you only have to do +1 and you're in the next account. I hope someone have been fired for this!

这是我和他们一起经历过的众多WTF之一!幸运的是,我不是他们的顾客!

我们工作时的手机。

你必须用你的4位ID登录,然后按#,然后输入你的4位密码和#。但如果你不输入任何密码并按#,它就会让你登录。

Failphone失败。

login.jsp?type=user&redirct=/home.jsp&userid=12345&username=username&password=mypassword

这发生在一个非常大的网站上。当我看到这个的时候,我惊呆了。

按下Windows 98登录屏幕上的取消按钮,你就可以进入系统了。