2011-01-13 18 views
1

状況:私は私の友人のためのいくつかの侵入テストを行うと、デモ環境に郵便行くために総クリアランスを持っていMSAccessをSQLインジェクション

。これは、オンラインASPアプリケーションでXSSの穴が見えたためです(エラーページでエラーが発生し、HTMLを許可するparamとしてエラーが発生しました)。

彼はAccess DBを持っており、入力検証が不十分であるため、私は別の穴に遭遇しました。彼はwhere節にSQLインジェクションを許可しています。

私からいくつかのものを試してみました: http://www.krazl.com/blog/?p=3

しかし、これは限定された結果を与えた: MSysRelationships開いているが、彼のオブジェクトテーブルが遮蔽されています。 'UNION SELECT 1,1,1,1,1,1,1,1,1 MSysRelationshipsから' 1 '=' 1 < - 親テーブルには少なくとも9個の列があることがわかっています。関係テーブルを利用してどのようにテーブルの名前を得ることができるのか分かりません(構造の説明が見つかりませんので、何を選択するのかわかりません)。

いくつかのテーブル名を使用していますが、 。

私は彼のDBをゴミ箱にしたくないが、私はいくつかの裏に重大な欠陥を指摘したい。

誰でもアイデア?

+0

http://stackoverflow.com/questions/512174/non-web-sql-injection – onedaywhen

+1

私は1996年以来専門的にAccessアプリを開発してきましたが、WebページのバックエンドとしてJet/ACEを使用することはありません。その環境での使用のために設計されておらず、そこでは使用しないでください。 –

答えて

1

通常ここから続行するには2つの方法がありますがあります。テーブル名は、その中に格納されているデータの種類によって推測することもできます(通常、ユーザーはユーザーデータを格納しています...)。他の方法アプリケーションから表または列の名前をフェッチできるかどうかを確認するために、エラー・メッセージをアプリケーションで生成することです。

関連する問題