你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
你见过的最糟糕的安全漏洞是什么?为了保护罪犯,限制细节可能是个好主意。
不管怎样,这里有一个关于如果你发现了安全漏洞该怎么办的问题,还有一个关于如果公司(似乎)没有回应该怎么办的问题。
当前回答
我以前的学校有学生的密码和他们的用户名一样,加上很容易得到他们的用户名(一个数字,例如123233),然后你可以点击添加列,找到学生的名字和姓氏,以及他们的用户名。因此,很容易在他们的账户中随机放入垃圾,让他们认为“机器里有鬼”。
其他回答
将用户名列表以明文形式发送给浏览器以供JavaScript自动补全,还可以通过使用唯一的用户id调整URL查询字符串来查看用户数据,这可以从自动补全功能中收集到。
事实上,只要使用文件/进程十六进制编辑器,就可以在大多数未加密的应用程序或文件上绕过安全性或预期功能。当然,在大多数游戏(在线或离线)中给自己无限的金币或上帝模式是很棒的,但它也很棒,只是抓取或编辑你想要的值,包括密码。事实上,有时候你只需要记事本。幸运的是,记事本不在DMCA联邦控制的计算机应用程序名单上…然而。
编辑:我指的是利用“皇帝的新衣”场景,用最简单的工具识别安全缺陷。这种场景在任何语言或平台的编程或消费者社区中都很常见,甚至可以成为通用标准。
信不信由你,我最近在一个网站上发现了这个:
eval($_GET['code']);
服务器甚至没有安全模式…
在密码数据输入元素中没有控制逻辑操作符(OR)。通过使用它,每个人都可以很容易地通过其他的条件。对于,select查询将像这样:
select *
from TheTable
where UserName=@id And Password=@pass OR 1=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);
}
就盯着它看一分钟。想想你所能做的一切。女士们先生们,这是洛夫克拉夫特的杰作。