你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
当前回答
对我来说,最糟糕的,最可怕的,最危险的,犯罪的疏忽,但在彻底破坏整个系统的安全方面,奇怪的优雅总是来自the Daily WTF:
客户端PHP
function saveform()
{
var firstName = escapeSql(mainForm.elements.txtFirstName.value);
var lastName = escapeSql(mainForm.elements.txtLastName.value);
/* ... */
var offerCode = escapeSql(mainForm.elements.txtOfferCode.value);
var code =
' $cn = mssql_connect($DB_SERVER, $DB_USERNAME, $DB_PASSWORD) ' +
' or die("ERROR: Cannot Connect to $DB_SERVER"); ' +
' $db = mssql_select_db($DB_NAME, $cn); ' +
' ' +
' if (mssql_query("SELECT 1 FROM APPS WHERE SSN=\''+ssn+'\'", $cn)) ' +
' { $ins = false; } ' +
' else ' +
' { $ins = true; } ' +
' ' +
' if ($ins) { ' +
' $sql = "INSERT INTO APPS (FIRSTNM, LASTNM, ..., OFFERCD) VALUES ("; ' +
' $sql+= "\''+firstName+'\',"; ' +
' $sql+= "\''+lastName+'\',"; ' +
' $sql+= "\''+offerCode+'\')"; ' +
' ' +
' /* ... */ ' +
' ' +
' mssql_query($sql, $cn); ' +
' mssql_close($cn); ';
execPhp(code);
}
就盯着它看一分钟。想想你所能做的一切。女士们先生们,这是洛夫克拉夫特的杰作。
其他回答
太可怕了,我告诉我所有的朋友取消账户!
我在一家很受欢迎的赌场网站工作。flash前端不仅仅是一个不起眼的终端。他们有一个视觉错误,不正确地管理头像图像。在我和我的朋友解决这个问题的时候,我们发现了一个完全不同的缺陷。
我们观察了从客户端到服务器的流量,发现它是base64编码的。 考虑到它会有所帮助,构建了一个简单的python终端脚本,可以利用它。我们发现客户端会向服务器发送命令和逻辑信息。
几分钟之内,我就能简单地输入我有多少筹码,谁赢了,我有什么手牌,简单地用纯文本写出来!
另一个主要缺陷-用户密码被加密,管理员密码没有使用与以前相同的漏洞,我获得了数据库信息,找到管理员登录并接管了系统。
几年前,一位朋友给了我一把他发现的旧斧头,希望我告诉他这是一件古老的人工制品。所以,我在谷歌上搜索了一些可能有助于识别的网站,得到了一个链接到英国中部某处的博物馆网站。
只不过它把我放到的那个页面给了我整个网站的完全管理员权限。作为一个负责任的人,我更改了账户所有者的名字,这样他们就知道我不是在胡说八道,并给他们发了一封电子邮件,建议他们在更恶毒的人发现之前,把让我进入的漏洞堵上。
不用说,我收到了网站所有者的一封非常感谢的电子邮件,开发人员向他保证,错误已经被发现并修复了。尽管你不得不怀疑一个如此粗心大意的人的能力。
不过这还不是我见过的最严重的安全漏洞。但这至少是我自己发现的最糟糕的情况:
一个非常成功的在线有声读物商店在成功认证后使用cookie存储当前用户的身份信息。但你可以很容易地在cookie中更改用户ID,并访问其他账户并在这些账户上购物。
我的任务是发现一个用于报告的ODBC DSN,其中密码与用户匹配,并且用户属于数据库服务器管理组。
因此,任何具有此ODBC DSN的PC都可以使用任何ODBC兼容工具通过报表用户读取/更改所有数据(甚至更糟)。不需要授权,而且身份验证非常弱。
我在一家公立医院工作,这个软件几乎安装在该州每家政府医院的每一台电脑上,数据库服务器包含各种敏感的医疗数据(完整的患者详细信息、实验室测试结果等)。
最糟糕的是,我们悄无声息地报告了安全漏洞,然后正式报告,但在我继续在那里工作的2年里,它仍然没有修复,那已经是5年前的事了。
瑞典的一家在线dvd租赁店在查询字符串中发送了纯sql语句。
如果你在菜单框中选择了“Comedy”类别,它会将“select * from movies where category=2”作为查询字符串发送给movielist-frame,然后执行sql语句并显示所有符合条件的电影。
在您的订单中添加电影时也是如此。
只要将查询更改为“从电影中删除*”和“从订单中删除*”,该公司就会大获成功。