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

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


当前回答

事实上,只要使用文件/进程十六进制编辑器,就可以在大多数未加密的应用程序或文件上绕过安全性或预期功能。当然,在大多数游戏(在线或离线)中给自己无限的金币或上帝模式是很棒的,但它也很棒,只是抓取或编辑你想要的值,包括密码。事实上,有时候你只需要记事本。幸运的是,记事本不在DMCA联邦控制的计算机应用程序名单上…然而。

编辑:我指的是利用“皇帝的新衣”场景,用最简单的工具识别安全缺陷。这种场景在任何语言或平台的编程或消费者社区中都很常见,甚至可以成为通用标准。

其他回答

我们有一个旧的计算机集群,在我工作的一个实验室里没有运行。几个本科生认为,让它运行起来会很有趣,这样他们就可以学习一点并行计算了。他们让它运行起来,结果证明它非常有用。

One day I came in and was checking out the stats...It was running at 100%. Now this was a 24 node cluster and there were only 3 of us that ever used it so it was a little strange that it was running at this load. I started playing with it, trying to figure out what was loading it...turned out someone had gained access and was using it as their own little porn server and spammer. I asked the undergrads what kind of security they put on it, they looked at me and said "Security? We didn't think it would need any."

我给它加了个密码,就这样。把它用作色情服务器的人原来是一个本科生的朋友。

对我来说,最糟糕的,最可怕的,最危险的,犯罪的疏忽,但在彻底破坏整个系统的安全方面,奇怪的优雅总是来自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);
}

就盯着它看一分钟。想想你所能做的一切。女士们先生们,这是洛夫克拉夫特的杰作。

最近,我被要求对一家公司的网站进行代码审查,希望我的雇主把这个网站作为一个维护项目。

我没花多长时间就发现了网站根目录下的纯文本文件,其中包含大约6000个客户的信用卡详细信息,包括账单名称、地址和CVV代码。它的名字甚至都没有想象力!

这是该网站最糟糕的问题,但它也充满了SQL注入问题。

我们礼貌地指出了这些问题,网站所有者将其退回到原始开发人员那里寻求解释。

一个“安全”的网站,每个页面都是加密的,但登录页面!

不过这还不是我见过的最严重的安全漏洞。但这至少是我自己发现的最糟糕的情况:

一个非常成功的在线有声读物商店在成功认证后使用cookie存储当前用户的身份信息。但你可以很容易地在cookie中更改用户ID,并访问其他账户并在这些账户上购物。