完璧なものは存在しないため、抜け穴が発生することは避けられません。抜け穴が発生すると、データベースのサフィックスを変更したり、データベースの名前を変更したりするなど、さまざまな対策が講じられます。これだけやれば問題は解決すると思っている人も多いですが、現実はあなたや私が望んでいることではないことが多く、これをやったとしてもマスターに襲われる運命から逃れることはできません。
データベース ダウンロードの脆弱性は、スクリプトの脆弱性を最も多く引き起こすものとして、ますます多くの人に知られるようになりました。情報技術の更新が急速に進む現代では、脆弱性が発生すると、データベースのサフィックスを変更したり、データベースの名前を変更したりするなど、さまざまな対策が講じられます。これだけやれば問題は解決すると思っている人も多いですが、現実はあなたや私が望んでいることではないことが多く、これをやったとしてもマスターに襲われる運命から逃れることはできません。このため、セキュリティ スキルを高めるためには、いくつかの攻撃手法を理解する必要があります。
1. ASP および ASA というサフィックス名を持つデータベース ファイルのダウンロードを強制する
時間を節約するために、ほとんどのネットワーク管理者は、Web サイト上の記事システム、フォーラム、その他のプログラム用に他の人のソース プログラムを直接ダウンロードし、いくつかの変更を加えて使用します。現在、多くの ASP ソース プログラムでは、データベース サフィックスが元の MDB から ASP または ASA に変更されています。本来はそれが良いことなのですが、情報が非常に拡大した社会においては、従来のやり方では限界があります。 ASP または ASA サフィックスが付いたデータベース ファイルの場合、ハッカーはその保存場所を知っていれば、Thunder などのダウンロード ソフトウェアを使用して簡単にダウンロードできます。図 1 は、作者が Thunder を使用してダウンロードしたデータベース ファイルです (データベースのサフィックスは ASP であることに注意してください)。
2. 致命的なシンボル-#
多くのネットワーク管理者は、データベースの前に # 記号を追加するとデータベースがダウンロードされなくなると考えています。はい、私も IE は # 記号の付いたファイルをダウンロードできないと思いました (IE は # 記号の後のコンテンツを自動的に無視します)。しかし、成功には失敗も伴います。Web ページには通常の方法でアクセスできるだけでなく、IE のエンコード テクノロジを使用してアクセスすることもできることを私たちは忘れています。
IE では、各文字がコードに対応し、コード文字 %23 は # 記号を置き換えることができます。この方法では、サフィックスが変更され、# 記号が追加されただけのデータベース ファイルをダウンロードすることができます。たとえば、#data.mdb はダウンロードしたいファイルです。IE を使用してデータベース ファイルをダウンロードするには、ブラウザに %23data.mdb を入力するだけです。このように、# 防御メソッドは役に立ちません。
3. 暗号化されたデータベースへのアクセスは簡単です
ネットワーク管理者の中には、ハッカーがデータベースを入手したとしても、開くにはパスワードが必要になると考えて、Access データベースを暗号化することを好む人もいます。しかし、その逆は真実であり、Access の暗号化アルゴリズムは脆弱すぎるため、ハッカーは Access データベースのパスワードを解読できるソフトウェアをインターネット上で見つけるだけで、わずか数秒で簡単にパスワードを入手できます。 Accesskey など、オンラインにはこのようなソフトウェアが多数あります。
4. インスタントキルデータデータベーステクノロジー
データベースエクスプロイトテクノロジ自体は、スクリプト脆弱性のランクに属するはずです。これをここで言及する理由は、それがデータベースダウンロードの脆弱性において決定的な役割を果たしているためです。注意深く見てみると、読者は上記のテクニックを知っていることを前提としていることがわかります。データベース名は特定の条件下でのみ実装できます。しかし、多くの場合、データベースの名前を知ることができず、これ以上進めないと非常にイライラするかもしれませんが、データベース データベース テクノロジーの出現により、そのイライラが解消されるだけではありません。これまでの技術を組み合わせて活用することも可能になります。
多くの人が ASP を使用してデータ接続ファイルを作成する場合、常に次のように記述します (conn.asp)。
- …
- db=データ/rds_dbd32rfd213fg.mdb
- Setconn=Server.CreateObject(ADODB.Connection)
- connstr=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=&Server.MapPath(db)
- conn.Openconnstr
- 関数CloseDatabase
- 接続を閉じる
- Setconn=なし
- …
このステートメントには問題がないように見えますが、データベースの名前は非常に奇妙です。データベース総当たり技術がなければ、そのようなデータベース名を推測できる可能性はほぼゼロです。しかし、そのような短い文には無限の情報が隠されています。インターネット上のほとんどのプログラムにこの脆弱性があると言えます。データベースの場所にアクセスするには、アドレス バーのデータ接続ファイル conn.asp (通常はこれ) の前にある / を %5c に置き換えるだけで済みます。次のことは言う必要はありません。彼らの頭を使うだけでは何もできません。
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。