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

Worst security hole you've seen?

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

对于它的价值,这里有一个问题,如果你发现了一个安全漏洞该怎么做,如果一家公司没有(似乎没有)回应,这里还有一个问题,上面有一些有用的答案。


从早期的网上商店:

在购物车的"数量"字段中输入.1可获得90%的折扣。软件正确地计算出总成本为.1*成本,而人类包装订单只是简单地掩盖了奇数。


最不可原谅的安全漏洞,不幸的是,一个非常常见且容易找到的漏洞,是谷歌黑客。案例分析:

http://www.google.com/search?Q=inurl%3select+inurl%3a%2520+inurl%3afrom+inurl%3a其中

令人惊讶的是,互联网上有多少页面,特别是政府网站,通过查询字符串传递SQL查询。这是最糟糕的SQL注入形式,而且根本不需要花费任何精力来查找易受攻击的站点。

通过一些小的调整,我可以找到phpmyadmin的未保护安装、mysql的未保护安装、包含用户名和密码的查询字符串等。


社会工程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<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.

来自bash.org


我在微软早期的真实经历。

直到那天早上你醒来看到zdnet.com上的标题时,你才知道恐惧是"在‘blah’中发现的最糟糕的Internet Explorer安全漏洞",而‘blah’是你六个月前写的代码。

一开始工作,我就查看了更改日志,发现另一个团队中的某个人——我们信任的可以对产品进行更改的某个人——签出了我的代码,无缘无故地更改了一堆安全注册表项设置,将其签回,但从未获得过代码。回顾或告诉任何人。直到今天,我都不知道他到底在做什么;他很快就离开了公司。(自愿的)

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

首先,请注意,我选择采取慈善立场,即安全密钥的更改是无意的,基于粗心或不熟悉,而不是恶意。我没有任何证据,相信把错误归咎于人的易犯性是明智的。

第二,我们的签到系统比12年前强大得多。例如,如果签入系统没有将更改列表通过电子邮件发送给相关方,现在就无法签入代码。尤其是,在船舶周期后期所做的更改有很多"过程",这可以确保做出正确的更改,以确保产品的稳定性和安全性。)

不管怎样,这个bug是一个在Internet Explorer中不安全使用的对象被意外释放为"脚本安全"。对象能够将二进制文件(实际上是OLE自动化类型库)写入任意磁盘位置。这意味着攻击者可以创建一个包含某些恶意代码字符串的类型库,将其保存到一个已知可执行位置的路径上,为其提供可能导致脚本运行的扩展,并希望用户能够意外地运行代码。我不知道有什么成功的"现实世界"攻击使用了这个漏洞,但是有可能利用它来进行有效的攻击。

我告诉你,我们很快就为那一个提供了一个补丁。

我在JScript中造成并随后修复了更多的安全漏洞,但它们中没有一个能接近公开的漏洞。


我希望你能发现这里有什么问题。(事实上,严重错误):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
String emailBody ="";

for (int i = 0; i < subscribers.Count; i++)
{
    emailBody +="Hello" + subscribers[i].FirstName +",";
    emailBody +="this is a reminder with your account information:

:";
    emailBody +="Your username:" + subscribers[i].Username +"
";
    emailBody +="Your password:" + subscribers[i].Password +"
";
    emailBody +="Have a great day!";

    emailDispatcher.Send(subscribers[i].EmailAddress, emailBody);
}

最后一个接受者是最幸福的;


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

alt text


我所见过的最糟糕的安全漏洞实际上是由你的代码编写的,并导致google bot删除了我的整个数据库。

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

博客主页有到主管理屏幕的链接,主管理屏幕有每个记录的删除链接(没有确认)。

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

我从日志中发现:google bot已经对站点进行了爬行,跟踪管理链接,然后继续跟踪所有删除链接,从而删除数据库中的每个记录。我觉得我应该获得"愚蠢的年度奖",因为谷歌机器人无意中泄露了我的信息。

谢天谢地,我有备份。


最糟糕的是什么把我见过的bug在哪里给Web应用程序的用户的名称和密码是空的日志:你是管理员)


有一次在一个网站的URL上发现了这一点。

1
http://www.somewebsite.com/mypage.asp?param1=x&param2=y&admin=0

将最后一个参数更改为admin=1将授予我管理员权限。如果你要盲目相信用户的输入,至少不要打电报说你在做!


我在每日世界跆拳道上看到这个。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<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")
    }
}
//-->

没有什么能打败这个imho。


在一所仍将无名的大学里,他们所有的动作查询都通过URL传递,而不是通过表单发布。

这件事起到了很大作用,直到谷歌机器人出现并运行了他们的所有网址,并清除了他们的数据库。


很惊讶没人提起社会工程学,但我从这篇文章中得到了启发。

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


"PedoMellon a Minno","与朋友交谈进入",在Moria的大门上。


微软最失败的产品(学分:丹的20世纪废陶器)

如果第三次输入密码不正确,系统会询问您是否忘记了密码。

http://img132.yfrog.com/img132/8397/msbob10登录15.gif

但是,您可以输入任何新的密码,它将取代原来的密码,而不必具有安全性,比如继续提示输入正确的密码,直到输入密码为止,或者在多次错误尝试后锁定您!任何人都可以使用任何密码"受保护"的Microsoft Bob帐户执行此操作。

不需要预先进行身份验证。他的意思是,用户1可以更改自己的密码,只需三次输入错误的密码,然后第四次输入新密码——不必使用"更改密码"。

这也意味着用户1可以更改用户2、用户3的密码…以完全相同的方式。任何用户都可以更改任何其他用户的密码,只需错误地输入三次密码,然后在提示时输入一个新密码,然后他们就可以访问该帐户。

http://img132.yfrog.com/img132/9851/msbob10登录16.gif


我有乔克斯以前的住址,需要知道他在同一个城市的新住址,但没有办法联系他。我想他每天都会收到一大堆的邮购目录,所以我随意地打电话给800号来买西伊的糖果(与维多利亚的秘密,瑞士殖民地,或任何其他大邮购者相反):

我:"嗨,我是乔X。我想你已经把我两次列入你的邮件列表了,我的旧地址和新地址都在。你的电脑显示我的地址是[旧地址]还是[假地址]?

接线员:"不,我们在[新地址]给你看。"


给文本框的列表(1 = 1,所有用户在系统中。


作为一名应用程序安全顾问,有很多常见的问题可以让你通过某种方式在网站上获得管理。但真正酷的是你可以买价值一百万美元的袜子。

这是我的一个朋友在做这个工作,但它的jist是,在一个现在非常流行的在线图书商店(和其他一切)的物品价格存储在HTML本身作为一个隐藏的领域。早在早期,这个bug就曾在很多在线商店中出现过,他们刚刚开始发现网络。很少有安全意识,我的意思是真正的谁会下载HTML,编辑隐藏字段并重新提交订单?

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

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


规则的数据库是由密码控制事故的根源。它是漂亮的浴室,因为它是SourceForge上的源控制。

有了密码needless说的很快。


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


虽然这不是最糟糕的安全把我见过的。但至少,这是最糟糕的:我发现我自己

a漂亮的成功的在线商店有声读物使用cookie存储识别信息(用户成功认证后的电流。但你可以很容易改变的用户ID的Cookie和其他帐户的访问和对他们的购买。


就在《.com时代开始,我的工作是一个海外大型零售商。我们有兴趣为我们的竞争对手作为伟大的计划在月前美国在线商店。当然,我们去试试…我们很快意识到,和购物车是获得混合。玩一个查询字符串A的后位,我们意识到我们可以hijack对方的会话。一个好的时机,但你可以改变递送地址离开独立的支付方法。所有这一切后,一有车充与您最喜爱的项目。


当我第一次加入我目前工作的公司时,我的老板正在查看一个潜在新客户的现有电子商务网站。这是在IIS和电子商务的早期,我们可以说,安全并没有那么严格。

为了缩短一个长篇故事,他修改了一个URL(只是出于好奇),并意识到目录浏览并没有关闭,所以您可以将页面名称从URL的末尾切掉,然后查看Web服务器上的所有文件。

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


人们在公共网站上发布他们的密码…


当我13岁我的学院为学生开一社交网络。我们很不幸的我发现你可以安全缺陷A变化到另一个用户的URI样"?用户名= 123和成为"那个用户登录。显然,我告诉我的朋友,在学校和在结束与社交网络色情是钢管。

我不会推荐它。


我认为超级用户访问的空白用户名/密码字段是最差的。但我见过的是

1
2
3
4
if (password.equals(requestpassword) || username.equals(requestusername))
{
    login = true;
}

糟糕的是,一个操作员会造成如此大的差异。


我的银行是我的客户。我无法登录,所以打电话给客服。他们问我的用户名,没有其他任何问题-没有问任何安全问题或试图验证我的身份。然后,他们没有发送一个密码重置到他们在文件上的电子邮件地址,而是问我发送它到什么电子邮件地址。我给了他们一个和我在文件上的地址不同的地址,并且能够重置我的密码。

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


我将分享我创建的一个。有点。

几年前,我为他们的ASP网站上的需要索引工作的公司。所以我去建立了索引服务器,排除了一些管理目录,一切都很好。

然而,我不知道有人给了一个销售人员ftp访问Web服务器的权限,这样他就可以在家里工作,这是拨号的日子,这是他交换文件的最简单的方式……他开始上传东西,包括详细说明我们服务标记的文档……当人们搜索"成本"时,哪个索引服务器被索引并开始服务。

记住孩子们,白名单不是黑名单。


一个在线文档管理器,它可以设置您能记住的每个安全权限,怎么样?

直到你进入下载页面…下载.aspx?文档ID=12345

是的,documentID是数据库ID(auto increment),您可以循环每个编号,任何人都可以获取所有公司文档。

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


最简单但真正划算的方法之一是:

使用PayPal等引擎的支付系统可能存在缺陷,因为支付成功后,从PayPal返回的响应没有被检查。

例如:

我可以去一些CD购买网站,并添加一些内容到购物车,然后在结账阶段,通常有一个表格页上已经填充了PayPal的字段,和提交按钮"支付"。

使用DOM编辑器,我可以进入"live"窗体,将值从£899.00更改为£0.01,然后单击提交…

当我在PayPal方面,我可以看到金额是1便士,所以我支付,贝宝重定向一些参数到初始购买网站,谁只验证参数,如EDCX1,2等,等等,不验证支付的数额。

如果他们没有足够的登录或产品被自动发送,这可能会很昂贵。

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


挪威的一家披萨快递公司有一个安全漏洞,在那里你可以在他们新的、闪亮的互联网门户网站上订购负数量的披萨,然后免费获得。


当我使用colloquy(IRC),密码场流行化妆,但我仍然有一个在主屏幕的焦点,那么整个世界知道我的密码,当我击中回车键和不知道它。


公司有自己的工作负载的FTP用户名和密码相同的域的名称。他们不打扰到维修和重复。

needless说,它不需要长时间的网站去下。在线备份基本上没有使他们不得不重建整个事情。但它不结束那里。新的安全密码后,此事件是一样的……添加一个123。


我通过更改serverfault beta访问cookie的域进入了http://dev.superuser.com/。(他们现在修好了)


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

当然,他们不会存储你的信用卡信息(这是好事),但是想象一下,当我支付了2个月的账单,我的浏览器提出要为我填写整个信用卡号码时,我是多么的震惊……


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

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

在您的订单中添加电影时也是如此。

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


一些朋友在大学里一起上课。他们发现教授张贴了所有的家庭作业解决方案,甚至还没有到期的家庭作业,没有评分,甚至没有被分配。教授只是将链接或解决方案嵌入到课堂网页中,并将在HTML注释中对它们进行注释,直到作业被收集和评分为止。


我们在我以前工作过的一家商店里有一家不错的商店。进入非公共区域的门有键盘,所以你必须输入一个密码才能进入。然而,你只需按下,门就会打开,这是我们喜欢的一个事实,因为它比一个6位数的密码更容易被击中。


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

大约在1999-2001年,我对安装在面向公众的网站上的FrontPage和未锁定的FrontPage服务器扩展非常感兴趣。

安装了FrontPage后,您就可以在Internet Explorer中方便地使用"在FrontPage中编辑"按钮。

在访问网站(如www.foo.com)时,如果您在Internet Explorer中单击了"在FrontPage中编辑"按钮,而服务器管理员没有正确地完成他们的工作,则FrontPage很高兴地打开了虚拟目录的完整目录结构,并允许您读取/编辑内容。

这在许多网站上都有效,从小型的单人乐队到大型的公共组织。

当我发现一个开放的服务器时,我总是给"网站管理员"发一封电子邮件,有一次我从一家在线零售商那里得到了一张50英镑的礼品券,提醒他们注意这一点。

真令人震惊。

免责声明-我需要指出的是,FrontPage是在标准的PC机上,我在那些日子,不是我自己选择的!


Windows95和98有史以来最好的bug。如果你刚刚按"取消",你将以管理员权限登录:)在我父亲的工作中度过了一段美好的时光,然后:d


我的银行曾在我的借记卡上发现一笔"可疑交易"。他们建议我取消它,换一个新的。

当我在等新卡的时候,我需要取款。于是我走进银行,把我的旧卡给了一位女士,并解释说:"这张卡最近被取消了,但我需要一些钱。你能从这个账户里给些吗?"

当我走出银行,口袋里有现金的时候,我意识到我只是用一张注销的卡从一个账户里取了钱,从来没有被要求出示任何形式的身份证。


对我来说,最糟糕、最可怕、最危险、最疏忽犯罪、最优雅、对整个系统安全的彻底破坏将永远是来自每日世界贸易基金会的:

客户端PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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);
}

就盯着它看一分钟。想想你能做的所有事情。现在,女士们先生们,这是一部爱情魔术师的杰作。


在高中时,实验室运行的是早期版本的Windows。政府在证券项目上花费了大量资金。

实验室的负责人走到我跟前,让我绕过这个系统,看看它是否安全。"没关系,你不会惹麻烦的。"

我重新启动了,按了F8,当它问我是否想加载安全程序时按了N,然后按了Y。


1-800多米诺骨牌将提供与任何目标电话号码相关的未列出地址。当提示您是否要拨打从"选择号码"中拨打的电话号码时,系统将提示您输入新的电话号码,然后系统将向您回读与此电话号码关联的姓名和地址。输入你目标的电话号码,你现在有了他们的名字和地址。这在自动订购系统中很常见,如果Dominos已经解决了这个问题,那么实际上还有数百个。


输入所需用户名:iboyd

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

That password is already in use for that username. Please choose a different password.


在我尝试过的一个免费网络主机上,"忘记密码"方法向您发送密码时出现了一个逻辑错误——如果您没有输入电子邮件地址(可选使用辅助电子邮件),它会向没有提供辅助电子邮件的每个用户发送主地址的密码。

一天,我和其他数百人收到了一封电子邮件,里面有数百个用户名和密码,密码是纯文本的。


信不信由你,我最近在一个网站上发现了这一点:

1
eval($_GET['code']);

服务器甚至没有打开安全模式…


我以前在一家销售点公司工作。他们的软件很多比萨店都用过。

由客户决定更改默认密码。默认信息打印在用户手册中,并且这样的。:)

嗯,一些在比萨店工作的孩子猜测他们没有更改根密码(unix/linux基于系统)。然后他们开始收买他和他的朋友免费送披萨到他家附近比萨店注意到的前一年。它让我发笑每次我想起那份工作。:)


有一次,我在一家公司工作,我不得不和他分享信息通过加密。他们给了我一个GPG密钥对-它们的公钥和私钥,而不是只是分享公共密钥和信息保密。

我必须向他们解释这个过程是错误的,他们意识到他们这么做已经很久了。


我曾经在一个名为rol.ro的本地互联网门户网站上发现了一个bug(罗马尼亚在线-当时由pcnet拥有)。他们有免费的网络邮件系统。我想要一个特定的(容易猜测的)用户名,但它已经被占用了。

出于好奇,我进入了"忘记密码"页面,输入了我想要的(但被拿走的)用户名。然后,提交后,我收到了一个空白的安全问题。

真的。。。让我们看看他们是不是跛脚。我确定答案文本框是空的,然后提交

"恭喜您,输入新密码"。

我输入了一个密码并劫持了帐户。

他们的…PHP脚本是他们将数据库中的空字符串(在答案中,当然是明文)与我提交的空字符串进行比较。让它们"相等"将引导我进入下一步,重新设置密码。

是的,跛子。


1
if( $session['role'] ="admin" ) //grant admin rights

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


不是最坏的,但一个很好笑的是Android操作系统重启错误。当用户使用G1手机时,他们可以在手机上的任何地方键入"reboot"(重启),手机就会重启。


我不知道这是不是最糟糕的,因为我见过一些非常糟糕的,但是:

几年前,我工作的一个地方引入了一个名为focus的系统。不知道它是否还在。它对报告很有帮助,我们开发并教了大约一千或两个非IT人员如何生成自己的报告。非常方便。他们可以做基本的报告,一些可以做中硬的东西,它可以帮助更硬的东西。

所有用于报告的数据都以focus自己的格式定期复制到影子数据库中。对于更敏感的数据,我们设置了加密数据的安全选项。一切都很好。

所以,有一天我的老板打电话给我,我们丢失了一个敏感数据库的密码。在这种情况下,很难复制数据,所以他要求我看看是否可以破坏安全性。我没有黑客的经验,所以我花了5到6个小时才把密码交给他。我首先创建了一些测试文件,并用不同的密码对它们进行加密。我发现更改密码中的一个字符会更改加密文件中的两个字节,具体来说,一个字节的高位和另一个字节的低位。"嗯,嗯,"我说,"当然,他们把密码存储在加密后的前80个字节的某个地方,但是通过将字节分割成nybols,并将它们存储在可预测的地方,混淆了密码。"

此后不久,编写一个在VM/CMS系统下运行的rexx脚本,并告诉我们任何加密数据库的密码。

那是很久以前的事了——90年代初,我相信他们已经解决了这个问题。嗯,很确定。


我会发现在ODBC DSN用于报告,那里的密码匹配的用户,和用户友好的belonged数据库服务器管理集团。

所以任何ODBC DSN可以与本机读数据(所有年龄和周报告)通过ODBC兼容的用户,使用任何工具。没有授权和认证要求的,什么是你可以得到的弱。

我的工作是在一个公开的医院,和软件是安装在几乎每一个政府医院在PC的状态,一个数据库服务器(含:所有敏感数据(完整的病人医学实验室测试结果的细节,等)

最糟糕的,我们从安全接地,那么正式,和它仍然不固定在2年和我仍然有工作,那是5年前。


http://www.metasploit.com/users/hdm/tools/debian-openssl/


大约3年前,我在我们州为一个规模较大的非营利组织建了一个网站。当需要将应用程序部署到他们的Web主机服务器时,我注意到一个名为"cc.txt"的奇怪文件,或者在他们的公共站点中明显类似的文件。它位于他们的网络根目录下,正在接受服务,并且是一个csv文件,其中包含了他们所有的捐赠者的姓名、地址、信用卡号码、有效日期和cvv/cvc代码。我无法计算我提出这个问题的次数——首先是我的老板,然后是我们公司的会计,客户的IT主管,最后是客户的总裁。那是3年前的事了。该文件仍在使用中,甚至可以通过谷歌搜索。已经更新了。当我得到他们的捐款请求时,我往往不回应。


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


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

对于一个认为身份验证和授权是同一回事的Web开发人员来说,这真的很糟糕。

此外,银行不通过其网站转账也很好,否则一些人就会富有;—)


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

我的银行卡最近被一台自动取款机吃了,我花了几个星期才取回。当它最终到达银行时,银行的一个女人打电话给我,问我是想取我的卡还是让他们通过邮件发给我。她还告诉我,如果他们寄出去,他们会禁用它,直到我给他们打电话确认它安全抵达我家。

我收到了一张卡片,上面有一封短信,上面写着详细的联系信息,其中包括一张便条,上面写着我需要打电话才能重新启用卡片。我刚刚打电话给他们,告诉他们我的名字和帐号,这两个号码都印在卡上,他们重新启用了卡。

基本上,如果有人抢走了那封信,他们会得到银行卡和号码,以及所有需要的信息,让银行相信这是我打来的。所以,那里的安全系统不是很好。


看到有人忘记锁门了…

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


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


我个人发现的最糟糕的情况是在一所大学里,所有系统(包括教授办公室)都使用了运行X的机器。一台服务器承载了所有这些X会话…

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

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

它运行了一个星期,吓坏了数百名学生和教授的用户名和密码,并产生了几个非常不高兴的管理员。


去了一个汽车经销商的付费网站,会员费很高。刚刚尝试了用户名的"test"和密码的"test1"。我进去了。


我继承了一个客户端项目给婴儿看护:一个ASP.NET项目(基于1.1构建)50%已编译的dll(无源代码)和50%的代码落后于JIT编译。

整个网站只应该是会员-除了最初的开发人员已经建立了一个后门:只需提交用户名和密码为空的登录表单,您将发现自己以秘密超级管理员身份登录:做什么都能看到。

您猜对了:所有的身份验证代码都被隐藏了在预编译的dll中。最糟糕的是当我被告知"它不在bug列表中,并且客户不会付钱的,就留下吧。所以我做了,它还活着今天。


这不是安全漏洞,而是一家公司将自己的产品作为高安全性(这是他们的主要特点之一)进行营销时的安全耻辱。

这是关于"安全登录"页面上的合作伙伴。接下来是:

当你第一次通过电子邮件获得纯文本的密码,并且一旦你登录,你当然不会在第一个屏幕上读blah blah,你只需运行寻找什么(文档或软件),然后注销。

但这是个诀窍,下次,你尝试登录你的密码不再有效,因为你应该有新的密码,他们每次在网站上发布在你的个人资料下。因此,在交换了几封电子邮件之后,他们通过电子邮件向我发送了大约30个一次性密码的列表,我每次只能使用一次。(这花了我一周时间和几封电子邮件重新协商这个列表)

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


1
login.jsp?type=user&redirct=/home.jsp&userid=12345&username=username&password=mypassword

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


考虑到这一点,我所见过的最糟糕的安全漏洞是当负责电子门锁的人说"你什么意思,门锁不知道公共假日"?

是的,每星期一到星期五,这恰巧是一个公共假日,因为门系统已经安装,看到前门解锁08:00-17:30。


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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
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);
        ......
    }
}

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


太可怕了,我告诉我所有的朋友取消帐户!

我在一个受欢迎的赌场工作。闪存前端不仅仅是一个笨重的终端。他们有一个视觉错误,错误地管理了阿凡达的图像。在我和我的朋友们修复这个的时候,我们遇到了一个完全不同的缺陷。

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

几分钟之内,我就可以简单地输入我拥有的芯片数量,谁赢了,我拥有的是什么样的一只手,只需简单地用明文写出来!

另一个主要的缺陷——用户密码被加密,管理员密码和以前不一样,我获得了访问数据库信息的权限,找到了管理员登录名并接管了系统。


不是最坏的,但足以造成一些真正的损害。你会惊讶地发现这一点经常被忽视。尤其是当人们使用这些流行的框架时,

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

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

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

1
2
3
4
5
$item = // find your item by the $_GET[ 'id' ];

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


在我以前的大学里,他们把用户密码以纯文本的形式存储在cookies中。

这本身是很可怕的,但为了增加对伤害的侮辱,他们把它们储存在饼干里给*.university.edu.au。当然,现在所有的学生和员工的页面都在类似于university.edu.au/~user的页面上。

1
2
3
<?php

var_dump($_COOKIE); // oops.


我投票赞成肯·汤普森进入Unix的"后门"。

这里有一个链接,有人正在了解更多信息:汤普森的特洛伊木马编译器

我认为这是最糟糕的原因是,这回到了当时,法官和这样的人认为,反对这类事情的最好方法是公开讨论。

只不过是教了一帮脚本孩子一个新的非常强大的技巧。


1
Select * from user where user_id = '*userId*' and access_level = 0 or access_level = 1;

如果查询返回了任何行,则它们被允许进入系统。在EDOCX1[0]周围的圆括号可以实现它们的预期。相反,只要有一个access_level为1的用户,任何人都可以进入。


也许这里有点轶事(但因为这是我发现的最糟糕的安全漏洞)

有一家公司向许多公司/组织(不幸的是,包括我们的公司/组织)出售定制CMS(用于网站)。他们使用了很多(大部分是‘lgpl’)他们没有制造的组件。很多客户(包括政府)。

  • 正确处理了访问网站不同部分(以及CMS管理系统)的认证。
  • 他们在CMS中使用fckeditor实例(允许不懂HTML的用户编辑网页)。
  • 他们还使用了fckeditor的"上传连接器"脚本,允许用户添加文档、图像等…到现场。这个脚本的URL被硬编码在一个公开可见的javascript中。
  • 他们无法使用上载脚本对URL进行身份验证。
  • 结果:在他们创建的每个站点上(无需输入任何凭证),都可以更改/删除/更改/上载网站上的每个文档/文件和/或图像。

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


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


    有许多站点使用代理文件来传输图像或其他文件。不检查路径的有效性。

    所以。

    埃多克斯1〔2〕

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

    令人惊讶的是,有多少网站仍然存在这种缺陷。只需在google上搜索getfile.php,你就可以有一天的实地考察。


    我不想承认这个……但有一天我没有存储库的管理员密码(最讨厌的部分是必须使用vss:d),我发现了如何破解vss 2005。

    如果您创建的本地计算机帐户具有与vss帐户同名的管理权限,并登录,vss会说:

    1
    2
    3
    4
    5
    "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!!!!"

    这是我在谷歌上看到的第一个破解VSS密码的链接。

    当然,它不会提供您丢失的VSS密码。


    在我的情况下,情况还不错,因为数据不那么敏感:

    我得到了一个Excel文件,文件中溢出了要更新的宏,每个工作表都被锁定,宏部分受密码保护。我得到了密码,但我想我还是试着破解它吧。

    我发现一个程序可以在十分钟内完成,大部分时间可能只是下载时间。这个奇迹般的产品是什么?它能如此迅速、轻松地突破Excel安全性?openoffice.org.

    我不确定Office2007是否在这方面有所改进,但它让我感到害怕,有多少非技术人员可能正在使用Excel处理敏感信息并认为它是安全的。再说一次,这些类型的人可能根本不知道它提供的"安全"功能。


    我很惊讶我还没有看到微软工作组验证黑客提到。

    您可以下载验证您的Windows副本的控件,然后再允许您访问下载,或者您也可以将下面的一行javascript粘贴到地址栏中,然后单击返回。

    1
    javascript:void(window.g_sDisableWGACheck='all')

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


    嗯,只是一个

    1
    exec unchecked_parameter_from_the_web

    在python中解析用户提供的字典文本。那真的很可怕。


    据我所知,我们总机部门的Bleep系统有一个网络前端,可以用来发送消息,尽管它很难看,不太友好,所以我想看看,看看我们是否可以在我们的主要内部网站上使用一个表单,并通过我们的服务器将值提交给他们。

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

    1
    2
    Username: [username I had used]
    Admin: False

    为了确保它和我想象的一样糟糕,我打开了火狐浏览器,给它提供了URL,创建了2个cookies,我的用户名和Admin: True和lo,我有管理员权限。为了检查它,我创建了一个没有任何问题的新用户。更糟糕的是,在本地使用用户名意味着日志会显示出我的行为是由任何一个我想给它。

    通过默默无闻的安全措施不起作用,但当你把他们需要的一切都放在银盘上给人们时,它的作用就小得多。


    在20世纪70年代,斯坦福大学让2741台IBM2741硬拷贝终端遍布校园,并与一台IBM360/67联网。帐户密码是三个字符。在登录过程中,密码提示会将大约九个随机大写字符的三位blob套印,因此随后键入的密码可能会被blob屏蔽。然而,每个人都输入了小写的密码,这对于区分大写背景斑点来说是微不足道的。这意味着您通常可以走到任何终端,仔细阅读前一个用户通常留下的硬拷贝,并轻松使用他们的帐户和密码登录。


    从记忆中释义,但它很接近…

    1
    2
    3
    4
    5
    <form action="secretpage.html" id="authentication"          
          onsubmit="return document.forms.authentication.password.value == 's3cr3t'">
        Enter password: <input type="password" name="password">
        <input type="submit" name="Login">
    </form>

    我认识的一个人用这个来保护他的网站的"私人区域"。起初,他不想相信我,即使是他的浏览器也有这种奇怪的"查看源代码"功能。


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

    1
    2
    3
    4
    5
    6
    7
    public boolean canEdit(User user, DBColumn column) {
        if(true) {
            return true;
        } else {
            return false;
        }
    }


    我见过法国一家高端国防承包商的高层管理人员使用Skype进行非常机密的谈话。(据记录,Skype使用了很久以前中断的RC4加密算法)。

    我想可以原谅他们的无知,因为除此之外,他们还使用了windows和ms-word。(对于记录,MS Word保留以前使用此模板编写的所有文档的历史记录)。

    这就提出了一些有趣的问题,比如纳税人的钱流向何处,以及是否被明智地使用。


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


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


    在一个论坛中,我可以只读访问隐藏的线程和管理界面,只需将cookies中的用户名替换为admin的用户名,而不更改密码。


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


    2007年,一个相当大的机构的国防部网站配置错误,导致IIS Web服务器提供原始代码,主页中有硬编码的用户名/密码和数据库服务器信息。幸运的是,它很快就被抓住了,但我亲眼目睹了它,它非常令人震惊。不用说他们的网站被网络工程师离线了,直到开发人员修复了错误的代码。


    我为之工作的公司有很多安全问题…以下是一些更糟的:

    • 所有的前雇员仍然对所有的事情都有积极的解释,即使是那些被解雇或被解雇的人。
    • 我们开发的每个站点(200以上)都有相同的管理员用户名和密码,所有在这里工作的员工都会知道。

    史诗般的失败。


    我最好的朋友的弟弟刚刚完成学业。几天前,他向周围的每个人宣称自己是"网站管理员"和"网站开发人员"。我告诉他他的网站不好而且不安全。"把它们砍下来,"他回答。10分钟后,我把他4个站点的全部源代码发给他:)他做了些类似

    1
    < ? include $_GET['inc']; ? >"

    的事。

    你越厚颜无耻,就越容易受到攻击:)


    在我的第一份工作中,我是IT安全部门的实习生。当每个用户移动到不同的部门/角色时,我的任务是自动化对不同用户帐户的网络和应用程序访问。也就是说,我可以访问一些基本工具,比如查询分析器,以及一些数据库,但其他的没有多少。公司通常把所有的东西都锁起来,所以总是有权限重置和授予等等。

    在这项工作中,所有的兼职人员都被给予并且被要求使用一个小型的vb胖客户端应用程序来跟踪工作时间,并且在周末,一个按钮可以用来向登录用户显示他们在一周内工作的小时数以及他们将在那周得到的报酬。

    有一天,出于纯粹的无聊,我偶然发现网络上的小时间跟踪应用程序所在的目录,发现除了该目录中的exe文件之外,只有一个文件,一个settings.ini文件。

    当然,打开文件后,有一个明亮的纯文本连接字符串:用户、密码、数据库名称、服务器等等。

    在这一点上,我想这不可能是真正的信息,但在启动了查询分析器,并输入了in i设置后,我进入了主生产数据库,拥有任何人都需要给自己加薪的所有数据。对引导的完全读写访问。

    最后我向我的老板询问了谁做了什么,他平静地告诉我把它转给人力资源总监。

    让我告诉你,我从来没有一个更快的,亲自回复我的生活中任何其他电子邮件。

    第二天我开始工作,时间跟踪应用程序有了更新,可惜没有更多的settings.ini文件。


    我想这是我亲眼见过的最糟糕的一次。在过去的日子里(1980年代后期),我用COBOL编写了IBM370,后来被4341所取代。一天,我在查看文档时发现了一个命令,可以让您搜索磁盘上的所有内容。

    所以我搜索了我的密码。找到了。在附近找到了其他人的密码。

    如果我记得正确的话,密码被限制在六个字符以内,不区分大小写。我从那时起就记不起自己的密码,但我永远不会忘记系统管理员的密码;它是完全符合字符的。休息日。


    Windows95可以选择需要密码来解锁屏幕保护程序。但是,使用ctrl+alt+del,您可以终止屏幕保护程序。


    有段时间我…创造性差异…在我帮助构建的社区站点中,另一个编码人员添加了一个新的PHP文件,该文件列出了审批队列中的文件,其中还包含删除每个文件的链接。

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

    不知怎么的,一个网络爬虫找到了这个页面,跟踪所有的删除链接。

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

    另外,我与此事无关,直到当时的一名工作人员告诉我发生了什么事情,我才知道这个剧本的存在。我现在又为这个网站工作了,部分是为了确保类似的事情不会再发生。


    http://apache.org/.svn/entries


    我曾经打过一个BBS,在首页有一个"下载待办事项"选项。菜单上没有列出,但我打字时不小心发现了。

    然后我远程访问了那个家伙的DOS命令行。


    我最近看到的最大的安全漏洞是iOS4(iPhone)中的锁屏漏洞,它允许任何人即时访问任何iPhone(拨打电话、通讯录、通话记录、照片)。

    http://www.pcworld.com/article/208813/ios_4_lock_screen_security_defect_grantes_access_to_contacts.html


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


    我们有一个旧的计算机集群,它不是在我工作的一个实验室里运行的。几个本科生认为把它安装起来并运行起来会很有趣,这样他们就可以学习一些并行计算。好吧,他们让它运转起来,结果很有用。

    有一天,我进来查看统计数据……它以100%的速度运行。现在这是一个24节点的集群,我们中只有3个使用过它,所以它在这个负载下运行有点奇怪。我开始玩它,想知道是什么在加载它……结果发现有人获得了访问权限,并把它用作自己的小色情服务器和垃圾邮件发送器。我问本科生他们在上面装了什么样的安全装置,他们看着我说:"安全?我们不认为它需要任何东西。"

    我在上面加了个密码。把它当作色情服务器的人原来是其中一个大学生的朋友。


    我在浏览一个购物网站,当我输入我的电子邮件地址时,我注意到地址输入页面刚刚在URL中?Norderid=301"。

    那就下车。我把那个号码改成99,你猜怎么着?我知道住在本德的某位女士的姓名、地址和电话号码。

    几周前我给网站管理员发过邮件,他听起来不太高兴,但还没修好…

    在一段时间内,公司的"我为整个员工信息列表工作"(从地址到SSN再到工资,关于员工的所有信息)都存储在一个受密码保护的访问数据库中。

    使用您最喜欢的搜索引擎并查找如何恢复Access数据库密码。是的。

    把它拖到这里,你就得到了密码。一个五个字母的字典单词。


    几年前,一个朋友给了我一个他发现的旧斧头,希望能告诉我这是一件古老的艺术品。所以,在谷歌上搜索一些可能有助于识别的网站,我就可以链接到一个位于英国中部的博物馆网站。

    除了它放在我身上的那一页,我对整个网站拥有完全的管理员权限。作为一个负责任的人,我改变了账户所有者的名字,只是为了让他们知道我不是在胡说八道,并给他们发了一封电子邮件,建议他们在有人发现之前堵住让我进去的漏洞。

    不用说,我收到了网站所有者的一封非常感谢的电子邮件,他们向开发人员保证,故障已经被发现并修复了。尽管你不得不怀疑一个粗心的人的能力。


    几年前,一所学校开设了一个学习平台网站,可以将.php文件上传到该网站上,之后您可以执行该网站,因此他们为您提供了整个网站的完全访问权限。没有被其他学生发现,我认为错误仍然存在。


    一次事故tweeted密码由他的同伴……这是一个漂亮的浴室安全孔。


    有一个云渲染库,许可价格为2500美元,注册前的工作时间(如一分钟)有限。以及无限期工作的评估演示。搜索一个词"demo"的exe内容显示"[产品名称]demo"和附近的十六进制符号字符串。是的,那是登录名和密码。


    因为用户名和密码是相同的,而且它是为生产网站而不是为测试版本而发生的。alt text


    管理员在共享的fat32文件夹中设置了所有用户的主目录。

    • 这意味着您可以读取、写入和删除其他用户的文件。


    我记得申请大学的公共应用程序网站有一个"安全"功能,它宣布在一段时间后将注销你。但是为了达到这个目的,他们使用了一个警报框,如果你没有真正响应,它会暂停倒计时,使你的会话不确定。


    我所见过的最糟糕的安全漏洞是在早期版本的MS SQL Server(7.0版或2000版)中构建的,无法准确记住。

    安装此版本的SQL Server时,安装程序将默认为"sa"帐户提供空白密码!!!!(sa帐户是SQL管理员帐户,它可以在服务器上执行任何操作)

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

    但情况更糟。

    当时,安装了许多SQL服务器以在"本地系统"身份验证下运行服务,从而使SQL Server进程对系统具有无限的控制权。

    因为您可以在SQL Server中创建COM对象,所以您突然可以完全访问运行SQL Server的计算机。

    很多网站都是这样被黑客入侵的。


    不久前,JPG图像加载库中有一个窗口中的安全漏洞。电子邮件中的图像感染。ACK


    一个让我畏缩的安全漏洞是在一个我曾经维护的旧应用程序中,有一个settings.in i文件,数据库凭证为纯文本,所有用户密码都以纯文本存储在数据库中。

    我看到的大多数其他安全漏洞都是在我的高中和大学里。

    首先,我发现我可以通过一次(非常简单的)平洪攻击来关闭学校的互联网。不仅是我的高中网络,整个学校系统,包括大学的一部分。绝对没有限速。我演示完后,他们就把它修好了。(附带说明的是,这件事的"公开性"让我在第一份编程工作中被录用。)

    第二种可能性更大的可能性是:

    好的,所以学校里的每台计算机都连接到一个域等等。因此,当您登录到计算机时,它会复制一个通用的用户目录(包括应用程序数据等文件夹),然后继续登录。有些人出于某种原因拥有自己的登录名,而不是普通的"学生"帐户。嗯,当我浏览共享所有内容的公共服务器时,我发现了一个/users目录。在查看它时,我从一个普通的学生帐户中发现,我对每个用户目录都进行了读写操作,包括教师、管理员和普通学生帐户。

    对于愚人节,我曾计划编写一个简单的批处理文件或小程序,在每个人登录时弹出类似于Class of 09 rocks!的东西来演示它,但我害怕了。我也从来没有告诉过管理员,所以可能还有安全漏洞。


    在我工作的一个网站上,他们使用用户名和密码作为组合的主键。用户名自动是您的姓氏,不需要唯一。

    只有一件事是独一无二的…


    我看到一个缓冲区溢出,可以通过传真(理论上)导出。

    有一个自动文档路由过程,它将传真作为输入,对传真进行OCR处理并提取一些信息,然后根据这些信息进行LDAP搜索,等等。不知道它是否符合"最坏"的条件,但肯定让我笑了。


    一个"安全"的网站,每个页面都被加密,但登录页面除外!


    这是一个我没经常提到的。这是一个非常有效的安全漏洞,也是困扰大多数登录表单的漏洞。我差不多十年前发现的。

    我在多伦多大学学习,那里有一个叫罗西的系统,允许学生管理他们的学费和课程注册。他们在股东大会区域也有两个公共终端,仅限于显示Rosi网站,学生可以输入学生ID和密码登录和管理他们的资料。

    但是,在用户注销后,您可以进入终端,在浏览器中按alt left返回登录表单,然后按alt right只前进一个,然后单击刷新。此时,浏览器将要求您确认重新发布表单数据,如果单击"是",它将重新发布以前的用户登录/通过并登录您。

    大多数登录表单仍然容易受到这种攻击。解决方案是执行post/redirect/get或使用nonce键。

    我给我的大学管理人员发过很多次邮件,但我认为他们至少在我毕业离开之前不会解决这个问题。大约在2002年。


    当您丢失密码和恢复表单时,请询问用户名和电子邮件。并且不验证电子邮件并将密码发送到指定的电子邮件。

    编辑/报道:

    它是在一个本地付费/订阅的网站上发布的。很容易找到用户名,有些人使用名字。今天,电视台破产了(因为其他原因,比如缺乏专业性)。


    在签名代码中:

    1
    System.setSecurityManager(null);

    (您可以为此进行谷歌代码搜索)从进程中运行的所有代码中移除所有Java安全限制。可能没有好好考虑。


    这是很久以前的事了…但DEC的VAX系统过去是与客户一起提供的:

    登录:系统密码:管理器

    和登录:字段密码:服务

    大多数系统管理员都知道系统帐户,大多数(但不是全部)会更改它。然而,并不是每个人都知道字段帐户也有系统特权。


    XSS是我喜欢在网站上找到的东西。

    以下是我的发现日志的链接:

    全部:http://xssed.com/archive/author=dr.optix

    只有特价商品:http://xssed.com/archive/special=1/author=dr.optix/

    浏览它们很有趣!


    你知道你一直在阅读一家大公司是如何盗取客户的个人身份的吗?(事实上,在我身上发生过两次,我知道——一次是在我的健康保险公司,一次是在我的人寿保险公司)这通常是因为窃取了未加密的数据库备份磁带,并读取了其中存储的未加密个人信息。


    在的登录中,有一个隐藏字段,允许"网站管理员"选择要在成功和失败时包含的文件。

    是,/etc/密码有效。

    或者在"日志"目录中,有order-xxx.asc和order-xxx.txt,其中包含卡号,包括支票号和验证日期。


    我曾经有幸尝试保护一个"需要"密码才能访问管理界面的网站(ASP Classic)。当然,如果你只访问其中一个管理页面的地址,你可以做任何你想做的,登录或不登录。

    他们想知道他们是怎么被黑客攻击的。


    我听说,当你以电子方式提交报税表时,turbo tax会将你的SSN发送到一个纯文本文件中。这似乎不是个好主意。

    我还知道一家公司在桌面上以纯文本csv文件的形式存储信用卡信息。然后通过ftp将它们发送到支付网关….


    我们的电话在工作。

    您必须使用4位ID登录,然后按并输入4位密码,然后按。但是如果你不输入任何密码并按,它会让你登录。

    失败电话失败。


    中国的过滤软件——绿坝的官方网站将服务器的状态信息公开,供公众娱乐。

    好奇的人:

    http://www.lssw365.net/server-status

    出于某种原因,您可能希望在加载后不久按"停止"按钮,否则它只是说连接重置出于某种原因…


    整个经典的ASP购物车"Comersus"。整个过程就是一堆意大利面条式的代码,所有的SQL语句对于SQL注入来说都是成熟的,因为没有任何过滤操作。可悲的是,我在处理这个"申请"的过程中遭遇了将近两年的不幸,这绝对是一场噩梦!


    两个系统之间的"统一登录"——在URL中以自由文本形式显示密码……!

    这是一个"离岸"的政府项目。幸运的是,很早就注意到了。可怕的是,开发人员没有看到它有那么大的问题-真的让你感到惊讶。


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

    1
    if password ="a"

    去年我离开了一家汽车ERP公司,它的数百个客户的服务器上都有相同的管理密码。我想在我离开后他们并没有全部改变。


    在一些UNIX机器上(当然是所有的suno),您可以将setuid shell脚本链接到一个名为"-i"的文件。shell脚本会将文件名解释为它的第一个参数,并在拥有setuid文件的人的许可下运行"sh-i"=an interactive shell。

    因为大多数setuid shell脚本都是以根用户身份运行的,所以允许您执行需要根用户访问的操作,例如弹出CD或加载磁带。这意味着在20世纪90年代大多数大学的Unix机器上进行管理是微不足道的。


    Unix文本登录屏幕很容易重现…:)


    作为对所有读者的一个说明,无论是知情的还是其他的:我刚从一个专业人士那里买了一本800页的2008年版权书-在前言中,作者做了一个"嘿,等一下……",在前言中详细指出,不止一个有着丰富资历和现场经验的安全专业人士,嗯,表现得很低调……因为他们看到了一些入侵的东西,或者其他看起来相对比较新手的东西。

    由于未经授权的活动,在看似无害的情况下进行尝试,将有正式的程序。作为一名专业人士,他们中的一些被毁掉了。

    我注意到的最后一次入侵涉及到一个主要的银行服务,它已经存在了很长时间,以至于市民很少听到他们的品牌名称。所有的数据都是可以在整个商店中获得的,但奇怪的是,这个银行实体已经成为一个"清算所",为一个以上的零售品牌信用卡提供商处理信用卡交易(我不知道统计数字,但超过一半)。

    入侵者刚刚把一个(设备)放在空投处。[这是从世界出发的电信公司的接入点]没有花哨或复杂的交通监控工具,只是基本的。我建议每个人都监控今年2月以来的所有信贷活动:获得的是与当前活跃和有效的信贷账户上的有效名称匹配的有效CC。

    前所未有的。

    和往常一样,这是一个缺乏安全专业知识的人从管理当局的职位上经营一家商店。工程术语是"失效模式分析"…


    我最近被要求对一家公司的网站进行代码审查,以期我的雇主把这个网站作为一个维护项目。

    我很快就发现了网站根目录下的纯文本文件,其中包含大约6000名客户的信用卡详细信息,包括账单名称和地址以及CVV代码。它甚至没有想象中的名字!

    这是该站点最糟糕的问题,但它也充满了SQL注入问题。

    我们礼貌地指出了这些问题,网站所有者将其转发给原始开发人员进行解释。


    访问了一家相当知名的在线商店的联系人页面,并向下滚动,搜索电话号码。相反,我找到了一个接受所有文件类型的上传表单,并将上传的文件实际放在网站的根文件夹中,这意味着如果上传了一个名为test.php的文件,它将可以通过url mydomain.com/test.php调用。

    因为他们使用OScommerce(开源),所以对于那些有足够智商的人来说,编写一个脚本来获取所有的数据库连接细节,然后下载他们完整的客户数据表就不到5分钟了。

    我联系了他们,最后得到了下一次购买的折扣券,他们在几分钟内就删除了上传表单。


    我测试了一些银行出纳员软件,打电话给技术台安排了一次拨号IP会话。您要连接到哪个系统、生产或测试?

    真实的故事。


    最大的安全漏洞是,当Web开发人员设计开放密码字段注册表单时。密码字段显示您键入的内容,而不是空白。这样,当您在公共计算机上注册表单时,可以在密码字段中看到您键入的内容。很多网站都有这样的注册表格。

    我相信很少有安全性低的网站,管理员可以轻松访问用户的密码和登录信息。


    Web应用程序在IIS文件上传,没有过滤器。所以你可以上传exe,SMF)做的乐趣;


    我见过的最糟糕的情况是信用卡、密码和名字都以明文形式存储。我大概心脏病发作了。


    一些验证代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    public bool charsEquals(char[] input, char[] txt)
    {
        for (int i = 0; i < Math.min(input.length; txt.length); ++i)
        {
            if (input[i] != txt[i]) return false;
        }
        return true;
    }

    像这样使用:

    1
    if (charsEquals(inputPassword, requestedPassword))

    看了YouTube上关于Tux和Bill Gates之间战斗的喜剧视频,我不禁想到了这一点。当Tux在没有密码的情况下进入微软大楼时。


    我会说,最糟糕的安全漏洞是不知道/不了解您的环境和第三方工具,如果您将它们包括在您的程序中。

    一个关于原因的现实例子:

    在我去过的两所不同的学校,他们使用了一个由站在Windows上的第三方软件管理的网络。一个这样的工具监视磁盘空间,如果您结束了,它将警告您,并要求您删除文件或将其复制到软盘。

    但是…他们有一个帮助,使用了标准的Windows帮助查看器!!!!

    要绕过注销检查,只需按下电源按钮-关闭而不是注销,只需关闭应用程序!

    至于登录,您需要做的就是打开帮助,单击文件名中的File>Open,然后有很多不同的事情……

    您可以键入C:\Windows,一旦加载,键入*.*,然后右键单击Explorer.exe,选择Open,然后将框拖出方式/底角…当你关闭电脑时,没问题!

    您可以打开任务管理器并关闭应用程序。

    您可以打开Excel文档(或任何Office程序),启动宏并执行所需操作!

    所以…我会说,这家公司很傻,因为他们在其他程序中有各种各样的问题,但是,这是最大的,它可以被绕过,仅仅是因为他们使用了Windows帮助而没有意识到它的含义。


    我见过很多客户项目,这些项目被发送到支持中心,其中包含到实时SQL服务器数据库的IP地址、用户名和密码。


    我曾经忘记删除"管理员登录页面"。页面只是绕过LDAP登录并获得所有权限。它可以对客户的银行账户做任何事情。我太担心了。幸运的是,没有人知道网址。


    在我上中学的时候,县里的学校系统设置了他们所有的"安全"软件,让孩子们远离部分互联网或者改变配置设置和安装垃圾。除此之外,软件还相当边缘化(一些shell修改可以通过在文件>保存框中单击鼠标右键绕过),他们将教师的密码设置为teach

    是的,那很安全。


    一家出售电脑的公司有一个用FrontPage建立的网站,每个人都可以完全访问。


    1
    2
    3
    "select * from LoginMaster where UserId='" + txtUserId.Text +"'

                               and Password='" + txtPassword.Text +"';"

    我在一个运营MLM业务的生产网站上看到了这一点。上面的SQL语句非常容易被SQL注入。

    我也会在这里列出Hacme银行。根据现场,Hacme银行为:

    Hacme Bank? is designed to teach
    application developers, programmers,
    architects and security professionals
    how to create secure software. Hacme
    Bank simulates a"real-world" web
    services-enabled online banking
    application, which was built with a
    number of known and common
    vulnerabilities. This allows users to
    attempt real exploits against a web
    application and thus learn the
    specifics of the issue and how best to
    fix it. The web services exposed by
    Hacme Bank are used by our other
    testing applications including Hacme
    Books and Hacme Travel.


    我听说过一个在银行工作的程序员,他们(不管怎么说)用小数点后16位的精度计算了他们的内部(包括账户余额)。

    所以这家伙改变了银行转帐程序,把每笔交易的0.00001美元转帐到他自己的账户,剩下的转帐到原来的目的地。我想他们让他很快就明白了,但我必须承认,我第一次听到他的想法时,我觉得他的想法很好。


    默认登录凭据,尤其是当是admin/root和password时。


    在大多数未加密的应用程序或文件上,只需使用文件/进程十六进制编辑器就可以完全绕过安全性或预期的功能。当然,在大多数游戏中,无论是在线还是离线,给自己提供无限的黄金或上帝模式都是很好的,但也可以随意获取或编辑值,包括密码。事实上,有时候你所需要的只是记事本。幸运的是,记事本不在DMCA下联邦控制的计算机应用程序列表中…然而。

    编辑:我指的是利用"皇帝的新衣服"场景,只使用最简单的工具识别安全缺陷。在任何语言或平台上,在整个编程或消费社区中常见的一种场景,它可能也是一个通用的标准。


    符合这条线精神的新闻标题…在/的今天头版。ISP向客户数据库发送电子邮件


    我以前的学校的学生密码和他们的用户名一样,而且很容易得到他们的用户名(一个数字,如123233),然后你可以点击添加栏,找出学生的名字和姓氏,以及他们的用户名。所以很容易把随机的垃圾放进他们的账户,让他们认为"机器里有鬼"。


  • 我将在SunOS/Solaris的高级图形程序的主管那里获得我的学分,该程序支持即时消息,在该程序中,使用zephyr.vars或它的任何名称,您可以使一个图像出现在您列出的朋友的屏幕上,就像您让我高视阔步一样,我可以向您发送一个显示在您显示器上的图像。当我演示我写的程序以便主管给我评分时,我的一个朋友坐得很近,或者坐在隔壁房间里,让照片"大妈妈"出现在我的屏幕上。因为这件事,我从来没有讨论过,也没有受到过任何惩罚,所以我得到了这个项目的荣誉?第二个似乎是它被编程为显示big-mama.xxx而不是解决问题。

  • (之前)我更新了Perl脚本,并等待sysadmin反映对取代FW的更改。然后数据库就消失了,这不是一个bug,因为数据是与源一起存储的,因此更新源会消除持久性。

  • 物理访问或模拟登录提示或登录屏幕是另外两个很困难的情况,而不是算法太技术化。很容易理解物理访问有很多可能,模拟登录提示可以在许多不同类型的计算机和环境中进行。


    在PHP中,这是第一个包含文件:

    1
    2
    extract($_GET);
    extract($_POST);

    它允许覆盖未被get或post调用的变量。

    我的一个朋友曾经知道一个站点将SQL查询作为get参数传递。你知道有些人对此很开心。


    去年,我发现用于处理我们为我工作的公司的检查/声明的网站上布满了SQL注入漏洞。

    不用说,他们很快就把洞修好了。


    谁能忘记经典的Windows98安全漏洞?

    复制密码文本并将其粘贴到字处理器中会显示任何内容的密码。


    在网上发布你的Elmah错误日志怎么样?


    不控制密码数据输入元素中的逻辑运算符(或)。通过使用它,每个人都可以很容易地通过另一个条件。对于,选择查询将如下所示:

    1
    2
    3
    select *
    from TheTable
    where UserName=@id And Password=@pass OR 1=1


    我所看到的最糟糕的安全漏洞来自一家(非常糟糕的)托管公司。更糟糕的是,就在几个月前(2010年夏天)!您必须首先连接到主机包控制面板(您需要有效的凭据)。一旦登录,你所需要更改的就是从URL和Voil_中获取ID令牌,你就在另一个用户的控制面板中!您可以访问(保存/编辑/删除)电子邮件、文件、数据库。这些ID是连续的,所以你只需要做+1就可以进入下一个帐户。我希望有人为此被解雇!

    这是我和他们一起经历过的众多世界跆拳道之一!幸运的是我不是他们的顾客!


    我至少有一个以前的同事,他们可能有资格这样做。


    我的一个朋友通过EDCOX1×1进行登录。不用说,他从艰难的道路中学到了教训。


    使用faces和managedbeans的应用程序。用于编辑已登录用户的bean与自注册表单使用的bean相同,其中两个隐藏字段是唯一的区别。什么意思?如果你得到某人的文件编号(相当于美国的SSN),你实际上可以更改他们的密码。


    按Windows98登录屏幕上的"取消"按钮可以让您访问系统。


    我曾经黑客小说登录(DOS提示)。我编写了一个C程序来模拟登录提示,并将登录名/passowrd写入文件,然后输出无效的密码。

    我在大学时玩得很开心。


    最糟糕的安全漏洞是使用Internet Explorer的选项来记住您的密码。人们没有意识到,像Nirsoft这样的工具可以泄露你的所有密码。