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

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


当前回答

有一次我有……创造性的差异……在我帮助建立的一个社区网站上,另一个编码器添加了一个新的PHP文件,该文件列出了审批队列中的文件,该文件还具有删除每个文件的链接。

不幸的是,这个脚本使用了整个通过模糊实现安全的概念。

不知何故,一个网络爬虫发现了这个页面,并跟踪了所有的删除链接。

不用说,修改元数据或删除文件的脚本现在需要登录。

附注:我与此无关,甚至不知道这个脚本的存在,直到当时的一位工作人员告诉我发生了什么。实际上,我现在又在为这个网站工作了,部分原因是为了确保这样的事情不会再发生。

其他回答

我曾经接手了一个系统的开发,这个系统在全国有200个客户在使用,它有硬编码的密码。是的,代码实际上写着:

if password = "a"

去年,我离开了一家汽车ERP公司,该公司数百个客户的服务器上都有相同的管理密码。我猜我走后他们没有全部换掉。

不是最坏的,但也足以造成一些真正的损害。你会惊讶于这一点被忽视的频率有多高。特别是当人们使用这些流行的框架时,

yourwebapp.com/items/edit.php?id=4
yourwebapp.com/items/delete.php?id=4

不确定项的所有者是请求页面的人。 也就是说,你可以登录你的账户,然后在整个应用程序中编辑或删除任何人的项目。

一个简单的检查可以防止很多损坏。

$item = // find your item by the $_GET[ 'id' ];

if( $_SESSION[ 'user_id' ] != $item[ 'user_id' ] ){
  // kick em out they dont belong...
}

几年前我移植的一款遗留应用使用了第三方回调系统来处理支付。问题是,回调脚本没有检查支付的金额是否等于订单的价格,因此可以使用Firebug编辑支付页面上“金额”字段的内容,以0.01英镑的价格购买网站上的任何产品。

我所见过的最严重的安全漏洞是在MS SQL Server的早期版本中,7.0或2000版本,记不清了。

当安装此版本的SQL Server时,安装程序默认会给“sa”帐户一个空密码!!(sa帐户是SQL管理员帐户,它可以在服务器上做任何事情)

这基本上让任何人都可以访问没有防火墙保护的SQL服务器。

但还有更糟的。

当时,安装了许多SQL服务器以在“本地系统”身份验证下运行服务,这使SQL server进程对系统有无限的控制。

既然你可以在SQL server中创建COM对象,你就可以完全访问运行SQL server的计算机了。

很多网站都是这样被黑客攻击的。

1-800 dominos will give unlisted address's related to any target phone number. When prompted if you are calling about the phone number you called from select no. The system will prompt you for a new phone number, the system will then read back to you the name and address that's associated to this phone number. Enter in your target's phone number and you now have their name and address. This is pretty common with automated ordering systems and if dominos has fixed this there are literally hundreds more.