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

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


当前回答

信不信由你,我最近在一个网站上发现了这个:

eval($_GET['code']);

服务器甚至没有安全模式…

其他回答

我有Joe X以前的家庭地址,需要知道他在同一城市的新地址,但没有办法联系到他。我估计他每天都会收到一堆邮购目录,所以我随意拨打了See’s Candies的800电话(与维多利亚的秘密、瑞士殖民地或任何其他大型邮寄公司不同):

我:“嗨,我是Joe x。我想我已经在你的邮件列表中出现过两次了,我的旧地址和新地址都有。你的电脑显示我的地址是[旧地址]还是[假地址]?”

接线员:“不,我们给你看[新地址]。”

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

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

前一段时间,JPG图像加载库的窗口存在安全漏洞。被电子邮件中的图像感染。消

我的一个朋友是通过GET登录的。不用说,他吸取了惨痛的教训。

其中一个最简单,但真正值得付出代价的是:

使用PayPal等引擎的支付系统可能存在缺陷,因为在支付成功后,PayPal的响应没有得到应有的检查。

例如:

我可以进入一些CD购买网站,向购物车中添加一些内容,然后在结帐阶段,页面上通常会出现一个表单,其中包含paypal的字段,以及“支付”的提交按钮。

使用DOM编辑器,我可以进入“live”表单,将值从£899.00更改为£0.01,然后单击提交…

当我在PayPal的时候,我可以看到金额是1美分,所以我支付了,PayPal将一些参数重定向到初始购买网站,该网站只验证诸如payment_status=1等参数,而不验证支付的金额。

如果没有足够的日志记录,或者产品是自动分派的,那么成本就会很高。

最糟糕的一类网站是提供应用程序、软件、音乐等的网站。