你见过最糟糕的安全漏洞?

si6*_*618 413 security

你见过的最严重的安全漏洞是什么?保留细节以保护有罪者可能是一个好主意.

对于它的价值,这里有一个问题,如果你找到一个安全漏洞该怎么办,另一个有一些有用的答案,如果一家公司没有(似乎)回应.

Joh*_*fer 646

从早期的在线商店:

通过在购物车的数量字段中输入.1获得90%的折扣.该软件正确地计算了总成本为.1*成本,而人工打包订单只是简单地掩盖了奇数"." 在包装数量前面:)

  • 杰夫贝索斯提到,在亚马逊的早期阶段,你可能会有一定数量的书籍,而亚马逊会将你的账户记入账户(并且可能等到你把它发给他们).请访问http://www.youtube.com/watch?v=-hxX_Q5CnaA,请访问0:47 (81认同)
  • 这绝对是支持使用强类型系统的论据. (75认同)
  • 也许你本应该要求0.10%的量.;) (58认同)
  • 那是什么网站?我想要90%的折扣! (54认同)
  • 本来希望看到实际交付了他付出的.1硬盘的客户的脸. (10认同)
  • 同样在早期,我喜欢用cookies跟踪的优惠券使用情况.如获取一张免费光盘,删除cookie,再次使用免费光盘优惠券,删除cookie等. (5认同)
  • @John Stauffer:在我相信这个之前我必须先了解这个网站吗? (3认同)
  • 有一些网站可以"构建自己的"计算机,其中一些工作方式是您可以通过以负面价格向卡中添加产品来降低计算机与基本型号的比例.当你最终到达购物车屏幕时,你可以购买它们的倍数并降低总价.一个类似的概念,真的. (3认同)
  • 这是教科书的经典例子. (2认同)
  • @Twith2Sugars,是不是你已经从他们那里订购了你想要的东西?;-) (2认同)
  • 它不是有史以来最糟糕的安全漏洞.这是最好的一个.:) (2认同)

Jul*_*iet 575

最不可原谅的安全漏洞,不幸的是,这是一个非常普遍且容易找到的安全漏洞,是谷歌黑客攻击.例证:

http://www.google.com/search?q=inurl%3Aselect+inurl%3A%2520+inurl%3Afrom+inurl%3Awhere

令人惊讶的是,互联网上的许多页面,特别是政府网站,通过查询字符串传递SQL查询.这是最糟糕的SQL注入形式,它完全不需要查找易受攻击的站点.

通过微小的调整,我已经能够找到phpMyAdmin的无保护安装,MySQL的无保护安装,包含用户名和密码的查询字符串等.

  • 小鲍比桌再次罢工...... http://xkcd.com/327/ (95认同)
  • OMFG ......下次我有一个糟糕的一天,我会去一些桌子 (86认同)
  • http://johnny.ihackstuff.com/ghdb/ (25认同)
  • 我真正喜欢这个例子的是第一个结果来自Oracle博客. (11认同)
  • 哦,亲爱的上帝,多么不可思议的愚蠢.那就是我用手中的盒子将开发人员带到人力资源部门. (6认同)
  • 你不知道我有多么想要打倒一些这些网站!幸运的是,我有很好的冲动控制! (4认同)
  • 为什么有人会这样做 - 它有不好的想法写在它上面? (4认同)
  • 公平地说,其中一些(包括第一个结果,@ raviaw)恰好恰好在页面标题中有这些单词而根本不是安全漏洞.但还是...... (4认同)
  • @Hamish Grubijan:有些网络开发人员直接在URL(GET)中传递查询,而无需在其他网站上重新验证.您可以基本传递该URL中的所有内容,它将在数据库上执行. (4认同)
  • 这是编写灵活代码的一个很好的例子.写链接时,您可以轻松地做任何您想做的事情!Hurf durf. (3认同)
  • 谷歌能找到它真是太神奇了.在我的网站上,我有一些页面没有链接到它们,它仍然设法找到它们. (3认同)

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

  • 没有什么比白痴大脑更不安全了 (25认同)
  • 这种特殊的交换极不可能实际发生(当他们试图掩盖某些内容时,谁会输入"呃"),但仍然很有趣. (7认同)
  • 曾经一直在Runescape上发生. (2认同)

Eri*_*ert 339

我在微软早期的真实故事.

你还不知道害怕,直到你醒来,看到ZDNet.com标题那天早上是一天" 最坏的Internet Explorer的安全漏洞曾经被发现在'胡说’ "其中"胡说"是你自己写6个月以前的代号.

紧随自己动手我检查这些改变日志,发现有人在另一支球队 - 那些我们信任更改产品 - 已经检查了我的代码,改变了一堆的安全注册表项设置没有很好的理由,检查回来,从未得到代码审查或告诉任何人.直到今天,我还不知道他认为他到底在做什么; 不久之后他离开了公司.(他自己的.)

(更新:对评论中提出的问题的一些回应:

首先,请注意我选择采取慈善立场,即安全密钥更改是无意识的,并且基于疏忽或不熟悉,而不是恶意.我没有任何证据,并且认为将错误归咎于人类的错误是明智的.

其次,我们的登记系统现在比12年前强大得多.例如,如果没有签入系统通过电子邮件将更改列表发送给感兴趣的各方,则现在无法签入代码.特别是,在船舶周期后期进行的更改在它们周围有很多"过程",这确保了正确的变化以确保产品的稳定性和安全性.)

无论如何,该错误是一个不安全的对象从Internet Explorer被意外释放,被标记为"安全的脚本".该对象能够将二进制文件 - 实际上是OLE自动化类型库 - 写入任意磁盘位置.这意味着攻击者可以精心创建一个包含的恶意代码的特定字符串类型库,保存到这是一个已知的可执行文件位置的路径,给它的东西扩展,将导致脚本运行,并希望以某种方式用户会不小心运行代码.我不知道使用此漏洞的任何成功的"真实世界"攻击,但有可能用它来制作一个有效的漏洞.

我们快速发送了一个补丁,让我告诉你.

我在JScript中引起并随后修复了更多的安全漏洞,但是没有一个漏洞能够接近人们所做的宣传.

  • 可以说,这实际上是2个安全漏洞; 另一个是如何在没有任何人注意到/批准变更的情况下将代码放到生产构建服务器上;-p (81认同)
  • "永远不要归咎于愚蠢可以充分解释的恶意." - Hanlon的剃刀 (80认同)
  • 谁在上班前检查ZDNet? (40认同)
  • 没有一个源控制系统可以在Microsoft中使用.如今,大多数团队都使用Source Depot或Team Foundation.不出所料,Visual Studio产品团队通常使用Team Foundation.你知道,吃自己的狗食. (15认同)
  • "已经检查了我的代码,没有任何理由改变了一堆安全注册表密钥设置,重新检查了它,从未得到代码审查或告诉任何人有关它" - 听起来不像我的无能,它听起来像某人的恶意意图*确切地知道他们在做什么. (8认同)
  • 根据在签到中做出的其他变化,我选择采取慈善立场,即无能,而不是恶意.但就像我说的,我们永远不会知道. (4认同)

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)

最后一位收件人是最幸福的;)

  • 您是在谈论存储纯文本密码的事实还是从未清除emailBody的事实?我甚至不确定哪个更糟. (226认同)
  • 你的意思是不使用StringBuilder?:D(开个玩笑.) (208认同)
  • 作为注册过程的一部分,我绝对不喜欢给我发回电子邮件的系统.这有两个缺点:1.他们将我的明文密码存储在他们系统的某个地方.如果不是他们的永久用户数据库,绝对是他们的注册处理系 它是通过EMAIL发送的,无论是纯文本还是HTML,通过互联网上的邮件中继进行SMTP通信.有一些中间人可以拦截这个.至少,如果您觉得需要向我发送包含安全信息的电子邮件,请让我指定我的公共PGP密钥来加密它! (141认同)
  • @Kristof - 我猜他的意思是最后一个用户获得所有用户和密码的列表.:) (58认同)
  • 我使用MD5哈希来保护数据库中的密码一次.但是在我通过彩虹表运行结果并匹配大约50%的密码之后......我认为这是加盐的好时机. (16认同)
  • @Jesse:实际上,如果您在注册时发出明文密码,那么这并不意味着它会以任何形式存储在该表单中.您刚刚通过网络以明文形式提交,服务器接收到它,发送电子邮件然后对其进行哈希处理并将哈希存储在数据库中. (8认同)
  • 我做了类似的事情,除了我使用PHP邮件程序并忘记每次循环通过一组收件人时清除我的收件人数组.因此,不是发送给最后一个人的疯狂长电子邮件,第一个人被垃圾邮件200次(可能会更多,但我们从我们的ISP发送电子邮件上限) (4认同)
  • 哈哈......这很有趣,我有时也会这样做.他没有清除`emailBody`他只是附加了它,所以每个用户都收到了他上面的每个用户的电子邮件和pw;) (3认同)
  • @Codism Kristof答案的第二部分正是唐所说的,不太明显 (3认同)
  • 当我和我一起测试它时它起作用了.:) (3认同)
  • 我怀疑这会不会透露给公众 (2认同)
  • @Si如果可以检索密码,就我而言(作为用户),它并不安全. (2认同)

Ste*_*fan 206

旧的IBM System 36哑终端有一个键盘组合,开始录制宏.因此,当终端未登录时,您可以开始录制宏并将其保留在该位置.下次有人登录时,按键将记录在宏中,当记录最大允许按键时,记录将自动结束.稍后再回来并重播宏以自动登录.

替代文字


Mat*_*ino 204

我见过的最糟糕的安全漏洞实际上是由您自己编写的,并导致Google Bot删除我的整个数据库.

回到我第一次学习经典ASP时,我编写了自己的基本博客应用程序.包含所有管理脚本的目录在IIS上受NTLM保护.有一天,我搬到新服务器,忘了重新保护IIS(oops)中的目录.

博客主页有一个指向主管理屏幕的链接,主管理屏幕的每个记录都有一个DELETE LINK(没有确认).

有一天,我发现数据库中的每条记录都被删除了(数百条个人条目).我以为有些读者已经闯入网站并恶意删除了所有记录.

我从日志中找到了:Google Bot已经抓取了网站,然后是管理员链接,然后继续跟踪所有DELETE LINKS,从而删除了数据库中的每条记录.我觉得我应该得到谷歌机器人无意中遭受的年度最佳Dumbass奖.

谢天谢地,我有备份.

  • 这就是为什么你应该总是POST来改变行动. (96认同)
  • 猜猜它显示了一个多么常见的错误. (13认同)
  • @recursive:true,但如果目录没有受密码保护,则不会阻止人为删除所有内容. (7认同)
  • 不,你不值得这个奖项.如果发生这种情况并且你没有*备份,你本来应得的. (7认同)
  • 我有浏览器插件预取链接这个问题.我曾经在一个博客网站工作,当一个用户报告她博客上的所有评论都神秘地消失时,我们感到困惑. (2认同)

Kai*_*tsu 187

我见过的最糟糕的漏洞是Web应用程序中的一个错误,其中提供一个空的用户名和密码会以管理员身份登录:)

  • 懒惰开发人员的错误或功能?:) (144认同)
  • 大多数公司在锁定帐户之前会给您三次尝试以给定的用户ID登录.因此,使用三个错误密码锁定某人*elses*帐户非常容易. (20认同)
  • 为什么你会用一个用户名做一个喜欢?...所以当我输入Adam时输入adm我可以成为管理员 (11认同)
  • 我见过这样的代码.这通常是因为用户查找使用LIKE,如"SELECT*FROM [User] Where UserName LIKE'%"+ userName +"%'".由于管理员通常是数据库中的第一个用户,因此它返回该用户. (9认同)
  • 也发生在我身上. (3认同)
  • 我在许多针对LDAP目录进行身份验证的企业Web应用程序中都看到了这一点.在LDAP中,空密码会导致*成功**匿名*登录.匿名用户做不了多少,但是使用这种机制的webapps没有进行检查 - 他们只是假设"成功=正确的密码"! (3认同)

Joh*_*nFx 174

一旦在网站的URL上注意到这一点.

http://www.somewebsite.com/mypage.asp?param1=x&param2=y&admin=0
Run Code Online (Sandbox Code Playgroud)

将最后一个参数更改为admin = 1给了我管理员权限.如果你要盲目地信任用户输入,至少不要发电报你正在做的事情!

  • 所以也许他们应该使用&admin = JOSHUA (38认同)
  • 这是一个方便的功能;)你没见过WarGames吗?像"每个优秀的开发人员都为他们的系统添加了一个后门"之类的事情,呵呵. (19认同)

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)

没有什么可以击败这个恕我直言.

  • 不用担心,只要网站受版权保护,DMCA就会提供100%的保护.你不被允许"绕过"Javascript. (68认同)
  • 恭喜,你是无辜的,太糟糕,说服陪审团要花费300k (46认同)
  • ilya:它是Javascript,所以它对用户可见.看到之后,您可以转到http://officers.federalsuppliers.com/agents.html,绕过任何类型的控制. (29认同)
  • 我想这可能不像你想象的那么愚蠢.这个微不足道的密码可能就像按钮"是的,我来自联邦政府",区别在于试图滥用它的人,如果被抓住,也可以因"提供虚假凭证"(或他们如何称呼它)而被起诉? ) (21认同)
  • @Steve Hanov:你有一个有趣的定义"规避"如果我在我的浏览器中输入该网址...甚至复制/粘贴它...我没有绕过任何东西,我只是用我的浏览器去我放在地址栏中的地址.这是Web浏览器的预期目的之一. (13认同)
  • 评论是非常正确的:"这个脚本允许人们进入`. (12认同)
  • @Steve如果你使用匿名终端,如网吧或图书馆,没有人能找到你.如果商店在外面留下一些产品,它就不会在早上出现.警察不会做太多的事情而不是填写文书工作,因为他们有更好的事情要做,而不是掩盖别人的愚蠢. (4认同)
  • 当我在高中时,学校有一个系统,通过输入学生证和PIN码来获取你的成绩.有效的PIN#存储在页面上的javascript源中.值得赞扬的是,PIN#是加密的,但他们使用了一种"聪明的"自制加密,这对于一个无聊的少年来说是无法匹敌的. (4认同)
  • @R.Bemrose:所以你已经成功地认为任何互联网浏览器都可以归类为DMCA下的黑客工具. (2认同)

Eve*_*oob 141

在一所大学中,它们仍然是无名的,它们的所有动作查询都通过URL而不是发布的形式传递.

在Google Bot出现并浏览了所有网址并擦除了他们的数据库之前,这件事情很有效.

  • 希望他们能够从谷歌缓存中检索它们. (34认同)
  • 良好的旧SQL注入设计.我已经使用了内置了"功能"的报告功能. (18认同)
  • @ICodeForCoffee:这里的SQL注入在哪里?这只会混淆GET与POST的目的.新手网络开发者这是一个相当常见的错误.我记得读过一篇关于这个确切问题的每日WTF文章. (18认同)
  • 这里真正的问题是Googlebot可以擦除数据库而无需进行身份验证. (14认同)
  • 哈哈,然后起诉谷歌 (5认同)

Jul*_*iet 137

令人惊讶的是,没有人提起过社会工程学,但我从这篇文章中得到了一些启发.

总结:恶意用户可以购买几十个闪存驱动器,使用自动运行的病毒或木马加载它们,然后在公司的停车场深夜撒上闪存驱动器.第二天,每个人都出现在工作中,偶然发现闪亮的,糖果状的,不可抗拒的硬件,并对自己说"哦,哇,免费的闪存驱动器,我想知道它是什么!" - 20分钟后,整个公司的网络都被清理干净了.

  • 自动运行是邪恶的. (69认同)
  • **@ mmyers:**禁止闪存驱动器不是好方法.打破自动运行/自动播放. (22认同)
  • 幸运的是,我总是可以从Linux Live CD启动并从那里检查闪存驱动器. (13认同)
  • 前一段时间阅读,另一种方法(从软盘时代开始).在办公室的走廊里住一张标有"会计数据 - 保密"的启动感染软盘,等待5分钟.不可抗拒的! (10认同)
  • @Jay - 不幸的是,有多少人会查看文件,然后双击它们"看看他们做了什么"?禁令很多次都是必需品,因为人们不会想到. (6认同)

Adr*_*zza 131

"Pedo mellon a minno","说朋友,进入",在Moria的大门上.

  • 仿佛任何说精灵语的人都无法信任! (13认同)
  • http://xkcd.com/424/ (6认同)

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

  • 我的妻子刚刚看到我看着这个......她:"哦,我的天啊!那是什么节目?!" 我:"......微软鲍勃?" 她:"我*喜欢*微软鲍勃!"*叹*... (20认同)
  • @ChristianWimmer - 听起来有点像给人们一个标有"降落伞"的背包,所以他们习惯了背上的感觉,但没有告诉他们那里没有降落伞. (10认同)
  • 比我更聪明的人指出这只是一个很好的威胁建模.'鲍勃'是在非网络时代的家庭使用,你更有可能遭受你的妹妹或宿醉的尝试DOS而不是从一些窃贼.Bob告诉您,您的帐户已被访问(因为您的旧密码不再有效),但没有尝试做更多. (8认同)
  • 当计算机不由域管理时,这与Windows本身的行为相同.即使在Windows Vista Ultimate上,您也可以随时重置密码.我猜测拒绝服务被认为是比未经授权的访问更大的威胁; 特别是因为你可以通过将驱动器重新安装到其他位置来获得大多数东西.我相信在这种情况下密码的目的是入侵*检测*而不是预防. (7认同)
  • 死图像网址? (2认同)

joe*_*der 102

我有Joe X以前的家庭住址,需要知道他在同一个城市的新地址,但无法与他联系.我认为他每天都会收到一堆邮购目录,因此我随意拨打了See's Candies的800号码(与维多利亚的秘密,瑞士殖民地或任何其他大邮件相对):

我:"嗨,我是Joe X.我想你已经把我的邮件列表放在我的旧地址和我的新地址两次了.你的电脑是否在[旧地址]或[假地址]显示我?"

接线员:"不,我们会在[新地址]向您展示."

  • 啊,得热爱社会工程.安全的人性方面通常是最弱的. (36认同)

rah*_*hul 95

在文本框中给出1 = 1会列出系统中的所有用户.

  • 来自Bobby Tables的问候. (325认同)
  • @ kirk.burleson:http://xkcd.com/327/ (15认同)
  • 简单地说,投票提问的人数是他投票评论的4倍:/ (12认同)
  • @Gumbo的评论如何能够得到4倍的回答? (4认同)
  • Bobby Tables的221名选民中的一位评论员会告诉我们其他人Bobby Tables到底是什么吗? (4认同)

Col*_*lin 76

作为一名生活的应用程序安全顾问,有许多常见问题可以让您通过某些东西获得网站管理员.但真正酷的部分是你可以购买一百万美元的袜子.

这是我的一个朋友在这个演出工作,但它的主旨是,某个现在非常流行的在线书籍(以及其他所有)商店中的商品价格作为隐藏字段存储在HTML本身中.回到早期,这个错误在很多网上商店中出现,他们刚刚开始弄清楚网络.很少有安全意识,我的意思是谁真的要下载HTML,编辑隐藏字段并重新提交订单?

当然,我们将价格改为0并订购了100万双袜子.您也可以将价格更改为负数,但这样做会使其后端计费软件缓冲区溢出的一部分结束交易.

如果我可以选择另一个,那将是Web应用程序中的路径规范化问题.能够做到foo.com?file=../../../../etc/passwd真是太棒了

  • 你买过袜子了吗? (75认同)
  • 订单完成后,履行系统提醒仓库.我们意识到它可能有效并且告诉我们联系人他们应该停止订单.显然稍后一位仓库经理打电话询问订单,以确定它是真实的.他明智地认为这是一个软件错误. (32认同)
  • @StuperUser,当然,站起来. (27认同)
  • 没有存储问题,只需破解宜家网站订购100,000套抽屉, (12认同)
  • 太棒了,你再也不会丢失左袜子了! (9认同)
  • 别介意你把它们放在哪里,你会把它们放在哪里? (7认同)
  • 糟糕的网站安全意味着永远不必洗你的袜子. (3认同)

Mat*_*lin 64

将数据库root密码提交到意外的源代码控制.这非常糟糕,因为它是Sourceforge的源代码控制.

不用说密码很快就改变了.

  • 好的,密码很快就改变了......但是*who*? (144认同)

Max*_*Max 56

关键IT员工离开公司时不会更改管理员密码.

  • 我有一个更糟糕的事情 - 我在被串起后离开了大学,目录告诉我他毕业后为我创造了一份更高年级的工作,但我后来发现他告诉我的经理他们不是*促进我.不用说,我对它并不满意.我特意告诉我的经理要更改*我可以访问的每个*密码.离开后的一周,我收到了一位来自我的经理的电子邮件,其中包含root密码,"万一我需要它".我联系了系统管理员以确保它再次被更改,因为如果出现问题我不想摔倒. (47认同)
  • 我可以想象一个苏联间谍到保险柜并尝试他能想到的一切来破解保险箱,"该死的!我无法破解它.如果我可以......那就不好笑了.哇,得分一个为了母亲俄罗斯!" (12认同)
  • @Sophomore:我记得在Feynman的传记中他评论说许多存放曼哈顿项目秘密的巨型超安全保险箱都是默认组合. (10认同)
  • 读这篇文章的时候不能微笑,我在一家知名的瑞典公司担任IT技术员夏天,几年后当我回到工程师工作时,我在安装一些软件时遇到了一些问题.出于蓝色,我重新编写了旧的管理员密码,瞧!它工作=) (3认同)

Gum*_*mbo 50

虽然这不是我见过的最糟糕的安全漏洞.但这至少是我发现自己最糟糕的事情:

一个非常成功的有声读物在线商店使用cookie来成功验证后存储当前用户的识别信息.但您可以轻松更改Cookie中的用户ID并访问其他帐户并在其上购买.

  • 这种情况比大多数人意识到的更频繁. (12认同)

Eri*_* J. 47

就在.com时代的开始,我在海外的一家大型零售商工作.我们饶有兴趣地看着我们的竞争对手在我们面前推出了一个网上商店.当然,我们去尝试了......并且很快意识到我们的购物车混乱了.在稍微使用查询字符串后,我们意识到我们可以劫持彼此的会话.如果时间良好,您可以更改送货地址,但只保留付款方式......只需在购物车中装满您喜欢的商品后即可.

  • 是的,这就是它成为主要安全漏洞的原因.我们实际上没有按下购买按钮,但我们可以.并且,根据新闻报道,有些人做了. (6认同)

Mar*_*ell 45

当我第一次加入我目前工作的公司时,我的老板正在寻找一个潜在新客户的现有电子商务网站.这是在IIS和电子商务的早期阶段,我们认为安全性不是那么严格.

简而言之,他改变了一个URL(只是出于好奇),并意识到目录浏览没有关闭,所以你可以只删除URL末尾的页面名称并查看所有文件网络服务器.

我们最终浏览了一个包含我们下载的Access数据库的文件夹.这是整个电子商务客户/订单数据库,充满了数千个未加密的信用卡号码.


L̲̳*_*̲̳̳ 45

人们 张贴 他们的 密码 公共 网站上...

  • 很好的触摸使```链接也是如此:p (17认同)

han*_*son 44

当我13岁时,我的学校为学生们开设了一个社交网络.不幸的是,他发现了一个安全漏洞,您可以将URI更改为另一个用户ID,例如"?userID = 123"并登录该用户.显然我告诉了我的朋友,最后学校的社交网络充斥着色情片.

不过会推荐它.

  • @Simon_Weaver:我想13岁的孩子通常不会对色情有好感. (55认同)
  • 你为什么不推荐这个?发生了什么? (3认同)
  • "对色情的好品味" - 有一种矛盾. (2认同)

Ste*_*nst 43

我认为超级用户访问的空白用户名/密码字段是最糟糕的.但我见过自己的是

if (password.equals(requestpassword) || username.equals(requestusername))
{
    login = true;
}
Run Code Online (Sandbox Code Playgroud)

太糟糕的一个运营商会产生如此大的差异.

  • 哇,我自然有强迫要解决它 (10认同)

小智 42

我将是一家银行,我是客户.我无法登录,所以我打电话给客户服务.他们问我的用户名,没有别的 - 没有问任何安全问题或试图验证我的身份.然后,他们不是将密码重置为他们存档的电子邮件地址,而是询问我将其发送到哪个电子邮件地址.我给了他们一个不同于我的档案的地址,并且能够重置我的密码.

基本上,黑客所需要的只是我的用户名,然后他可以访问我的帐户.这是一家大型银行,至少有90%的美国人会听说过.这发生在大约两年前.我不知道这是一个训练有素的客户服务代表,还是标准程序.

  • 请问是什么银行? (22认同)
  • 保护您的财务帐户是否有点过分?... (13认同)
  • @Elizabeth:呃......你意识到这是为了防止网络钓鱼吗?如果有人试图复制或模仿银行网站,它看起来完全一样,但可能他们无法访问数据库,因此他们无法提供正确的安全图片.那就是那里的原因.并非所有用户都足够聪明地检查证书(可能同样虚张声势) (11认同)
  • 这是华盛顿互惠银行,被联邦存款保险公司扣押,并于今年年初卖给大通.他们也有奇怪的错误信息.当我尝试从临时密码设置我的密码时,我一直收到"密码不匹配"错误,即使它们是相同的,我甚至复制/粘贴.我意识到如果我把"无效字符"像正斜杠一样,而不是说无效字符,它会给我另外的消息. (8认同)
  • @Si:它写道'我是......的顾客'.我认为这回答了这个问题.:) (5认同)
  • @Mark,它不会阻止网络钓鱼.我曾经无法将愚蠢的图片出现在我的信用合作社网站上(这真的是他们的网站,但图片服务器已关闭),我打电话给他们抱怨.他们告诉我,无论如何我都可以继续登录"如果我对它感到满意的话." (奇怪的是,我不是.)我读过同样的事情发生的研究; 他们给人们一个嘲笑看起来像他们的银行的网站,但用标准的"破碎的图像"取代了图片,大多数人都继续进行登录. (5认同)
  • @Kyralessa,你是非常正确的 - 它根本没有帮助,它可以轻易绕过 - 适用于所有实现(至少我见过的那些......).更糟糕的是,它提供了一种虚假的安全感,经常导致用户忽视(缺少)SSL证书.当非安全专家尝试设计"安全"解决方案时会发生这种情况...... (4认同)
  • 哇,你这可怜的美国银行客户.安全显然不是美国网上银行的强项. (3认同)

blo*_*art 36

我会分享一个我创造的.的种类.

多年以前,我工作的公司想在他们的ASP网站上编制索引.所以关闭我去设置索引服务器,排除了一些管理员目录,一切都很好.

然而,有些人不知道有人给了销售人员ftp访问网络服务器以便他可以在家工作,这是拨号的日子,这是他交换文件最简单的方式....他开始上传东西,包括详细说明我们服务标记的文件......哪些索引服务器编入索引,并在人们搜索"费用"时开始提供服务.

记住孩子,白名单不是黑名单.

  • 我认为"白名单不是黑名单",虽然通常很好的建议,但这不是在这里学习的正确教训.正确的教训是"不要将私有数据放在公共服务器上".此外,"不要让销售人员访问服务器". (76认同)
  • 哦,答案和化身之间的和谐. (7认同)

Ser*_*gio 35

如何在线文档管理器,允许设置您可以记住的每个安全权限......

直到你进入下载页面... download.aspx?documentId = 12345

是的,documentId是数据库ID(自动增量),您可以循环每个数字,任何人都可以获得所有公司文档.

当提醒这个问题时,项目经理的回答是:好的,谢谢.但是之前没有人注意到这一点,所以让我们保持原样.

  • 我真的很讨厌这种态度,已经好几次了.让我想让别人这样做只是为了教他们一课. (56认同)
  • 这是一个很好的例子.在纽约时报的这篇文章中:http://www.nytimes.com/2009/01/14/dining/14power.html?_r=1&ref=dining显示的图片是更加热闹的原始版本的替代品,仍然可以在这里找到:HTTP://graphics8.nytimes.com/images/2009/01/14/dining/14power2_650.jpg (2认同)

Rob*_*itt 35

最简单但价格实惠的一个是:

使用PayPal等引擎的支付系统可能存在缺陷,因为付款成功后PayPal的响应不会被检查.

例如:

我可以去一些CD购买网站并添加一些内容到购物车,然后在结帐阶段,通常在页面上有一个填写了paypal字段的表单,以及"付款"的提交按钮.

使用DOM编辑器我可以进入"实时"表单并将值更改£899.00£0.01,然后单击提交...

当我在PayPal方面,我可以看到金额是1便士,所以我付了钱,PayPal将一些参数重定向到初始购买网站,他们只验证参数,如payment_status=1等,等等.验证已支付的金额.

如果没有足够的日志记录或自动发送产品,这可能会很昂贵.

最糟糕的网站是提供应用程序,软件,音乐等的网站.

  • +1同意.在托管支付页面情况下,原始网站不应允许用户驱动要发布的值; 相反,页面应该在用户点击后回发给自己,然后服务器制定并使用适当的值直接向支付"网关"发送post op.这一切都取决于网关期望的内容以及如何与它进行交互,但我看不出任何网关值得拥有它没有比你描述的更安全的场景.也许我错了. (12认同)

小智 34

挪威的比萨饼送货有一个安全漏洞,你可以在他们新的和闪亮的互联网门户网站订购负面的比萨饼,并免费获得.

  • 送货员不会来*收集*你卖*他们的比萨饼吗? (48认同)
  • 另一个安全漏洞是员工,对吧?"先生,电脑说你可以免费获得15个比萨饼,所以......在这里你去!我会得到一个提示吗?" (42认同)
  • 哇..送货员不得不给你小费?=)) (7认同)
  • ...你的比萨饼店也送出了DVD吗?吴 (6认同)
  • 作为一名前披萨司机......不,我们没有给那些东西喂老鼠屁股.我们的经理也没有. (5认同)

Gar*_*ett 27

当我使用Colloquy(IRC)时,密码字段会弹出,但我仍然在主屏幕上有焦点,所以当我点击进入并且没有意识到时,全世界都知道我的密码.

  • 好旧的IRC故障:<n4p> msg NickServ识别my1super2secret3passwort4**n4p已被重影** (22认同)
  • 这就是我在服务器选项卡上而不是在频道/ UI上进行密码操作的原因 (11认同)

Dru*_*uid 26

我上次工作的公司的FTP用户名和密码与其域名相同.他们不再反复警告.

毋庸置疑,该网站没有花费很长时间.没有在线备份,所以他们基本上不得不重建整个事情.但它并没有就此结束.此事件发生后的新安全密码是相同的...添加了123.

  • 密码已存在很长时间了.你认为即使是非专业人士也会知道*最差密码是什么. (12认同)
  • 哇,我想我会把密码更改为um是"password123",旧的"pass123"似乎风险太大了:) (3认同)

Isa*_*ler 25

我通过更改ServerFault测试版访问cookie的域名进入了http://dev.superuser.com/.(他们现在修好了)

  • 不错(还有11个) (7认同)

TM.*_*TM. 22

我有一家公用事业公司没有使用autocomplete="off"他们的信用卡表格.

当然,他们不会存储您的信用卡信息(这是一件好事),但想象一下,当我支付第二个月的账单并且我的浏览器提供给我填写整个信用卡号时,我是多么的恐惧......

  • 我一直都看到这个.啊! 这是一个未被充分认识的问题. (11认同)

Ste*_*fan 21

瑞典的在线DVD租赁商店在查询字符串中发送了纯SQL语句.

如果您在菜单框中选择了"Comedy"类别,则会将" select*from categories where category = 2 "作为查询字符串发送到movielist-frame,然后执行SQL语句并显示符合条件的所有电影.

将电影添加到您的订单时也是如此.

只需将查询更改为"从电影中删除*","从订单中删除*"就可以成为该公司的一天.

  • 当然,假设应用程序有权这样做.如果确实如此,我不会感到惊讶,但是完全有可能在桌子上授予某人选择权限,而不是别的. (8认同)
  • 即使数据库权限有限,您仍然突然容易受到任何特定于数据库的攻击(并且大多数人不会虔诚地升级其数据库软件)以及可能的拒绝服务攻击. (6认同)

Sar*_*els 20

有些朋友在大学一起上课.他们发现教授发布了所有的家庭作业解决方案,即使是尚未到期的家庭作业,也没有评分,或者甚至没有被分配.教授只是在课堂网页中嵌入了链接或解决方案,并在HTML评论中对其进行评论,直到作业被收集和评分为止.

  • 这个主题是什么?我希望,这不是与计算机相关的. (3认同)

dea*_*clo 19

我曾经在一家商店工作过.非公共访问区域的门具有键盘,因此您应该输入密码来获取访问权限.但是,您可以按#并且门会打开,这是我们喜欢的事实,因为它比#6位密码更容易击中#.


Joh*_*ens 17

不是严格意义上的安全漏洞,更多的是当时很多新手服务器管理员都不知道/关心的"功能".

在1999-2001左右,我在Frontpage和安装在面向公众的网站上的解锁Frontpage服务器扩展中获得了很多乐趣.

当您安装了Frontpage时,您可以在Internet Explorer中获得这个非常方便的"在Frontpage中编辑"按钮.

访问某个站点时,例如www.foo.com,如果您单击Internet Explorer中的"在Frontpage中编辑"按钮并且服务器管理员未正确完成其工作,那么Frontpage会愉快地打开虚拟目录的完整目录结构并允许您阅读/编辑内容.

这适用于从小型乐队设置到大型公共组织的许多站点.

当我找到一个开放的服务器时,我总是向"网站管理员"发送一封电子邮件,我曾经从一家在线零售商处获得了一张50英镑的礼券,用于提醒他们.

令人震惊的东西真的.

免责声明 - 我需要指出Frontpage是在我当时给出的标准构建PC上,而不是我自己选择的!

  • 很高兴听到一家公司实际上*感谢某人警告他们进入安全漏洞,而不是试图*责备他们. (23认同)
  • 直到今天,我仍然被问到"Frontpage是否足够好?" :■ (4认同)
  • 好吧,我没有告诉你第二次我为潜在客户找到了类似的洞,我天真地认为他们会很高兴知道这个明显的洞,但显然不是 - 我们后来没有赢得这项业务 - 没有那个时候50英镑的优惠券! (2认同)

Tho*_*aaf 17

Windows 95和98有史以来最好的bug.如果您只是按下取消,您将使用管理员权限登录:)在我父亲的工作中度过了美好时光:D

  • 实际上,IIRC,这是你获得SMB股票等的密码.它从来没有打算作为本地机器的身份验证. (13认同)
  • 使用Win9 [58],没有任何类似"管理员权限"的东西,因为每个用户都有完全的,不受限制的访问权限(控制面板中的小切换 - >用户尽管如此,这基本上是眼睛糖果). (9认同)
  • 这不是安全漏洞.登录屏幕实际上做的是解锁您的"密码列表"(.PWL)文件,该文件存储网络共享的密码(可能还有一些其他密码).如果您不关心密码列表,那么点击取消就可以了.如前所述,根本没有本地身份验证,更不用说任何"管理员权限"了. (8认同)
  • @Evgeny:缺乏本地身份验证(以及具有较少权限的帐户)本身是不是一个安全漏洞? (5认同)

Set*_*eth 16

我的银行曾在我的借记卡上发现"可疑交易".他们建议我取消它并获得一个新的.

当我在等新卡时,我需要撤回.所以我走进银行,给了一个女人我的旧卡,并解释说,"这张卡最近被取消了,但我需要一些钱.你能从这个帐户中拿一些吗?"

当我走出银行,放入口袋里时,我意识到我刚刚从一个账户中取出了一张使用取消卡的钱而没有被要求出示任何形式的身份证.

  • 我曾在没有显示身份证的情况下关闭了银行账户.我带着账户里的所有钱走出了银行. (3认同)

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的杰作.

  • 如果你使用这样的代码,你应该面对后果.哎哟! 为TDWTF +1 :) (2认同)
  • 这是一个明显的错误,我在前几秒错过了它. (2认同)
  • @Glycerine:我知道.你的大脑不想接受人们会做到这一点.但是嘿 - 他们使用的是'escapeSql`方法,所以它必须是安全的! (2认同)

小智 15

1-800多米诺骨牌将提供与任何目标电话号码相关的不公开地址.当系统提示您是否打电话时,请拨打您拨打的电话号码.系统将提示您输入新的电话号码,然后系统将向您回读与此电话号码关联的姓名和地址.输入目标的电话号码,您现在可以输入他们的姓名和地址.这在自动订购系统中非常普遍,如果多米诺骨牌已经解决了这个问题,那么还有数百个.

  • 或者你可以使用电话簿 (2认同)
  • @MatrixFrog来自订单.列表是*他们的*列表. (2认同)

Ian*_*oyd 15

输入所需的用户名 iboyd

输入所需的密码: *********

该密码已用于该用户名.请选择其他密码.

  • 不,Ian确实在系统中输入了他的用户名和密码,这不要求用户名是唯一的,但用户名和密码的*组合*是; 因此,在收到此错误消息时,他偶然发现了使用具有*same*username的*different*user的凭据访问系统的方法. (5认同)
  • @jb(谁不能被调用,因为他的用户名太短了:-P) - 啊,系统正在回复他的浏览器/程序凭据,甚至他的密码?我以为Ian键入了他的用户/通行证,系统回复了该消息. (2认同)

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)

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


Bra*_*don 12

不是最坏的,但笑得很好的是Android OS重启bug.当用户使用G1手机时,他们可以从手机上的任何位置键入"重启"(即:短信或电子邮件),手机将重启.


ste*_*tef 12

if( $session['role'] = "admin" ) //grant admin rights
Run Code Online (Sandbox Code Playgroud)

只需关闭一个字符("="而不是"==")就可以将管理员权限授予任何已登录的人.您真的有罪.

  • PHP本身就是有罪的.允许if语句中的变量赋值显然会导致大量的这类错误. (9认同)

si6*_*618 11

我将发现用于报告的ODBC DSN,其中密码与用户匹配,并且用户属于数据库服务器管理组.

因此,任何具有此ODBC DSN的PC都可以使用任何ODBC兼容工具通过报表用户读取/更改所有数据(更糟糕).无需授权,身份验证就像您可以获得的一样弱.

我在公立医院工作,该软件几乎安装在该州每个政府医院的每台PC上,数据库服务器包含各种敏感医疗数据(完整的患者详细信息,实验室测试结果等)

最糟糕的是,我们正式悄悄地报告了安全漏洞,并且在我在那里工作的那两年里仍然没有修复,那是5年前的事.

  • 绝对.不会提到哪个国家或州,但是政府在这个软件上花了很多钱(包括硬件推出+支持它是8个数字).最令人沮丧的部分是修复程序的简单程度......将用户从数据库服务器管理组移出到只授予读访问权限的地方(在适当的表上). (3认同)
  • 假设这是在美国,有些人可能会遇到很多麻烦. (2认同)

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搜索.它已经更新.当我得到他们时,我倾向于不回应他们的捐款请求.

  • 互联网.严重的企业. (3认同)

Pad*_*ddy 9

看到有人忘了锁门的门......

或者,看到一些JavaScript通过Ajax调用执行了一些SQL.唯一的问题是要运行的SQL是用页面呈现的,然后传递给服务...

  • 一个免费的AJAX SQL服务器......听起来很有趣! (3认同)

Ant*_*val 9

在没有加密的数据库中存储信用卡信息(全部信息:数字+到期日期+密码).此外,数据库被用作一种CRM,因此许多销售人员可以使用不安全的密码访问它.(自从我3年前离开公司以来,谁没有改变它.)

  • @Brandon Hansen:我不知道这在美国是违法的,但是有理由让你有能力处理立即撤销的Visa卡. (5认同)
  • 我敢肯定,我们中有不少人曾为(非法)存储信用卡详细信息的公司工作过. (4认同)
  • 哇我每次亚马逊试图记住我的信用卡号码时都会生气...请不要帮我...我不希望我的账号保存在你的服务器上. (3认同)

Nic*_*ick 9

我们有一个客户要求根据特定的HTTP引用来自动登录.因此,您和我必须登录,但如果您点击特定网站的链接,您将自动以默认用户身份登录.


Dar*_*uid 9

我个人发现的最糟糕的事情是在一所大学里,所有系统(包括教授办公室)都使用X机器.单个服务器托管了所有这些X会话......

有趣的是,您可以启动一个新的X应用程序(时钟是最喜欢的,但任何X应用程序都可以工作)并选择它显示的终端.使用快速脚本,您可以在校园内每个实验室/办公室的每台计算机上启动它...

当然,真正暴露这个安全漏洞的应用程序是伪shell登录,其输入被记录到文件中.

它运行了一个星期,并淹没了数百名学生和教授的用户名和密码,并产生了几个非常不满意的管理员.


Ann*_*ler 9

不是技术安全漏洞,而是安全漏洞:

我的银行卡最近被自动取款机吃掉了,我花了好几个星期才收回它.当它终于抵达银行时,银行的一位女士打电话给我询问我是否要拿起我的卡或让他们通过邮件发给我.她还告诉我,如果他们发送它,他们会禁用它,直到我打电话给他们确认它安全到达我家.

我拿到了一张带有确切联系信息的短信,其中包括一条说明我需要打电话以重新启用该卡的说明.我刚刚打电话给他们,给了他我的名字和账号,他们已经在卡片上打印了,他们重新启用了卡片.

基本上,如果有其他人抢过那封信,他们就会拿到卡和银行的号码以及说服银行确实是我打电话所需的所有信息.所以,那里不是一个非常好的安全系统.

  • 如果银行分行在周一至周五上午11点45分到下午12点15分之间的通常间隔开放,并且位于每个城市的每个街区,那将是一个更好的主意. (3认同)

Moh*_*man 9

有一家银行通过其网站提供一些服务.开发人员考虑了作为整个系统的有效用户登录的任何人,并且他们使用URL来识别帐号,因此只需更改URL上的ID,您就可以查看其他帐户的余额.

对于认为身份验证和授权相同的Web开发人员来说,这真的非常糟糕.

银行不通过其网站转账也是好事,否则有些人会富裕;-)

  • 这家银行在哪个国家? (2认同)
  • +1负责披露.给他们时间来修复安全漏洞,如果他们没有修复它然后提供完全披露,以便他们被迫修复它:) (2认同)

Ian*_*Ian 8

我继承了一个客户端项目到baby-sit:一个ASP.NET项目(内置于1.1),它是50%编译的DLL(没有源代码)和50%代码隐藏的JIT编译.

整个网站应该只是会员 - 除了最初的开发人员已经建立了一个后门:只需提交一个空白用户名和密码的登录表单,你会发现自己以一个秘密的超级管理员身份登录:做任何事情,看到一切.

你猜对了:所有的身份验证代码都隐藏在预编译的DLL中.最糟糕的是当我被告知"它不在错误列表中,客户端不会支付,所以留下它".所以我做了,今天它仍然存在.

  • 你也可以用ildasm和ilasm修复它:) (2认同)
  • 哎哟! 我永远不明白为什么有一个空白的用户名和密码是后门的方式.它对我来说甚至都没有意义. (2认同)

JBr*_*oks 8

去了一个为会员收取很多费用的汽车经销商的付费网站.只是尝试用户名"test"和密码"Test1".我是在.


Luk*_*101 8

login.jsp?type=user&redirct=/home.jsp&userid=12345&username=username&password=mypassword
Run Code Online (Sandbox Code Playgroud)

这发生在一个非常大的网站上.我看到这个时,我的下巴掉了下来.


Vat*_*ine 8

考虑到这一点,我见过的最糟糕的安全漏洞就是那个管理电子门锁的人说"你是什么意思,锁不知道公众假期"?

是的,每个星期一 - 星期五,自门系统安装以来恰好是公众假期,前门在08:00-17:30解锁.


Luk*_*hne 8

这不是安全漏洞,而是一个企业营销自己的产品作为高安全性(这是他们的主要特征之一)的安全耻辱

它是关于合作伙伴的页面上的"安全登录".它在这里:

第一次通过电子邮件获得纯文本密码,一旦你登录,当然不要在第一个屏幕上看到等等等等,你只需要运行你想要的东西(文档或软件),然后注销.

但这是诀窍,下次,您尝试登录密码不再有效,因为您应该在每次在个人资料的网站上发布新密码.因此,在交换了几封电子邮件之后,他们发送了我(通过电子邮件)大约30个枚举一次性密码的列表,我每次只能使用它一次.(这花了一个星期和几封电子邮件重新谈判这个清单)

所以我打印了这个密码列表,把它贴在我办公桌前的墙上,每次登录时都用笔涂掉一个密码.如果有人走到我的办公桌前,我不在乎看这个清单.

  • 这让我想起了附件的密码,例如"使用包含大写,小写和数字的10-13个字符.请勿使用!或'.必须包含@.不得包含用户名中使用的任何字符.... "我总是讨厌那些,密码长度限制一直让我担心,因为它意味着它们不会散列它. (2认同)

Vin*_*lds 7

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)

显然,正如有人在自动负载测试期间发现的那样,单身和缺乏同步可能会导致安全问题.


Dav*_*row 7

不是最坏的,但足以造成一些真正的伤害.如果经常被忽视,你会感到惊讶.特别是当人们使用这些流行的框架时,

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)


Ich*_*ann 7

我的朋友曾经用PHP制作了一个论坛脚本.密码保存为名为的纯文本文件pass.txt.当然,每个人都可以访问该文件.


Gly*_*ine 7

我告诉所有的朋友取消帐户这么可怕!


我在一个受欢迎的赌场网站上工作.闪光前端不仅仅是一个哑终端.他们有一个视觉错误,错误管理的头像图像.在我和我的伙伴期间,我们解决了这个问题 - 我们陷入了一个完全独立的缺陷.

我们观察了从客户端到服务器的流量,发现它是base64编码的.认为它会有所帮助,建立一个简单的python终端脚本,可以利用它.我们发现客户端会向服务器发送命令和逻辑信息.

几分钟之内,我就能够简单地输入我拥有的筹码数量,获胜者以及我拥有的牌,只需用纯文字书写即可!


另一个主要缺陷 - 用户密码被加密,管理员密码没有使用与以前相同的漏洞,我获得了访问数据库信息,找到了管理员登录并接管了系统.


Chr*_*heD 6

也许这里有一个轶事故事(但因为这是我发现的最严重的安全漏洞)......

有一家公司向一些公司/组织(包括我们的公司/组织)出售了一个定制的CMS(用于网站).他们使用了相当多的(主要是"LGPL")组件.很多客户(包括政府).

  1. 正确处理了访问网站不同部分(以及CMS管理系统)的身份验证.
  2. 他们在CMS中使用了FCKEditor实例(允许非html-savy用户编辑网页).
  3. 他们还使用FCKEditor的"上传 - 连接器"脚本,允许用户向网站添加文档,图像等.这个脚本的url是在一个公开可见的javascript inludes中硬编码的.
  4. 他们无法使用上传脚本对网址进行身份验证.

结果:在他们构建的每个站点上,可以(无需输入凭据)更改/删除/更改/上载网站上的每个文档/文件和/或图像.

我们一发现就报告了这个空洞的安全漏洞,所以它可能不会导致直接损坏(但它可能很容易).


Rus*_*een 6

将用户名列表的明文发送到浏览器以进行JavaScript自动完成,并通过使用唯一用户ID调整URL查询字符串来查看用户数据,这可以从所述自动完成功能中收集.


小智 6

在我的情况下并没有那么糟糕,因为数据不那么敏感:

我得到一个Excel文件,其中包含要更新的宏,每个工作表都被锁定,宏部分受密码保护.我得到了密码,但我想我也可以尝试破解密码.

我发现一个程序在大约十分钟内完成,其中大部分可能只是下载时间.这个奇迹产品能够如此快速,轻松地突破Excel安全性是什么?OpenOffice.Org.

我不确定Office 2007是否在这方面有所改进,但它让我害怕有多少非技术人员可能正在使用Excel操纵敏感信息并认为它是安全的.然后,那些类型的人可能甚至不知道它提供的"安全"功能.


pbr*_*pbr 6

我对Ken Thompson进入UNIX的"后门"投了反对票.

这是一个人们正在学习更多内容的链接: Thompson的Trojan编译器

我认为最糟糕的原因是,当法官和其他人认为在这种情况下取​​得进展的最佳方式是公开讨论时,这种情况又回来了.

所做的就是教一堆脚本小子一个新的非常强大的技巧.

  • 与默默无闻的安全相反?我的意思是,在这些回复中,并不存在任何问题的例子. (7认同)
  • @pbr你基本上是在挖掘整个"完全披露好坏"的安全论点.是的,发布一个非显而易见的漏洞使得脚本小子可以利用它,但它也允许管理员和用户意识到他们的程序可能不安全,并且它为您提供了更多能够提出解决方案的人(并保护未来的问题).如果你想要比我的好得多,你应该阅读以前关于完全披露的任何辩论. (2认同)

Bob*_*key 6

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的用户,任何人都可以进入.


Pet*_*r M 6

我讨厌承认这一点..但我发现了如何破解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密码


Mat*_*ley 6

在我的旧大学,他们将用户密码以明文形式存储在cookie中.

这本身就是可怕的,但是为了增加对伤害的侮辱,他们将它们存放在饼干中*.university.edu.au.当然,所有的学生和员工的页面都是这样的university.edu.au/~user.

<?php

var_dump($_COOKIE); // oops.
Run Code Online (Sandbox Code Playgroud)


toa*_*tie 6

有许多站点使用代理文件来管理图像或其他文件.没有检查有效性的路径.

所以.

getfile.php?file=../../../../etc/passwd

要么

getfile.php?file=../index.php (带有所有密码的纯文本)

令人惊讶的是,有多少网站仍然存在这个漏洞.只需google获取getfile.php,你就可以将一天放入盒子中.


nil*_*ils 6

好吧,简单一点

exec unchecked_parameter_from_the_web
Run Code Online (Sandbox Code Playgroud)

在Python中解析用户给出的字典文字.那太可怕了.


Cha*_*hao 6

我被告知我们的交换机部门的哔哔声系统有一个可用于发送消息的网络前端虽然它很丑陋而且不是非常用户友好所以我想看一看,看看我们是否可以使用表格我们的主要内部网站点,并通过我们的服务器将值提交给他们.

有一个简单的用户名/密码表单来访问具有用户和管理员角色的系统,所以我看看我是如何处理安全性的.我发现存储了以下两个cookie:

Username: [username I had used]
Admin: False
Run Code Online (Sandbox Code Playgroud)

只是为了确保它像我想的那样糟糕,我打开了Firefox,给了它网址,创建了2个cookie,我的用户名Admin: True和lo,看到我有Admin访问权限.只是为了检查它我创建了一个没有任何问题的新用户.更糟糕的是,在本地使用用户名意味着日志会显示我想要给予的任何人的行为.

通过默默无闻的安全措施不起作用,但当你在银盘上给人们所需要的东西时,它的作用要小得多.


Rob*_*obb 6

我很惊讶我还没有看到提到的微软wga验证黑客.

在允许您访问下载之前,您可以下载验证Windows副本的控件,或者您可以将以下javascript行粘贴到地址栏中并点击返回.

javascript:void(window.g_sDisableWGACheck='all')
Run Code Online (Sandbox Code Playgroud)

它旨在让用户一次验证并下载多个项目,但由于它存储在客户端,因此很容易操作!


Fra*_*ale 5

在2007年,一个相当大的机构的国防部网站有一个错误的配置导致IIS Web服务器提供原始代码,主页上有硬编码的用户名/密码和数据库服务器信息.幸运的是它被抓得很快,但我见证了它,这非常令人震惊.毋庸置疑,他们的网站被网络工程师脱机,直到开发人员修复了错误的代码.


Jim*_*son 5

有关安全漏洞(和其他计算机风险)的主列表,请访问http://catless.ncl.ac.uk/Risks


Met*_*uru 5

我见过的最糟糕的安全漏洞是当人们不在他们的firefox帐户上使用主密码时,即使他们正在保存所有密码.这意味着任何可以访问您的帐户文件的人都可以窃取您的所有密码.使用主密码.

  • 没错,但是你应该有一个密码才能进入你的计算机,从睡眠状态唤醒它时会提示输入密码,屏幕保护程序,等等. (9认同)

小智 5

"网络编程安全101"风格中最好的错误是招聘机构,其搜索页面提供了"下一页"链接,这只是获取更多工作列表的SQL语句.您可以轻松地将此URL更改为任何其他SQL语句,包括"drop table X".如果你这样做,他们的整个网站都会死掉.


小智 5

在一个论坛中,我只能通过管理员替换我在cookie中的用户名,而不是更改密码,只能访问隐藏的线程和管理界面.


Voi*_*ter 5

从记忆中解释,但它很接近......

<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)

我认识的一个人用它来保护他网站的"私人区域".起初,他不想相信我,即使他的浏览器也有这种不稳定的"查看源"功能.


Kev*_*ell 5

我曾经有过一个工作,其中有一个用Java代码编写的安全层,用于检查用户是否有权编辑数据库表列.这就是函数的样子:

public boolean canEdit(User user, DBColumn column) {
    if(true) {
        return true;
    } else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 啊,我看到安全漏洞......它应该只是"返回真实". (7认同)
  • 那些偷偷摸摸的布尔副作用怎么样?最好用'return true?true:false;`. (2认同)
  • 那不会帮你需要像`return((true == true?true:false)!= false?false!= true:true == false) (2认同)

joe*_*der 5

在1970年代,斯坦福大学将IBM 2741硬拷贝终端分布在校园网络中,与IBM 360/67网络连接.帐户密码是三个字符.在登录期间,密码提示将叠印一个大约九个随机大写字符的三位blob,因此随后键入的密码应该被blob屏蔽.但是,每个人都用小写字母键入他们的密码,这对于识别大写的背景blob来说是微不足道的.这意味着您通常可以走到任何终端,仔细阅读前一个用户通常留下的硬拷贝,并轻松登录他们的帐户和密码.


小智 5

我见过一位高端法国国防承包商的高层管理人员使用Skype进行非常机密的谈话(据记载,Skype使用的是很久以前破坏的RC4加密算法).

我猜他们的无知可以被赦免,因为他们也使用了Windows和MS-Word(为了记录,MS-Word保存了以前使用此模板编写的所有文档的历史记录).

这引发了一些有趣的问题,关于纳税人的资金流向何处 - 以及是否明智地使用了这些资金.


Bra*_*ldt 5

我工作的公司有很多安全错误......以下是一些更糟糕的事情:

  • 所有前雇员仍然拥有积极的账户,甚至是那些被解雇或留下不良条款的人
  • 我们开发的每个网站(200+)都拥有相同的管理员用户名和密码,所有在这里工作的员工都知道这些用户名和密码

史诗失败.