你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
当前回答
从早期的在线商店来看:
在购物车的数量栏输入.1即可获得9折优惠。软件正确地将总成本计算为.1 * cost,人工包装订单只是忽略了包装数量前面的奇数“.”:)
其他回答
其中一个最简单,但真正值得付出代价的是:
使用PayPal等引擎的支付系统可能存在缺陷,因为在支付成功后,PayPal的响应没有得到应有的检查。
例如:
我可以进入一些CD购买网站,向购物车中添加一些内容,然后在结帐阶段,页面上通常会出现一个表单,其中包含paypal的字段,以及“支付”的提交按钮。
使用DOM编辑器,我可以进入“live”表单,将值从£899.00更改为£0.01,然后单击提交…
当我在PayPal的时候,我可以看到金额是1美分,所以我支付了,PayPal将一些参数重定向到初始购买网站,该网站只验证诸如payment_status=1等参数,而不验证支付的金额。
如果没有足够的日志记录,或者产品是自动分派的,那么成本就会很高。
最糟糕的一类网站是提供应用程序、软件、音乐等的网站。
对我来说,最糟糕的,最可怕的,最危险的,犯罪的疏忽,但在彻底破坏整个系统的安全方面,奇怪的优雅总是来自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);
}
就盯着它看一分钟。想想你所能做的一切。女士们先生们,这是洛夫克拉夫特的杰作。
在一所不知名的大学,他们所有的动作查询都是通过URL传递的,而不是通过表单发布的。
这个东西一直在工作,直到谷歌Bot出现,运行了他们所有的url并删除了他们的数据库。
我曾经接手了一个系统的开发,这个系统在全国有200个客户在使用,它有硬编码的密码。是的,代码实际上写着:
if password = "a"
去年,我离开了一家汽车ERP公司,该公司数百个客户的服务器上都有相同的管理密码。我猜我走后他们没有全部换掉。
“网络编程安全101”风格的最大错误是招聘机构的搜索页面提供了“下一页”链接,这只是获取更多工作列表的SQL语句。您可以轻松地将此URL更改为任何其他SQL语句,包括“drop table X”。如果你这么做了,他们的整个网站都会完蛋。