你见过的最严重的安全漏洞是什么?保留细节以保护有罪者可能是一个好主意.
Joh*_*fer 646
从早期的在线商店:
通过在购物车的数量字段中输入.1获得90%的折扣.该软件正确地计算了总成本为.1*成本,而人工打包订单只是简单地掩盖了奇数"." 在包装数量前面:)
Jul*_*iet 575
最不可原谅的安全漏洞,不幸的是,这是一个非常普遍且容易找到的安全漏洞,是谷歌黑客攻击.例证:
http://www.google.com/search?q=inurl%3Aselect+inurl%3A%2520+inurl%3Afrom+inurl%3Awhere
令人惊讶的是,互联网上的许多页面,特别是政府网站,通过查询字符串传递SQL查询.这是最糟糕的SQL注入形式,它完全不需要查找易受攻击的站点.
通过微小的调整,我已经能够找到phpMyAdmin的无保护安装,MySQL的无保护安装,包含用户名和密码的查询字符串等.
Bob*_*man 400
社会工程学:
<Cthon98> hey, if you type in your pw, it will show as stars
<Cthon98> ********* see!
<AzureDiamond> hunter2
<AzureDiamond> doesnt look like stars to me
<Cthon98> <AzureDiamond> *******
<Cthon98> thats what I see
<AzureDiamond> oh, really?
<Cthon98> Absolutely
<AzureDiamond> you can go hunter2 my hunter2-ing hunter2
<AzureDiamond> haha, does that look funny to you?
<Cthon98> lol, yes. See, when YOU type hunter2, it shows to us as *******
<AzureDiamond> thats neat, I didnt know IRC did that
<Cthon98> yep, no matter how many times you type hunter2, it will show to us as *******
<AzureDiamond> awesome!
<AzureDiamond> wait, how do you know my pw?
<Cthon98> er, I just copy pasted YOUR ******'s and it appears to YOU as hunter2 cause its your pw
<AzureDiamond> oh, ok.
Run Code Online (Sandbox Code Playgroud)
来自bash.org
Eri*_*ert 339
我在微软早期的真实故事.
你还不知道害怕,直到你醒来,看到ZDNet.com标题那天早上是一天" 最坏的Internet Explorer的安全漏洞曾经被发现在'胡说’ "其中"胡说"是你自己写6个月以前的代号.
紧随自己动手我检查这些改变日志,发现有人在另一支球队 - 那些我们信任更改产品 - 已经检查了我的代码,改变了一堆的安全注册表项设置没有很好的理由,检查回来,从未得到代码审查或告诉任何人.直到今天,我还不知道他认为他到底在做什么; 不久之后他离开了公司.(他自己的.)
(更新:对评论中提出的问题的一些回应:
首先,请注意我选择采取慈善立场,即安全密钥更改是无意识的,并且基于疏忽或不熟悉,而不是恶意.我没有任何证据,并且认为将错误归咎于人类的错误是明智的.
其次,我们的登记系统现在比12年前强大得多.例如,如果没有签入系统通过电子邮件将更改列表发送给感兴趣的各方,则现在无法签入代码.特别是,在船舶周期后期进行的更改在它们周围有很多"过程",这确保了正确的变化以确保产品的稳定性和安全性.)
无论如何,该错误是一个不安全的对象从Internet Explorer被意外释放,被标记为"安全的脚本".该对象能够将二进制文件 - 实际上是OLE自动化类型库 - 写入任意磁盘位置.这意味着攻击者可以精心创建一个包含的恶意代码的特定字符串类型库,保存到这是一个已知的可执行文件位置的路径,给它的东西扩展,将导致脚本运行,并希望以某种方式用户会不小心运行代码.我不知道使用此漏洞的任何成功的"真实世界"攻击,但有可能用它来制作一个有效的漏洞.
我们快速发送了一个补丁,让我告诉你.
我在JScript中引起并随后修复了更多的安全漏洞,但是没有一个漏洞能够接近人们所做的宣传.
Ale*_*lex 274
我希望你能发现这里的错误.(事实上非常错误):
String emailBody = "";
for (int i = 0; i < subscribers.Count; i++)
{
emailBody += "Hello " + subscribers[i].FirstName + ",";
emailBody += "this is a reminder with your account information: \n\n:";
emailBody += "Your username: " + subscribers[i].Username + "\n";
emailBody += "Your password: " + subscribers[i].Password + "\n";
emailBody += "Have a great day!";
emailDispatcher.Send(subscribers[i].EmailAddress, emailBody);
}
Run Code Online (Sandbox Code Playgroud)
最后一位收件人是最幸福的;)
Ste*_*fan 206
旧的IBM System 36哑终端有一个键盘组合,开始录制宏.因此,当终端未登录时,您可以开始录制宏并将其保留在该位置.下次有人登录时,按键将记录在宏中,当记录最大允许按键时,记录将自动结束.稍后再回来并重播宏以自动登录.

Mat*_*ino 204
我见过的最糟糕的安全漏洞实际上是由您自己编写的,并导致Google Bot删除我的整个数据库.
回到我第一次学习经典ASP时,我编写了自己的基本博客应用程序.包含所有管理脚本的目录在IIS上受NTLM保护.有一天,我搬到新服务器,忘了重新保护IIS(oops)中的目录.
博客主页有一个指向主管理屏幕的链接,主管理屏幕的每个记录都有一个DELETE LINK(没有确认).
有一天,我发现数据库中的每条记录都被删除了(数百条个人条目).我以为有些读者已经闯入网站并恶意删除了所有记录.
我从日志中找到了:Google Bot已经抓取了网站,然后是管理员链接,然后继续跟踪所有DELETE LINKS,从而删除了数据库中的每条记录.我觉得我应该得到谷歌机器人无意中遭受的年度最佳Dumbass奖.
谢天谢地,我有备份.
Kai*_*tsu 187
我见过的最糟糕的漏洞是Web应用程序中的一个错误,其中提供一个空的用户名和密码会以管理员身份登录:)
Joh*_*nFx 174
一旦在网站的URL上注意到这一点.
http://www.somewebsite.com/mypage.asp?param1=x¶m2=y&admin=0
Run Code Online (Sandbox Code Playgroud)
将最后一个参数更改为admin = 1给了我管理员权限.如果你要盲目地信任用户输入,至少不要发电报你正在做的事情!
Kon*_*man 165
我在The Daily WTF上看过这个.
<script language="javascript">
<!--//
/*This Script allows people to enter by using a form that asks for a
UserID and Password*/
function pasuser(form) {
if (form.id.value=="buyers") {
if (form.pass.value=="gov1996") {
location="http://officers.federalsuppliers.com/agents.html"
} else {
alert("Invalid Password")
}
} else {
alert("Invalid UserID")
}
}
//-->
</script>
Run Code Online (Sandbox Code Playgroud)
没有什么可以击败这个恕我直言.
Eve*_*oob 141
在一所大学中,它们仍然是无名的,它们的所有动作查询都通过URL而不是发布的形式传递.
在Google Bot出现并浏览了所有网址并擦除了他们的数据库之前,这件事情很有效.
Jul*_*iet 137
令人惊讶的是,没有人提起过社会工程学,但我从这篇文章中得到了一些启发.
总结:恶意用户可以购买几十个闪存驱动器,使用自动运行的病毒或木马加载它们,然后在公司的停车场深夜撒上闪存驱动器.第二天,每个人都出现在工作中,偶然发现闪亮的,糖果状的,不可抗拒的硬件,并对自己说"哦,哇,免费的闪存驱动器,我想知道它是什么!" - 20分钟后,整个公司的网络都被清理干净了.
Adr*_*zza 131
"Pedo mellon a minno","说朋友,进入",在Moria的大门上.
Joh*_*nFx 103
微软Bob
(信用:Dan的20世纪Abandonware)
如果您第三次输错密码,系统会询问您是否忘记了密码.
http://img132.yfrog.com/img132/8397/msbob10asignin15.gif
但是没有安全性,比如在输入之前继续提示输入正确的密码或在多次不正确的尝试后将其锁定,您可以输入任何新密码,它将取代原来的密码!任何人都可以使用任何密码"受保护"的Microsoft Bob帐户执行此操作.
无需事先验证.他的意思是User1可以通过错误输入密码三次来更改自己的密码,然后第四次输入新密码 - 永远不必使用"更改密码".
这也意味着User1可以完全相同的方式更改User2,User3的密码.任何用户都可以通过错误输入三次更改任何其他用户的密码,然后在出现提示时输入新密码 - 然后他们就可以访问该帐户.
http://img132.yfrog.com/img132/9851/msbob10asignin16.gif
joe*_*der 102
我有Joe X以前的家庭住址,需要知道他在同一个城市的新地址,但无法与他联系.我认为他每天都会收到一堆邮购目录,因此我随意拨打了See's Candies的800号码(与维多利亚的秘密,瑞士殖民地或任何其他大邮件相对):
我:"嗨,我是Joe X.我想你已经把我的邮件列表放在我的旧地址和我的新地址两次了.你的电脑是否在[旧地址]或[假地址]显示我?"
接线员:"不,我们会在[新地址]向您展示."
rah*_*hul 95
在文本框中给出1 = 1会列出系统中的所有用户.
Col*_*lin 76
作为一名生活的应用程序安全顾问,有许多常见问题可以让您通过某些东西获得网站管理员.但真正酷的部分是你可以购买一百万美元的袜子.
这是我的一个朋友在这个演出工作,但它的主旨是,某个现在非常流行的在线书籍(以及其他所有)商店中的商品价格作为隐藏字段存储在HTML本身中.回到早期,这个错误在很多网上商店中出现,他们刚刚开始弄清楚网络.很少有安全意识,我的意思是谁真的要下载HTML,编辑隐藏字段并重新提交订单?
当然,我们将价格改为0并订购了100万双袜子.您也可以将价格更改为负数,但这样做会使其后端计费软件缓冲区溢出的一部分结束交易.
如果我可以选择另一个,那将是Web应用程序中的路径规范化问题.能够做到foo.com?file=../../../../etc/passwd真是太棒了
Mat*_*lin 64
将数据库root密码提交到意外的源代码控制.这非常糟糕,因为它是Sourceforge的源代码控制.
不用说密码很快就改变了.
Max*_*Max 56
关键IT员工离开公司时不会更改管理员密码.
Gum*_*mbo 50
虽然这不是我见过的最糟糕的安全漏洞.但这至少是我发现自己最糟糕的事情:
一个非常成功的有声读物在线商店使用cookie来成功验证后存储当前用户的识别信息.但您可以轻松更改Cookie中的用户ID并访问其他帐户并在其上购买.
Eri*_* J. 47
就在.com时代的开始,我在海外的一家大型零售商工作.我们饶有兴趣地看着我们的竞争对手在我们面前推出了一个网上商店.当然,我们去尝试了......并且很快意识到我们的购物车混乱了.在稍微使用查询字符串后,我们意识到我们可以劫持彼此的会话.如果时间良好,您可以更改送货地址,但只保留付款方式......只需在购物车中装满您喜欢的商品后即可.
Mar*_*ell 45
当我第一次加入我目前工作的公司时,我的老板正在寻找一个潜在新客户的现有电子商务网站.这是在IIS和电子商务的早期阶段,我们认为安全性不是那么严格.
简而言之,他改变了一个URL(只是出于好奇),并意识到目录浏览没有关闭,所以你可以只删除URL末尾的页面名称并查看所有文件网络服务器.
我们最终浏览了一个包含我们下载的Access数据库的文件夹.这是整个电子商务客户/订单数据库,充满了数千个未加密的信用卡号码.
han*_*son 44
当我13岁时,我的学校为学生们开设了一个社交网络.不幸的是,他发现了一个安全漏洞,您可以将URI更改为另一个用户ID,例如"?userID = 123"并登录该用户.显然我告诉了我的朋友,最后学校的社交网络充斥着色情片.
不过会推荐它.
Ste*_*nst 43
我认为超级用户访问的空白用户名/密码字段是最糟糕的.但我见过自己的是
if (password.equals(requestpassword) || username.equals(requestusername))
{
login = true;
}
Run Code Online (Sandbox Code Playgroud)
太糟糕的一个运营商会产生如此大的差异.
小智 42
我将是一家银行,我是客户.我无法登录,所以我打电话给客户服务.他们问我的用户名,没有别的 - 没有问任何安全问题或试图验证我的身份.然后,他们不是将密码重置为他们存档的电子邮件地址,而是询问我将其发送到哪个电子邮件地址.我给了他们一个不同于我的档案的地址,并且能够重置我的密码.
基本上,黑客所需要的只是我的用户名,然后他可以访问我的帐户.这是一家大型银行,至少有90%的美国人会听说过.这发生在大约两年前.我不知道这是一个训练有素的客户服务代表,还是标准程序.
blo*_*art 36
我会分享一个我创造的.的种类.
多年以前,我工作的公司想在他们的ASP网站上编制索引.所以关闭我去设置索引服务器,排除了一些管理员目录,一切都很好.
然而,有些人不知道有人给了销售人员ftp访问网络服务器以便他可以在家工作,这是拨号的日子,这是他交换文件最简单的方式....他开始上传东西,包括详细说明我们服务标记的文件......哪些索引服务器编入索引,并在人们搜索"费用"时开始提供服务.
记住孩子,白名单不是黑名单.
Ser*_*gio 35
如何在线文档管理器,允许设置您可以记住的每个安全权限......
直到你进入下载页面... download.aspx?documentId = 12345
是的,documentId是数据库ID(自动增量),您可以循环每个数字,任何人都可以获得所有公司文档.
当提醒这个问题时,项目经理的回答是:好的,谢谢.但是之前没有人注意到这一点,所以让我们保持原样.
Rob*_*itt 35
最简单但价格实惠的一个是:
使用PayPal等引擎的支付系统可能存在缺陷,因为付款成功后PayPal的响应不会被检查.
例如:
我可以去一些CD购买网站并添加一些内容到购物车,然后在结帐阶段,通常在页面上有一个填写了paypal字段的表单,以及"付款"的提交按钮.
使用DOM编辑器我可以进入"实时"表单并将值更改£899.00为£0.01,然后单击提交...
当我在PayPal方面,我可以看到金额是1便士,所以我付了钱,PayPal将一些参数重定向到初始购买网站,他们只验证参数,如payment_status=1等,等等.验证已支付的金额.
如果没有足够的日志记录或自动发送产品,这可能会很昂贵.
最糟糕的网站是提供应用程序,软件,音乐等的网站.
小智 34
挪威的比萨饼送货有一个安全漏洞,你可以在他们新的和闪亮的互联网门户网站订购负面的比萨饼,并免费获得.
Gar*_*ett 27
当我使用Colloquy(IRC)时,密码字段会弹出,但我仍然在主屏幕上有焦点,所以当我点击进入并且没有意识到时,全世界都知道我的密码.
Dru*_*uid 26
我上次工作的公司的FTP用户名和密码与其域名相同.他们不再反复警告.
毋庸置疑,该网站没有花费很长时间.没有在线备份,所以他们基本上不得不重建整个事情.但它并没有就此结束.此事件发生后的新安全密码是相同的...添加了123.
TM.*_*TM. 22
我有一家公用事业公司没有使用autocomplete="off"他们的信用卡表格.
当然,他们不会存储您的信用卡信息(这是一件好事),但想象一下,当我支付第二个月的账单并且我的浏览器提供给我填写整个信用卡号时,我是多么的恐惧......
Ste*_*fan 21
瑞典的在线DVD租赁商店在查询字符串中发送了纯SQL语句.
如果您在菜单框中选择了"Comedy"类别,则会将" select*from categories where category = 2 "作为查询字符串发送到movielist-frame,然后执行SQL语句并显示符合条件的所有电影.
将电影添加到您的订单时也是如此.
只需将查询更改为"从电影中删除*","从订单中删除*"就可以成为该公司的一天.
Sar*_*els 20
有些朋友在大学一起上课.他们发现教授发布了所有的家庭作业解决方案,即使是尚未到期的家庭作业,也没有评分,或者甚至没有被分配.教授只是在课堂网页中嵌入了链接或解决方案,并在HTML评论中对其进行评论,直到作业被收集和评分为止.
Joh*_*ens 17
不是严格意义上的安全漏洞,更多的是当时很多新手服务器管理员都不知道/关心的"功能".
在1999-2001左右,我在Frontpage和安装在面向公众的网站上的解锁Frontpage服务器扩展中获得了很多乐趣.
当您安装了Frontpage时,您可以在Internet Explorer中获得这个非常方便的"在Frontpage中编辑"按钮.
访问某个站点时,例如www.foo.com,如果您单击Internet Explorer中的"在Frontpage中编辑"按钮并且服务器管理员未正确完成其工作,那么Frontpage会愉快地打开虚拟目录的完整目录结构并允许您阅读/编辑内容.
这适用于从小型乐队设置到大型公共组织的许多站点.
当我找到一个开放的服务器时,我总是向"网站管理员"发送一封电子邮件,我曾经从一家在线零售商处获得了一张50英镑的礼券,用于提醒他们.
令人震惊的东西真的.
免责声明 - 我需要指出Frontpage是在我当时给出的标准构建PC上,而不是我自己选择的!
Tho*_*aaf 17
Windows 95和98有史以来最好的bug.如果您只是按下取消,您将使用管理员权限登录:)在我父亲的工作中度过了美好时光:D
Set*_*eth 16
我的银行曾在我的借记卡上发现"可疑交易".他们建议我取消它并获得一个新的.
当我在等新卡时,我需要撤回.所以我走进银行,给了一个女人我的旧卡,并解释说,"这张卡最近被取消了,但我需要一些钱.你能从这个帐户中拿一些吗?"
当我走出银行,放入口袋里时,我意识到我刚刚从一个账户中取出了一张使用取消卡的钱而没有被要求出示任何形式的身份证.
Jus*_*gan 16
对我来说,最糟糕的,最恶毒的,最危险的,犯罪的疏忽,但却完全破坏整个系统的安全性而又奇怪的优雅将永远是来自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);
}
Run Code Online (Sandbox Code Playgroud)
只是凝视它一分钟.想想你能用你所做的一切.女士们,先生们,现在这是Lovecraftian的杰作.
小智 15
1-800多米诺骨牌将提供与任何目标电话号码相关的不公开地址.当系统提示您是否打电话时,请拨打您拨打的电话号码.系统将提示您输入新的电话号码,然后系统将向您回读与此电话号码关联的姓名和地址.输入目标的电话号码,您现在可以输入他们的姓名和地址.这在自动订购系统中非常普遍,如果多米诺骨牌已经解决了这个问题,那么还有数百个.
Ian*_*oyd 15
输入所需的用户名 iboyd
输入所需的密码: *********
该密码已用于该用户名.请选择其他密码.
dia*_*dem 15
回到高中时,实验室正在运行早期版本的Windows.政府在安全计划上花费了大量资金.
负责实验室的绅士来到我面前,让我绕过系统,看看它是否安全."没关系,你不会遇到麻烦."
我重新启动,点击f8,当它询问我是否要加载安全程序时,点击N,Y加入其他所有内容.
Der*_*k H 14
在我尝试的免费网络主机上,"忘记密码"方法中存在逻辑错误,通过电子邮件向您发送密码 - 如果您没有输入电子邮件地址(辅助电子邮件是可选的) ,它通过电子邮件发送每个没有提供辅助电子邮件的用户的主要地址的密码.
我和其他数百人有一天收到了一封包含数百个用户名和密码的电子邮件,密码以明文形式显示.
Cha*_*had 13
我曾经在一家销售点公司工作.他们的软件被许多披萨关节使用.
由客户更改默认密码.默认信息打印在用户手册等中.:)
好吧,一些在这些披萨店工作的孩子猜测他们没有改变root密码(基于Unix/Linux的系统).然后他们继续买他和他的朋友在比萨饼联合会注意到之前的近一年内免费送披萨到他家.每当我想到这份工作时,它都会让我发笑.:)
小智 13
一旦我与一家公司合作,我就必须通过加密来共享信息.他们为我提供了一个GPG密钥对 - 包括公钥和私钥,而不是仅仅共享公钥和高度机密的信息.
我必须向他们解释这个过程是错误的,他们意识到他们已经这么做了很长时间.
And*_*nea 13
我曾经在一个名为ROL.RO的本地互联网门户网站(当时由PCNET拥有的罗马尼亚OnLine)中发现了一个错误.他们有一个免费的网络邮件系统.我想要一个(很容易猜到哪个)用户名,但它已经被采用了.
由于好奇,我进入了"忘记了我的密码"页面,输入了我想要的(但已采用的)用户名.然后,在提交时,我收到了一个空白的安全问题.
哇...让我们看看他们是否跛脚.我确定答案文本框是空的,我提交了
"恭喜,请输入您的新密码".
我输入了密码并劫持了帐户.
他们...... PHP脚本中可能发生的事情是他们将数据库中的null(在答案中 - 当然是用明文保存)与我提交的空字符串进行比较.让它们"相等"引导我进入下一步,重置密码.
是的,跛脚.
cyb*_*ard 13
信不信由你,我最近在一个网站上发现了这个:
eval($_GET['code']);
Run Code Online (Sandbox Code Playgroud)
服务器甚至没有安全模式......
ste*_*tef 12
if( $session['role'] = "admin" ) //grant admin rights
Run Code Online (Sandbox Code Playgroud)
只需关闭一个字符("="而不是"==")就可以将管理员权限授予任何已登录的人.您真的有罪.
si6*_*618 11
我将发现用于报告的ODBC DSN,其中密码与用户匹配,并且用户属于数据库服务器管理组.
因此,任何具有此ODBC DSN的PC都可以使用任何ODBC兼容工具通过报表用户读取/更改所有数据(更糟糕).无需授权,身份验证就像您可以获得的一样弱.
我在公立医院工作,该软件几乎安装在该州每个政府医院的每台PC上,数据库服务器包含各种敏感医疗数据(完整的患者详细信息,实验室测试结果等)
最糟糕的是,我们正式悄悄地报告了安全漏洞,并且在我在那里工作的那两年里仍然没有修复,那是5年前的事.
Don*_*son 11
我不知道这是否是最糟糕的,因为我看到一些非常糟糕,但是:
多年前,我工作过的地方引入了一个名为FOCUS的系统.不知道它是否还在.它非常适合报告,我们开发并教授了一千或两个非IT人员如何制作自己的报告.非常便利.他们可以做基本的报告,有些人可以做中等难度的事情,IT可以帮助处理更难的事情.
所有报告数据都以FOCUS自己的格式定期复制到影子数据库.对于更敏感的数据,我们设置了加密数据的安全选项.一切都很好.
所以,有一天,我的老板打电话给我,我们丢失了一个敏感数据库的密码.在这种情况下很难重现数据,所以他问我是否可以打破安全性.我没有作为黑客的经验,所以我花了大约5或6个小时给他密码.我开始创建一些测试文件,并使用不同的密码加密它们.我发现更改密码中的一个字符会改变加密文件中的两个字节,特别是一个字节的高nybble和另一个字节的低nybble.嗯,我说.果然,他们将密码存储在加密的前80个字节中,但是通过将字节分成nybbles来模糊密码,并将它们存储在可预测的位置.
在此之后不久,编写了一个在VM/CMS系统下运行的REXX脚本,并告诉我们任何加密数据库的密码.
那是很久以前 - 在九十年代初期,我确信他们已经解决了这个问题.嗯,非常肯定.
que*_*rin 10
大约3年前,我为我们州的一个大型非营利组织建立了一个网站.当将应用程序部署到他们的Web主机服务器时,我注意到一个名为"cc.txt"的奇怪文件或者在他们的公共站点中显而易见的类似文件.它是在他们的网络根目录下,获得服务,并且是所有捐赠者姓名,地址,信用卡号,有效期和CVV/CVC代码的csv文件.我无法计算我提出问题的次数 - 首先是我的老板,然后是我们的公司会计师,客户的IT主管,最后是客户的总裁.那是3年前的事了.该文件仍在提供,甚至可以用Google搜索.它已经更新.当我得到他们时,我倾向于不回应他们的捐款请求.
看到有人忘了锁门的门......
或者,看到一些JavaScript通过Ajax调用执行了一些SQL.唯一的问题是要运行的SQL是用页面呈现的,然后传递给服务...
我个人发现的最糟糕的事情是在一所大学里,所有系统(包括教授办公室)都使用X机器.单个服务器托管了所有这些X会话......
有趣的是,您可以启动一个新的X应用程序(时钟是最喜欢的,但任何X应用程序都可以工作)并选择它显示的终端.使用快速脚本,您可以在校园内每个实验室/办公室的每台计算机上启动它...
当然,真正暴露这个安全漏洞的应用程序是伪shell登录,其输入被记录到文件中.
它运行了一个星期,并淹没了数百名学生和教授的用户名和密码,并产生了几个非常不满意的管理员.
不是技术安全漏洞,而是安全漏洞:
我的银行卡最近被自动取款机吃掉了,我花了好几个星期才收回它.当它终于抵达银行时,银行的一位女士打电话给我询问我是否要拿起我的卡或让他们通过邮件发给我.她还告诉我,如果他们发送它,他们会禁用它,直到我打电话给他们确认它安全到达我家.
我拿到了一张带有确切联系信息的短信,其中包括一条说明我需要打电话以重新启用该卡的说明.我刚刚打电话给他们,给了他我的名字和账号,他们已经在卡片上打印了,他们重新启用了卡片.
基本上,如果有其他人抢过那封信,他们就会拿到卡和银行的号码以及说服银行确实是我打电话所需的所有信息.所以,那里不是一个非常好的安全系统.
有一家银行通过其网站提供一些服务.开发人员考虑了作为整个系统的有效用户登录的任何人,并且他们使用URL来识别帐号,因此只需更改URL上的ID,您就可以查看其他帐户的余额.
对于认为身份验证和授权相同的Web开发人员来说,这真的非常糟糕.
银行不通过其网站转账也是好事,否则有些人会富裕;-)
我继承了一个客户端项目到baby-sit:一个ASP.NET项目(内置于1.1),它是50%编译的DLL(没有源代码)和50%代码隐藏的JIT编译.
整个网站应该只是会员 - 除了最初的开发人员已经建立了一个后门:只需提交一个空白用户名和密码的登录表单,你会发现自己以一个秘密的超级管理员身份登录:做任何事情,看到一切.
你猜对了:所有的身份验证代码都隐藏在预编译的DLL中.最糟糕的是当我被告知"它不在错误列表中,客户端不会支付,所以留下它".所以我做了,今天它仍然存在.
login.jsp?type=user&redirct=/home.jsp&userid=12345&username=username&password=mypassword
Run Code Online (Sandbox Code Playgroud)
这发生在一个非常大的网站上.我看到这个时,我的下巴掉了下来.
考虑到这一点,我见过的最糟糕的安全漏洞就是那个管理电子门锁的人说"你是什么意思,锁不知道公众假期"?
是的,每个星期一 - 星期五,自门系统安装以来恰好是公众假期,前门在08:00-17:30解锁.
这不是安全漏洞,而是一个企业营销自己的产品作为高安全性(这是他们的主要特征之一)的安全耻辱
它是关于合作伙伴的页面上的"安全登录".它在这里:
第一次通过电子邮件获得纯文本密码,一旦你登录,当然不要在第一个屏幕上看到等等等等,你只需要运行你想要的东西(文档或软件),然后注销.
但这是诀窍,下次,您尝试登录密码不再有效,因为您应该在每次在个人资料的网站上发布新密码.因此,在交换了几封电子邮件之后,他们发送了我(通过电子邮件)大约30个枚举一次性密码的列表,我每次只能使用它一次.(这花了一个星期和几封电子邮件重新谈判这个清单)
所以我打印了这个密码列表,把它贴在我办公桌前的墙上,每次登录时都用笔涂掉一个密码.如果有人走到我的办公桌前,我不在乎看这个清单.
public class AuthenticationServlet extends HttpServlet
{
private String userName;
private String password;
protected doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
userName = request.getParameter("userName");
password = request.getParameter("password");
authenticateUser(userName,password);
......
}
}
Run Code Online (Sandbox Code Playgroud)
显然,正如有人在自动负载测试期间发现的那样,单身和缺乏同步可能会导致安全问题.
不是最坏的,但足以造成一些真正的伤害.如果经常被忽视,你会感到惊讶.特别是当人们使用这些流行的框架时,
yourwebapp.com/items/edit.php?id=4
yourwebapp.com/items/delete.php?id=4
Run Code Online (Sandbox Code Playgroud)
不确保项目的所有者是请求页面的项目的所有者.这意味着,您可以登录您的帐户,然后编辑或删除整个应用程序中的任何人的项目.
简单的检查可以防止大量损坏.
$item = // find your item by the $_GET[ 'id' ];
if( $_SESSION[ 'user_id' ] != $item[ 'user_id' ] ){
// kick em out they dont belong...
}
Run Code Online (Sandbox Code Playgroud)
我在一个受欢迎的赌场网站上工作.闪光前端不仅仅是一个哑终端.他们有一个视觉错误,错误管理的头像图像.在我和我的伙伴期间,我们解决了这个问题 - 我们陷入了一个完全独立的缺陷.
我们观察了从客户端到服务器的流量,发现它是base64编码的.认为它会有所帮助,建立一个简单的python终端脚本,可以利用它.我们发现客户端会向服务器发送命令和逻辑信息.
几分钟之内,我就能够简单地输入我拥有的筹码数量,获胜者以及我拥有的牌,只需用纯文字书写即可!
另一个主要缺陷 - 用户密码被加密,管理员密码没有使用与以前相同的漏洞,我获得了访问数据库信息,找到了管理员登录并接管了系统.
也许这里有一个轶事故事(但因为这是我发现的最严重的安全漏洞)......
有一家公司向一些公司/组织(包括我们的公司/组织)出售了一个定制的CMS(用于网站).他们使用了相当多的(主要是"LGPL")组件.很多客户(包括政府).
结果:在他们构建的每个站点上,可以(无需输入凭据)更改/删除/更改/上载网站上的每个文档/文件和/或图像.
我们一发现就报告了这个空洞的安全漏洞,所以它可能不会导致直接损坏(但它可能很容易).
小智 6
在我的情况下并没有那么糟糕,因为数据不那么敏感:
我得到一个Excel文件,其中包含要更新的宏,每个工作表都被锁定,宏部分受密码保护.我得到了密码,但我想我也可以尝试破解密码.
我发现一个程序在大约十分钟内完成,其中大部分可能只是下载时间.这个奇迹产品能够如此快速,轻松地突破Excel安全性是什么?OpenOffice.Org.
我不确定Office 2007是否在这方面有所改进,但它让我害怕有多少非技术人员可能正在使用Excel操纵敏感信息并认为它是安全的.然后,那些类型的人可能甚至不知道它提供的"安全"功能.
我对Ken Thompson进入UNIX的"后门"投了反对票.
这是一个人们正在学习更多内容的链接: Thompson的Trojan编译器
我认为最糟糕的原因是,当法官和其他人认为在这种情况下取得进展的最佳方式是公开讨论时,这种情况又回来了.
所做的就是教一堆脚本小子一个新的非常强大的技巧.
Select * from user where user_id = '*userId*' and access_level = 0 or access_level = 1;
Run Code Online (Sandbox Code Playgroud)
如果查询返回任何行,则它们被允许进入系统.圆括号"access_level = 0 or access_level = 1"可以完成他们的预期.相反,只要有一个access_level1的用户,任何人都可以进入.
我讨厌承认这一点..但我发现了如何破解2005 VSS有一天,当我没有管理员密码的存储库(讨厌的部分是在其使用VSS:d)
如果您创建具有与VSS帐户同名的管理员权限的本地计算机帐户,并登录,VSS会说:
"Hey great .. you are logged on to the computer with an account name that
I recognize as being the same as one of my accounts,
and your account has admin privileges on the computer ..
so I am going to bypass *my* security and give you admin
privileges to all of VSS!!!!"
Run Code Online (Sandbox Code Playgroud)
那个黑客是关于我在谷歌尝试破解VSS密码时看到的第一个链接
当然它不会提供您缺少的VSS密码
在我的旧大学,他们将用户密码以明文形式存储在cookie中.
这本身就是可怕的,但是为了增加对伤害的侮辱,他们将它们存放在饼干中*.university.edu.au.当然,所有的学生和员工的页面都是这样的university.edu.au/~user.
<?php
var_dump($_COOKIE); // oops.
Run Code Online (Sandbox Code Playgroud)
有许多站点使用代理文件来管理图像或其他文件.没有检查有效性的路径.
所以.
getfile.php?file=../../../../etc/passwd
要么
getfile.php?file=../index.php (带有所有密码的纯文本)
令人惊讶的是,有多少网站仍然存在这个漏洞.只需google获取getfile.php,你就可以将一天放入盒子中.
好吧,简单一点
exec unchecked_parameter_from_the_web
Run Code Online (Sandbox Code Playgroud)
在Python中解析用户给出的字典文字.那太可怕了.
我被告知我们的交换机部门的哔哔声系统有一个可用于发送消息的网络前端虽然它很丑陋而且不是非常用户友好所以我想看一看,看看我们是否可以使用表格我们的主要内部网站点,并通过我们的服务器将值提交给他们.
有一个简单的用户名/密码表单来访问具有用户和管理员角色的系统,所以我看看我是如何处理安全性的.我发现存储了以下两个cookie:
Username: [username I had used]
Admin: False
Run Code Online (Sandbox Code Playgroud)
只是为了确保它像我想的那样糟糕,我打开了Firefox,给了它网址,创建了2个cookie,我的用户名Admin: True和lo,看到我有Admin访问权限.只是为了检查它我创建了一个没有任何问题的新用户.更糟糕的是,在本地使用用户名意味着日志会显示我想要给予的任何人的行为.
通过默默无闻的安全措施不起作用,但当你在银盘上给人们所需要的东西时,它的作用要小得多.
我很惊讶我还没有看到提到的微软wga验证黑客.
在允许您访问下载之前,您可以下载验证Windows副本的控件,或者您可以将以下javascript行粘贴到地址栏中并点击返回.
javascript:void(window.g_sDisableWGACheck='all')
Run Code Online (Sandbox Code Playgroud)
它旨在让用户一次验证并下载多个项目,但由于它存储在客户端,因此很容易操作!
在2007年,一个相当大的机构的国防部网站有一个错误的配置导致IIS Web服务器提供原始代码,主页上有硬编码的用户名/密码和数据库服务器信息.幸运的是它被抓得很快,但我见证了它,这非常令人震惊.毋庸置疑,他们的网站被网络工程师脱机,直到开发人员修复了错误的代码.
我见过的最糟糕的安全漏洞是当人们不在他们的firefox帐户上使用主密码时,即使他们正在保存所有密码.这意味着任何可以访问您的帐户文件的人都可以窃取您的所有密码.使用主密码.
小智 5
"网络编程安全101"风格中最好的错误是招聘机构,其搜索页面提供了"下一页"链接,这只是获取更多工作列表的SQL语句.您可以轻松地将此URL更改为任何其他SQL语句,包括"drop table X".如果你这样做,他们的整个网站都会死掉.
从记忆中解释,但它很接近......
<form action="secretpage.html" id="authentication"
onsubmit="return document.forms.authentication.password.value == 's3cr3t'">
Enter password: <input type="password" name="password"><br>
<input type="submit" name="Login" >
</form>
Run Code Online (Sandbox Code Playgroud)
我认识的一个人用它来保护他网站的"私人区域".起初,他不想相信我,即使他的浏览器也有这种不稳定的"查看源"功能.
我曾经有过一个工作,其中有一个用Java代码编写的安全层,用于检查用户是否有权编辑数据库表列.这就是函数的样子:
public boolean canEdit(User user, DBColumn column) {
if(true) {
return true;
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
在1970年代,斯坦福大学将IBM 2741硬拷贝终端分布在校园网络中,与IBM 360/67网络连接.帐户密码是三个字符.在登录期间,密码提示将叠印一个大约九个随机大写字符的三位blob,因此随后键入的密码应该被blob屏蔽.但是,每个人都用小写字母键入他们的密码,这对于识别大写的背景blob来说是微不足道的.这意味着您通常可以走到任何终端,仔细阅读前一个用户通常留下的硬拷贝,并轻松登录他们的帐户和密码.
小智 5
我见过一位高端法国国防承包商的高层管理人员使用Skype进行非常机密的谈话(据记载,Skype使用的是很久以前破坏的RC4加密算法).
我猜他们的无知可以被赦免,因为他们也使用了Windows和MS-Word(为了记录,MS-Word保存了以前使用此模板编写的所有文档的历史记录).
这引发了一些有趣的问题,关于纳税人的资金流向何处 - 以及是否明智地使用了这些资金.
我工作的公司有很多安全错误......以下是一些更糟糕的事情:
史诗失败.