web-dev-qa-db-ja.com

スクリプトまたはプログラムを使用して、SQLインジェクション攻撃についてサイトを自動的にテストするにはどうすればよいですか?

私は検索して SOについての良い議論 を見つけましたが、それは数年前のものです。

サイト全体のURLにSQLインジェクションホールを見つけるために、どのようなプログラムがありますか、または実行できる簡単なスクリプトはありますか?

できれば、自分のサイトをクロールし、リンクからリンクにバウンスし、穴を見つけようとし、発見時にそのURLを保存するスクリプト(PHP)またはプログラムを実行して、修正が必要なURLのリストを取得したいのです。

これは存在しますか?

25
Luke Shaheen

はいといいえ。まず、リンクを投稿するだけでなく、プロジェクトの開発者としてではなく外部リソースとしてこれらのツールをすべて使用して、専門的にセキュリティ監査を行ったと言って、これを前置きします。一般に、sqlserverインジェクションはmysqlとも異なることに注意してください。

Parosプロキシ[クロール](前述)などの無料ツール

burpsuite(前述の[クロール]ですが、アクティブな攻撃にはプロが必要です): http://portswigger.net/burp/

sqlninja(sqlserverのみ) http://sqlninja.sourceforge.net/

googleラットプロキシ:[クロール] http://code.google.com/p/ratproxy/

websecurify:[クロール] http://www.websecurify.com/

wapiti:[クロールしますが、設定には手間がかかります-スパイダーを使用したsqliで特に使用できます] http://wapiti.sourceforge.net/

nikto:[クロールするがsqliはしない...]

素晴らしいです!これらは問題の特定に役立ちますが、大量の誤検知のために、人間による分析をかなり受けます。次のような市販のツールを利用できます。

NTOSpider(最高の[クロール!]の1つ): http://www.ntobjectives.com/software/ntospider

非常に費用がかかりますが、担当者と話すと、一定期間無料でコピーを入手できます(私はこれを使用しました)。それらはレポートに検証リンクを提供することで結果をより速くソートしますが、私は偽陽性を見つけたので訓練された目と分析がまだ必要です。

最終的に、この質問に対する正しい答えは、セキュリティ(sqli)の脆弱性があるかどうかを特定するのに役立つツールを使用できますが、ツールを使用して訓練された目だけがそれらを検証できます。さらに、適切なコードレビューと分析だけが、アプリ(非常に優れたものでも)が見逃す可能性のある脆弱性を特定できます。

ツールは役立ちますが、これを正しく行うには、人間の時間と分析が必要です。プロキシとリクエストマネージャーは、アプリをインジェクションで使用するための実際のツールであり、訓練を受けたテスターまたは好奇心のあるテスターの注意深い意図で行われます。

17
JasonG

私は2つのお気に入りのツールを持っています(どちらも無料です)。

  1. sqlmap -URLを指定すると、脆弱性が自動的にスキャンされます。入ると、SQLプロンプトが表示されます。
  2. Paros Proxy -これは設定に少し時間がかかります。プロキシを使用してサイトを使用するようにブラウザを設定する必要があります(ログイン、他のページに移動するなど)。完了すると、すべてのリクエストのキャッシュが分析され、見つかった潜在的な脆弱性のレポートが表示されます。
9
Zach Rattner

Burp Scanner は、SQLインジェクションやその他のさまざまなものを見つけるのに非常に適しています。ただし、スキャナーに300ドルを払わなければならないが、市場の他のスキャナーを見ると、かなり安い。

詳しく説明すると、探しているのはWebアプリケーションの脆弱性スキャナーです。これらはサイトをクロールし、攻撃ベクトルをさまざまなパラメーターに送信します。私が使用したすべてのスキャナーの中で、Burpは私に最高の結果をもたらし、優れたパフォーマンスを発揮しました。あなたが無料の代替を探しているなら、あなたは試すことができます Grendel Scan しばらく更新されていませんが、それでもかなりうまくいきます。特に無料のツールです。

これが list であり、そこにある他の脆弱性スキャナーの一部です。きっとあなたのニーズに合ったものが見つかるはずです。

4
Drew

すべてのページをクロールし、SQLインジェクションを検出するための巨大なツールが市場に存在します。このディスカッションは遅すぎません PHPでのSQLインジェクションを防ぐにはどうすればよいですか? および Webアプリケーションのセキュリティ脆弱性のテスト:ベストプラクティス?

Webアプリケーションの脆弱性を見つけるために Wapiti をお勧めします。 Acunetixは高値です。

続きを見る:

2
Somnath Muluk

たとえば、SQLインジェクションを検出するプログラムがあります。

2
guybennet

私のサイトでテストするもの:

たとえば、ログインフォームがある場合は、次のように入力してください。

ユーザー名フィールド:anytextまたは1 = 1 '

パスワードフィールド:anypassword

コードでSQLインジェクションをカバーしなかった場合は、それでログインできます。

ありがとう

0
Emad Samir Zaki