あなたが見た中で最悪のセキュリティホール?[閉まっている]


413

今まで見た中で最悪のセキュリティホールは何ですか?有罪を保護するために詳細を限定しておくことはおそらく良い考えです。

何それの価値については、こちらです質問あなたはセキュリティホールを見つけた場合はどうするかについては、との会社が応答(ように見える)しない場合、いくつかの有用な答え。


47
コミュニティウィキimoでなければなりません...
ChristopheD

素晴らしいスレッド!DailyWTF.com
Dale

なぜ閉じたのですか?それは完全に合理的な質問ですか?!!
johnc 2009

15
60の回答と28の賛成票が5票を上回って終了するようです(AFAIKは1日たまるので、それを蓄積しました)。しかし、これが議論されるまで、私は再開を投票することを控えます。
rmeador 2009

7
あなたの質問が何時間もコミュニティーwikiであったとしても、このコメントは賛成投票に適したコメントです。これは、この質問と同様の質問はコミュニティーWikiであるべきであることを人々に思い出させるからです。それが私の考えです。
ヨレン

回答:


646

オンラインストアの初期の頃から:

ショッピングカートの数量フィールドに.1と入力すると、90%割引になります。ソフトウェアは総コストを.1 *コストとして適切に計算し、注文を梱包する人間は奇妙な "。"を単純に覆い隠しました。梱包する数量の前に:)


75
これは間違いなく、強く型付けされたシステムを使用することを支持する議論です。
Powerlord 2009

54
サイトは何ですか?90%割引が欲しい!!!
amischiefr 2009

58
たぶん、代わりに.10パーセントの量を要求するべきでした。;)
MiffTheFox 2009

81
ジェフ・ベゾス氏は、Amazonのごく初期の段階では、本の数がマイナスになる可能性があり、Amazonがあなたのアカウントに入金する(そして、あなたがそれらを発送するのを待っている)と述べた。youtube.com/watch?v=-hxX_Q5CnaAで
Jeff Moser

10
実際に支払った.1ハードドライブを実際に届けられた顧客の顔を見たいと思っていました。
2010

575

最も許されにくいセキュリティホールであり、残念ながら非常に一般的であり、簡単に見つけられるのは、Googleハッキングです。適例:

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

特に政府のサイトであるインターネット上のページ数が、クエリ文字列を介してSQLクエリを渡すのは驚くべきことです。これは最悪のSQLインジェクションの形態であり、脆弱なサイトを見つけるのにまったく労力を要しません。

マイナーな調整により、phpMyAdminの保護されていないインストール、MySQLの保護されていないインストール、ユーザー名とパスワードを含むクエリ文字列などを見つけることができました。



6
ああ神よ、なんて考えられないほど愚かだ。それは私がその開発者を箱を手にして人事部に行進させることです。
-squillman、

95
リトルボビーテーブルが再びストライキを... xkcd.com/327
gbjbaanb

86
OMFG ...次に悪い日が来たら、いくつかのテーブルを落とします
マイケルニーマンド

11
この例について私が本当に気に入っているのは、最初の結果がOracleブログからのものであるということです。
Ravi Wallau、2010年

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.

bash.orgから


2
Runescapeでは常に発生していました。
EvilTeach 2010年

7
この特定の交換が実際に起こった可能性はほとんどありませんが(何かを隠そうとしているときに「er」と入力するのは誰ですか?)、それでもおかしいです。
マイケルマイヤーズ

1
mmyers:誰かがrm -rfを取得するのに十分なほど愚かであることもほとんどありませんが、それは間違いなく起こります。私はそれを自分で見ました:)
Matthew Iselin

25
馬鹿の脳よりも安全なものはありません
Earlz

1
@EvilTeach彼らは実際にそれをRuneScapeに実装しました。冗談ではありません!
corsiKa

339

マイクロソフトでの最初の頃の実話。

目を覚ましてZDNet.comの見出しを見るその日まで、あなたは恐怖を知りませんでした " Blah "で発見された最悪のInternet Explorerのセキュリティホールがここにある "Blah"が6か月前に自分で記述したコードである。

すぐに仕事に取り掛かったとき、変更ログをチェックしたところ、別のチームの誰か(製品の変更を信頼できる誰か)が私のコードをチェックアウトし、正当な理由なく一連のセキュリティレジストリキー設定を変更していることがわかりました。再度チェックインしましたが、コードレビューを受けたり、それについて誰かに伝えたりすることはありませんでした。今日まで、私は彼がいったい何をしていると思ったのか分かりません。その後まもなく会社を辞めた。(彼自身の合意の)。

(更新:コメントで提起された問題に対するいくつかの応答:

まず、セキュリティキーの変更は意図的ではなく、悪意ではなく不注意または不慣れに基づいているという慈善的な立場を取ることに注意してください。どちらの方法でも証拠はありませんが、間違いを人間の誤謬に帰することが賢明だと信じています。

次に、私たちのチェックインシステムは、12年前よりもはるかに強力になりました。たとえば、チェックインシステムが変更リストを関係者に電子メールで送信しないと、コードをチェックインできなくなります。特に、出荷サイクルの後半に行われた変更には、その周りに多くの「プロセス」があり、製品の安定性とセキュリティを確保するために適切な変更が行われていることを確認します。

とにかく、バグは、Internet Explorerからの使用が安全ではないオブジェクトが、「スクリプトを実行しても安全」とマークされているとして誤ってリリースされたということでした。オブジェクトは、バイナリファイル(実際にはOLEオートメーションタイプライブラリ)を任意のディスクの場所に書き込むことができました。これは、攻撃者が悪意のあるコードの特定の文字列を含むタイプライブラリを作成し、それを既知の実行可能な場所であるパスに保存し、スクリプトを実行させるものの拡張子を付け、何らかの形でユーザーが誤ってコードを実行します。この脆弱性を利用した成功した「実世界」の攻撃については知りませんが、それを利用して実用的なエクスプロイトを作成することは可能でした。

そのパッチはすぐに出荷されました。

私はJScriptにさらに多くのセキュリティホールを引き起こし、その後修正しましたが、そのどれもが広報活動に近づくことはありませんでした。


81
間違いなく、これは実際には2つのセキュリティエクスプロイトです。もう1つは、変更を誰も気付かずに承認せずにコードをプロダクションビルドサーバーに取り込む方法です;-p
Marc Gravell

8
「私のコードをチェックアウトし、正当な理由もなく一連のセキュリティレジストリキー設定を変更し、チェックインし直したが、コードレビューを受けたことも、誰にも知らされなかった」-私には無能のようには思えない誰かからの悪意のような音が知っていたまさに、彼らが何をしていました。
ジュリエット

80
「愚かさで十分に説明できる悪意に帰することはありません。」-ハンロンのかみそり
デビッドRトリブル

15
マイクロソフト全体で使用することを義務付けられたソース管理システムはありません。最近のほとんどのチームは、Source DepotまたはTeam Foundationを使用しています。当然のことながら、Visual Studio製品チームは通常、Team Foundationを使用しています。自分のドッグフードを食べてくださいね。
Eric Lippert、

40
誰が仕事に行く前にZDNetをチェックしますか?
Neil N

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

最後の受信者は最も幸せでした;)


226
プレーンテキストのパスワードを保存しているという事実、またはemailBodyがクリアされないという事実について話していますか?どちらが悪いのかさえ分かりません。
クリストフプロボスト

208
StringBuilderを使用しないということですか?:D(冗談です。)
ShdNx 2009

58
@Kristof-彼は最後のユーザーがすべてのユーザーとパスワードのリストを取得するという事実を意味していると思います。:)
ドンブランソン、

141
登録プロセスの一環として自分のパスワードをメールで返すシステムは絶対に嫌いです。これには2つの欠点があります。1。システム内のどこかに私の平文パスワードを保存している。永続的なユーザーデータベースでない場合は、間違いなく登録処理システムです。2.これは、プレーンテキストまたはHTMLのいずれかのEMAILを介して送信され、インターネット上のメールリレーを介してSMTPで送信されます。これを傍受する可能性のある中間者が多数います。少なくとも、安全な情報を電子メールで送信する必要があると感じた場合は、公開PGPキーを指定して暗号化してください!
ジェシーC.スライサー、

16
MD5ハッシュを使用して、データベース内のパスワードを一度保護しました。しかし、虹のテーブルを介して結果を実行し、パスワードの約50%を照合した後...塩を追加するのに良い時期だと思いました。
マシューホワイト

206

古いIBM System 36ダム端末には、マクロの記録を開始するキーボードの組み合わせがありました。したがって、端末がログインしていないときに、マクロの記録を開始して、その位置のままにしておくことができます。次に誰かがログインすると、キーストロークがマクロに記録され、許可された最大のキーが記録されたときに記録が自動的に終了します。後で戻って、マクロを再生して自動ログインします。

alt text


204

私が今まで見た中で最悪のセキュリティホールは、実際に実際にコード化されており、Googleボットにデータベース全体を削除させました。

私が最初にClassic ASPを学んでいた頃、私は自分の基本的なブログアプリケーションをコーディングしていました。すべての管理スクリプトを含むディレクトリは、IISのNTLMによって保護されていました。ある日、私は新しいサーバーに移動して、IISのディレクトリを再保護するのを忘れていました(おっと)。

ブログのホームページにはメインの管理画面へのリンクがあり、メインの管理画面には各レコードのDELETE LINKがありました(確認なし)。

ある日、データベースのすべてのレコードが削除されているのを発見しました(数百の個人エントリ)。一部の読者がサイトに侵入し、悪意を持ってすべてのレコードを削除したと思いました。

ログから知るようになりました。Googleボットはサイトをクロールし、管理リンクをたどり、すべてのDELETE LINKSをたどり、データベース内のすべてのレコードを削除しました。Googleボットにうっかり妥協されて、ダンバズオブザイヤーを受賞するに値すると感じました。

ありがたいことに、バックアップがありました。


13
それがどれほどよくある間違いであるかを示していると思います。
si618 2009

96
そのため、アクションを変更するには常にPOSTを実行する必要があります。
再帰

7
@recursive:true、ただし、ディレクトリがパスワードで保護されていない場合、人間がすべてを削除することはできません。
DisgruntledGoat

2
リンクをプリフェッチするブラウザプラグインでこの問題が発生しました。私はかつてブログサイトで働いていましたが、1人のユーザーが彼女のブログへのすべてのコメントが不思議なことに消えるだろうと報告したとき、何日も戸惑いました。
マシュー

7
いいえ、あなたはその賞に値しませんでした。これが起こってて、バックアップがなかったら、それに値するでしょう。
Ryan Lundy

187

私が今まで見た中で最悪の穴は、空のユーザー名とパスワードを与えると管理者としてログインするWebアプリケーションのバグでした:)


144
怠惰な開発者のためのバグまたは機能?:)
si618

9
私はそのようなコードを見てきました。これは通常、 "SELECT * FROM [User] Where UserName LIKE '%" + userName + "%'"のように、ユーザールックアップがLIKEを使用するためです。また、管理者は通常データベースの最初のユーザーであるため、そのユーザーが返されます。
Pierre-Alain Vigeant 2009

11
なぜユーザー名でLIKEを行うのですか?... Adamと入力するときにadmと入力して管理者になることができます
Matthew Whited

20
ほとんどの企業では、アカウントをロックアウトする前に、特定のユーザーIDで3回ログインを試みています。したがって、3つの不正なパスワードを使用して他のユーザーのアカウントをロックアウトするのは簡単です。
デビッドRトリブル

3
LDAPディレクトリに対して認証を行う多くの企業Webアプリケーションでこれを確認しました。LDAPでは、空のパスワードを使用すると、匿名ログインが成功し ます。匿名ユーザーは多くのことを行うことはできませんが、このメカニズムを使用するWebアプリケーションはチェックまで行きません-彼らは単に「成功=正しいパスワード」を仮定します!
SimonJ

174

WebサイトのURLでこれに気づいたら。

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

最後のパラメータをadmin = 1に変更すると、管理者権限が与えられました。ユーザー入力を盲目的に信頼するつもりなら、少なくともそれをしていると電報を送らないでください!


19
便利な機能です;)WarGamesを見たことはありませんか?「すべての優れた開発者が彼らのシステムにバックドアを追加する」のような何かが彼に。
alex

38
そのため、おそらく&admin = JOSHUA
JohnFx

165

私はこれをデイリー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>

このIMHOに勝るものはありません。


21
これはあなたが思うほど愚かではないかもしれません。この簡単なパスワードは、「はい、私は連邦政府の出身です」というボタンのように機能する可能性がありますが、それを悪用しようとする人物が見つかると、「虚偽のクレデンシャルを提供した」(またはそれをどのように呼んだのか?) )
ilya n。

29
ilya:JavaScriptなので、ユーザーに表示されます。それを見た後、あなただけに行くことができるofficers.federalsuppliers.com/agents.htmlコントロールの任意の種類をバイパスして、。
アルシエンデ2009

68
心配しないでください。Webサイトが著作権で保護されている限り、DMCAは100%の保護を提供します。JavaScriptを「回避」することはできません。
スティーブハノフ

13
@スティーブ・ハノフ:「迂回」の興味深い定義があります。そのURLをブラウザーに入力した場合...またはそれをコピー/貼り付けした場合...私は何もバイパスせず、ブラウザーを使用してアドレスバーに入力したアドレス。これは、Webブラウザーの使用目的の1つです。
Powerlord 2009

46
おめでとう、あなたは、あまりにも悪いことはことを陪審員を説得するために300Kをしている無実のコスト
ダスティン・ゲッツ

141

名前のないままの大学でも、彼らはすべてのアクションクエリをフォームの代わりにURLを介して渡していた。

Google Botが登場してすべてのURLを調べ、データベースを一掃するまでは、問題はありませんでした。


18
設計による古き良きSQLインジェクション。その「機能」が組み込まれているレポート機能を使用してきました
。– ICodeForCoffee

18
@ICodeForCoffee:SQLインジェクションはどこにありますか?これは、GETとPOSTの目的を混同しているだけです。これは、初心者のWeb開発者がよくある間違いです。私はこの正確な問題についてのデイリーWTF記事を読んだことを思い出します。
rmeador

ウィキペディアにこの問題がある場合、非常に初期のバージョンではなかったのですか?彼らは編集などを元に戻すリンクを持っていました。
DisgruntledGoat

14
ここでの本当の問題は、Googlebotが認証なしでデータベースをワイプする可能性があることです。
MiffTheFox 2009年

34
彼らがグーグルのキャッシュからそれらを取得できたことを願っています。
fastcodejava

137

誰もソーシャルエンジニアリングを取り上げていないことに驚いたが、私はこの記事から抜け出した

概要:悪意のあるユーザーは、数十個のフラッシュドライブを購入し、自動実行ウイルスまたはトロイの木馬をロードしてから、深夜に会社の駐車場にフラッシュドライブを振りかけることができます。翌日、みんなが現れて、キャンディーの形をした光沢のある魅力的なハードウェアにつまずき、「ああ、無料のフラッシュドライブ、何が入っているのだろう」と自分に言い聞かせます。-20分後、会社全体のネットワークが解放されます。


69
自動実行は悪です。
マークランサム

22
@mmyers:フラッシュドライブを禁止するのは良い方法ではありません。自動実行/自動再生を中断します。
ジェイ

10
少し前に、別のアプローチをお読みください(フロッピーディスクの時代から)。「会計データ-機密」というラベルの付いたブート感染フロッピーディスクをオフィスの廊下に保管し、5分間待ちます。たまらない!
ロドリゴ

13
幸い、私はいつでもLinux Live CDから起動して、そこからフラッシュドライブを調べることができます。
David Thornley、

6
@ジェイ-残念ながら、何人の人がファイルを見て、「何をしているのか見るために」それらをダブルクリックしますか?人々が考えていないので、禁止は多くの場合必要です。
JasCav 2010年


103

マイクロソフトボブ
(クレジット:ダンの20世紀の放棄ウェア

3回目にパスワードを誤って入力すると、パスワードを忘れたかどうかを尋ねられます。

http://img132.yfrog.com/img132/8397/msbob10asignin15.gif

しかし、セキュリティを確保する代わりに、パスワードが入力されるまで正しいパスワードの入力を求め続けたり、何度か間違って入力した後にロックアウトしたりするのではなく、新しいパスワードを入力すると、元のパスワードが置き換えられます。誰でも、パスワードで保護されたMicrosoft Bobアカウントでこれを実行できます。

事前の認証は必要ありません。つまり、User1は自分のパスワードを3回間違えて入力し、4回目に新しいパスワードを入力するだけで、自分のパスワードを変更できます。「パスワードの変更」を使用する必要はありません。

これは、User1がUser2、User3 ...のパスワードをまったく同じ方法で変更できることも意味します。どのユーザーも他のユーザーのパスワードを3回間違えて入力し、プロンプトが表示されたら新しいパスワードを入力するだけで、そのアカウントにアクセスできます。

http://img132.yfrog.com/img132/9851/msbob10asignin16.gif


7
これは、コンピューターがドメインによって管理されていない場合のWindows自体と同じ動作です。Windows Vista Ultimateでも、いつでもパスワードをリセットできます。サービス拒否攻撃は、許可されていないアクセスよりも大きな脅威と考えられていると思います。特に、とにかくドライブを別の場所に再マウントするだけでほとんどのものを入手できます。この場合のパスワードの目的は、侵入を検知するためではなく、侵入を検知するためです。
Jeffrey L Whitledge 09年

1
@ジェフリー:ブラックハットが物理的にアクセスできるようになると、それはほぼ「ゲームオーバー」になります。これから保護する場合は、深刻な暗号化(およびハードウェアとソフトウェアのキーロガーをスキャンする方法など)が必要です。
David Thornley、2010

8
私より賢明な誰かがこれはちょうど良い脅威モデリングであると指摘しました。「ボブ」はネットワーク化されていない時代の家庭用であり、あなたの妹や二日酔いからのDOSの試みは、泥棒よりもはるかに可能性が高かった。ボブはあなたのアカウントにアクセスしたことを知らせましたが(古いパスワードが機能しなくなったため)、それ以上は試みませんでした。
bgiles、

20
妻は私がこれを見ていたのを見ただけだ…彼女:「あらまあ!それはどんなプログラムなの?!」私:「...マイクロソフトボブ?」彼女:「マイクロソフトボブが大好きでした!」ため息 ...
ティムグッドマン

10
@ChristianWimmer-「Parachute」とマークされたバックパックを人々に与えるようなもののように聞こえるので、背中の感覚に慣れることができますが、そこにはパラシュートはありません。
JohnFx

102

私はジョーXの以前の自宅住所を持っていて、同じ都市の彼の新しい現在の住所を知る必要がありましたが、彼に連絡する方法がありませんでした。私は彼がメールカタログの通常の毎日の山を受け取っていると思ったので、(ビクトリアの秘密、またはスイスのコロニー、または他の大きなメーラーとは対照的に)シーズキャンディーの800番を任意に呼び出しました:

私:「こんにちは、ジョーXです。私の古いアドレスと新しいアドレスの両方で、メーリングリストに2度アクセスしていると思います。コンピュータは、[古いアドレス]または[偽のアドレス]に表示しますか? ?」

オペレーター:「いいえ、[新しい住所]でお見せします。」


36
ああ、ソーシャルエンジニアリングが大好きです。セキュリティの人間的側面は通常、最も弱いものです。
EMP


95

テキストボックスに1 = 1を与えると、システム内のすべてのユーザーリストされます


325
ボビーテーブルからのご挨拶。
ガンボ

4
@Gumboのコメントを回答の4倍に投票するにはどうすればよいですか?
ライライアン

12
簡単に
言え

4
Bobby Tablesのコメントの221人の賛成投票者の1人が、Bobby Tablesとは一体何なのかを私たちに伝えますか?
kirk.burleson

15
@ kirk.burleson:xkcd.com/327
gspr

76

生活のためのアプリケーションセキュリティコンサルタントであるため、何かを介してWebサイトの管理者になることができる多くの一般的な問題があります。しかし、本当にすばらしいのは、100万ドル相当の靴下を購入できる場合です。

それはこのギグで作業している私の友人でしたが、その趣旨は、現在非常に人気の高いオンラインブック(およびその他すべて)のショップのアイテムの価格がHTML自体に非表示フィールドとして保存されていることです。初期の頃、このバグは多くのオンラインショップでしたが、彼らはウェブを理解し始めたばかりでした。セキュリティの認識はほとんどありません。つまり、HTMLをダウンロードし、隠しフィールドを編集して、注文を再送信するのは誰ですか?

当然、価格を0に変更し、100万足の靴下を注文しました。価格をマイナスに変更することもできますが、これによりバックエンドの課金ソフトウェアのバッファオーバーフローの一部が発生し、トランザクションが終了します。

別のものを選択できるとしたら、それはWebアプリケーションのパス正規化の問題でしょう。foo.com?file=../../../../etc/passwdを実行できるのは素晴らしいことです


9
すごい、あなたは二度と足りない靴下を見逃すことはないでしょう!
si618 2009

75
靴下を手に入れましたか?
アレックスバレット

32
注文が完了し、フルフィルメントシステムが倉庫に警告しました。私たちはそれがおそらくうまくいくことに気づき、注文をやめるべきだと私たちの連絡先に伝えました。どうやら少し遅れて、倉庫管理者が注文が本物であることを確認するように求めてきたようです。彼はそれがソフトウェアのエラーだと賢明に考えていました。
コリン

27
@StuperUser、もちろんあなたの足で。
ストレッジャー、

12
ストレージに問題はありません。イケアのウェブサイトをハックして、100,000セットの引き出しを注文してください
Neil Aitken

64

誤って、データベースのルートパスワードをソース管理にコミットしています。Sourceforgeでのソース管理だったので、それはかなり悪かった。

言うまでもなく、パスワードはすぐに変更されました。


144
OK、パスワードはすぐに変更されました ...しかし誰が
イーモンネルボンヌ、

1
この道を下っていた。彼らは当然、非常に簡単にチェックすることで、設定ファイル、DBにあなたのパスワードを置くように頼むので、(例えばジャンゴ、のような)多くのシステムが事実上、これを奨励する。
mlissner

56

主要なIT従業員が退職するときに管理者パスワードを変更しない。


1
または、admin / adminなどの工場出荷時のデフォルトのままにする(同様に、または特にハードウェアで)...
Gnark

47
彼は彼らがいた私のマネージャーに言ったから、私は私が卒業した後、彼らは私のために、より高いグレードのジョブを作成して私に言ったディレクトリで、に沿って張られた後、大学を去ったが、私は、後に見つかった-私が悪い方を持っていないに昇進させてくれ。言うまでもなく、私はそれについて満足していませんでした。具体的には、上司に、アクセスしたすべてのパスワードを変更するように指示しました。私が去った翌週に、私は上司からrootパスワードが記載された電子メールを受け取りました。何か問題が発生した場合に転倒したくないので、システム管理者に連絡して、それが再び変更されたことを確認しました。
ジョー

10
@ 2年生:ファインマンの伝記で彼がマンハッタンプロジェクトの秘密を収容する巨大で超安全な金庫の多くがデフォルトの組み合わせのままにされていたと彼がコメントしたことを思い出します。
ブライアン

12
私は、ソ連のスパイが金庫に近づき、彼が考えることができるすべてのものを安全に解読しようとしていることを想像することができます。祖国ロシアのために!"
エリック

3
これを読んでいると笑顔になれません。私は夏に有名なスウェーデンの会社でIT技術者として働いていました。エンジニアとして働くために数年後に戻ったとき、いくつかのソフトウェアのインストールに問題がありました。突然、私は古い管理者パスワードを思い出しました。それは働いた=)
Viktor Sehr

50

これは私が今まで見た中で最悪のセキュリティホールではありませんが。しかし、これは少なくとも私が自分で発見した最悪のものです。

オーディオブックのかなり成功したオンラインショップでは、認証に成功した後、Cookieを使用して現在のユーザーの識別情報を保存しました。しかし、Cookie内のユーザーIDを簡単に変更し、他のアカウントにアクセスして購入することができます。


うわー...私は継承したASPコードで私に正確なことが起こりました。
Radu094 2009年

私はこの正確な問題があるアプリを維持しています。確かに、修正リストの上位にあります。ありがたいことに、これはeコマースサイトではありません。
クエンティン・スターリン2010

12
これは、ほとんどの人が理解しているよりも頻繁に起こります。
NotMe 2010

47

.com時代の幕開けの頃、私は海外の大手小売店で働いていました。競合他社が数か月前にオンラインストアを立ち上げたとき、私たちは非常に興味深く見守っていました。もちろん、実際に試してみましたが、すぐにショッピングカートが混同されていることに気づきました。クエリ文字列を少し遊んだ後、お互いのセッションをハイジャックできることに気付きました。適切なタイミングで、配送先住所を変更できますが、支払い方法はそのままにしておきます...カートにお気に入りの商品を入れた後は、それですべてです。


もちろん、これはあなたが実際にこれを実行し、アドレスを「彼らに」伝えた場合、彼らが商品を不正にあなたに送るようにするために悪意を持って何かをしたことを意味します。
David Thornley、

6
はい、それが主要なセキュリティホールになります。実際に購入ボタンを押したわけではありませんが、可能でした。そして、ニュース報道に基づいて、何人かの人々はそうしました。
エリックJ.

45

私が現在勤務している会社に初めて入社したとき、上司は新しいクライアント候補の既存のeコマースWebサイトを見ていました。これは、IISとeコマースの両方のかなり初期の段階であり、セキュリティは厳密ではありませんでした。

長い話を短くするために、彼は(単に好奇心から)URLを変更し、ディレクトリの参照がオフになっていないことに気付いたので、URLの末尾からページ名を切り取って、上のすべてのファイルを見ることができました。ウェブサーバー。

ダウンロードしたAccessデータベースを含むフォルダーを参照することになりました。これは、eコマースの顧客/注文データベース全体であり、暗号化されていない数千のクレジットカード番号でいっぱいです。


1
これは、データ駆動のWebサイトが最先端の目新しさであった12年近く前のことでした。多くのサイトがAccessやそれに類するものに対抗しました。なぜなら、コアビジネスの「余地」と見なされているもののためにSQL Serverライセンスに投資することを誰も望まなかったためです。物事がどのように変わったのか!
Mark Bell


44

私が13歳のとき、私の学校は学生のためのソーシャルネットワークを開設しました。彼らにとって残念なことに、URIを「?userID = 123」のような別のユーザーIDに変更し、そのユーザーのログインになり得るセキュリティバグを発見しました。明らかに私は友達に話しました、そして結局、学校のソーシャルネットワークはポルノでいっぱいでした。

それをお勧めしませんが。


3
なぜこれを勧めないのですか?どうした?
Simon_Weaver

55
@Simon_Weaver:私は13歳の人は通常ポルノが苦手だと思います。
スラック

@slacker +1で1000担当者に!評価コメントがあなたに担当者を与えるとは思わないのを除いて:-(
Simon_Weaver

2
「ポルノのセンスがいい」-矛盾した表現があります。
ザンアンダーソン、2011

43

スーパーユーザーアクセスの空白のユーザー名/パスワードフィールドは、最悪だと思います。しかし、私が見たのは

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

一人のオペレーターが悪すぎると、そのような大きな違いが生まれます。


10
うわー、私は自然にそれを修正する必要があります
wag2639

ハッシュの代わりに実際のパスワードが使用されているという事実も実際にはかなり悪いです...
Peter Kriens 2012年

最初は「何が問題なのですか」でしたが、次に「AAAAaaaaaaaAAAA!OMG」でした
Bojan Kogoj

42

鉱山は私が顧客であった銀行のためのものでしょう。ログオンできなかったので、カスタマーサービスに連絡しました。彼らは私にユーザー名だけを要求しました-セキュリティの質問も私の身元の確認もしませんでした。次に、パスワードのリセットを登録済みのメールアドレスに送信する代わりに、送信先のメールアドレスを尋ねました。私は彼らに私が登録していたものとは異なるアドレスを与え、私のパスワードをリセットすることができました。

つまり、基本的に、ハッカーが必要とするのは私のユーザー名だけであり、それから彼は私のアカウントにアクセスできます。これは、米国の人々の少なくとも90%が聞いたことがある主要な銀行のためでした。これは約2年前に起こりました。十分に訓練されていないカスタマーサービス担当者だったのか、それが標準的な手順だったのかはわかりません。


22
それはどの銀行ですか?
TigerTiger

5
@Si:「私は顧客だった...」と書いてあります。これで問題は解決したと思います。:)
ShdNx 2009

8
これは、FDICによって押収され、今年の初めにチェイスに売却されたワシントンミューチュアルでした。また、奇妙なエラーメッセージが表示されました。一時的なものからパスワードを設定しようとすると、「パスワードが一致しません」というエラーが何度も発生しましたが、同じで、コピー/貼り付けさえしました。スラッシュのように「無効な文字」を置くと、無効な文字を言うのではなく、別のメッセージが表示されることに気づきました。
Sean

11
@エリザベス:うーん...あなたはそれがフィッシングを防ぐためだということを理解していますか?誰かが銀行のWebサイトをコピーまたは模倣しようとした場合、まったく同じに見える可能性がありますが、おそらくデータベースにアクセスできないため、適切なセキュリティ状況を把握できません。それがそこにある理由です。すべてのユーザーが証明書をチェックできるほど賢いわけではありません(同様に
ブラフされ

13
金融口座を保護するのは行き過ぎですか?...
ジョーフィリップス

36

作成したものを共有します。やや。

何年も前に、私が働いていた会社がASP Webサイトでインデックスを作成したいと思っていました。それで、私はインデックスサーバーをセットアップし、いくつかの管理ディレクトリを除外して、すべてが良かったです。

しかし、営業担当者が自宅から仕事ができるようにWebサーバーへのFTPアクセスを許可していた誰かが私には知らなかった。これはダイヤルアップの日々であり、ファイルを交換する最も簡単な方法でした...そして彼は物事をアップロードし始めました。私たちのサービスのマークアップの詳細を含むドキュメントを含みます...インデックスサーバーはインデックスを付け、人々が「コスト」を検索したときにサービスを開始します。

子供を覚えて、ブラックリストではなくホワイトリスト。


76
「ブラックリストではなくホワイトリスト」は良いアドバイスですが、ここで学ぶには正しい教訓ではないと思います。正しい教訓は、「プライベートデータをパブリックサーバーに置かないこと」です。また、「営業担当者にサーバーへのアクセスを許可しない」。
rmeador 2009

7
ああ、答えとアバターの調和。
ÇağdaşTekinの

35

最も単純であるが、実際にコストに見合うものの1つは、

PayPalなどのエンジンを使用する支払いシステムは、支払いが成功した後のPayPalからの応答が正しくチェックされないため、欠陥がある可能性があります。

例えば:

CD購入のWebサイトにアクセスして、カートにコンテンツを追加すると、通常、チェックアウト段階で、ページ上にpaypalのフィールドが入力されたフォームと、[Pay]への送信ボタンが表示されます。

DOMエディターを使用して、「ライブ」フォームに移動し、値をから£899.00に変更できます。£0.01て、[送信]をクリックします...

PayPal側にいると、金額が1ペニーであることを確認できるので、それを支払うと、PayPalはいくつかのパラメーターを最初の購入サイトにリダイレクトします。 payment_status=1。支払額を検証します。

十分なログが記録されていない場合、または製品が自動的に発送される場合は、コストがかかる可能性があります。

最悪の種類のサイトは、アプリケーション、ソフトウェア、音楽などを配信するサイトです。


12
+1同意します。ホストされた支払いページの状況では、発信元のWebサイトでは、ユーザーが値を投稿できるようにするべきではありません。代わりに、ユーザーがクリックすると、ページはそれ自体にポストバックする必要があり、サーバーは適切な値を使用してポストopを作成し、支払い「ゲートウェイ」に直接送信します。それはすべて、ゲートウェイが期待するものとそれとの相互作用がどのように行われるかに依存しますが、私はあなたが説明したよりも安全なシナリオを持たないその価値のあるゲートウェイを見ることができません。多分私は間違っています。
John K

サーバー側を介して投稿リクエストを模倣できるため、ゲートウェイに送信されるデータが正確であることを確認し、ロケーションヘッダーを使用してそれらをリダイレクトできます。
RobertPitt、2011年

PayPalには、サイトでこれを防止できる暗号化オプションがあります。サイトは最初にデータを自分自身にポストバックし、注文データをサーバー側で暗号化して、彼らとPayPalだけが知っているキーを使用して、そのデータをPayPalに送信します。暗号化されていない注文データは、フォームフィールドでそのように送信されることはありません。ただし、これはオプションにすぎないため、PayPalを使用しているすべてのサイトがそのようにするわけではありません。彼らはすべきです!
10

35

あなたが覚えることができるすべてのセキュリティ許可を設定することを可能にしたオンラインドキュメントマネージャーはどうですか...

ダウンロードページにアクセスするまでです... download.aspx?documentId = 12345

はい、documentIdはデータベースID(自動インクリメント)であり、すべての番号をループして、だれでもすべての会社のドキュメントを取得できます。

この問題について警告されたとき、プロジェクトマネージャーの応答は次のとおりです。しかし、誰もこれに気づいていないので、そのままにしましょう。


56
私はその態度が本当に嫌いです。レッスンを教えるためだけに他の人にやってもらいたいと思っています。
syaz 2009

私は最後の仕事で最終的にこのような穴を埋める許可を得た...それについて何ヶ月も不平を言った後。
まぶたがない2009

これを可能にするウェブサイトを見つけることは珍しいことではありません。最近の記事またはアーカイブされた記事のディレクトリが表示されますが、ログインしなければ、1〜2ページよりもリスト内を戻ることはできません。最初の記事を開き、URLの適切なパラメータを任意の投稿に変更してください記事を見たい番号。
bob-the-destroyer

2
これがその良い例です。このNYタイムズの記事:nytimes.com/2009/01/14/dining/14power.html?_r=1&ref=dining表示されている画像は、はるかに陽気なオリジナルバージョンの代わりに使用できます。グラフィックス
Jamie Treworgy 2010年

34

ノルウェーのピザ配達にはセキュリティホールがあり、新しい光沢のあるインターネットポータルで負の量のピザを注文して無料で入手することができました。


42
もう1つのセキュリティホールは従業員ですよね?「まあ、コンピューターは15個のピザを無料で手に入れると言っているので...さあ、どうぞ!...ヒントをもらいますか?」
ネイサンロング

6
...あなたのピザ屋もDVDを配りますか?Oo
mpen 2009

5
元ピザドライバーだったので...いいえ、そのようなことについてネズミにろばを与えたわけではありません。そして私たちのマネージャーもしませんでした。
まぶたがない2009

48
あなたが売っているピザを集めるために配達人が来ませんか?
ジョンB

7
うわー。そして配達人はあなたに先端を与えなければなりませんでしたか?=))
AndreiRînea2010年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.