SQLMapが失敗してはならないはずなのに、なぜ失敗したのかを理解しようとしています。私のローカルネットワークでは、VMロードされた非常に基本的なSQLインジェクションの脆弱性があります。UserIDフィールドを介してこのコードを手動で実行すると、login.php
脚本:
'|| 1=1#;
この注入も機能しました:
'OORR 1=1#;
このような単純なSQLインジェクションがフォームで機能することを考えると、SQLMapがページにインジェクションの脆弱性がないことを報告し続ける理由がわかりません。ツールを使い始めたばかりなので、シェルコマンドを間違って記述していると思います。これまでのところ、私は以下を実行しました:
sqlmap --wizard 192.168.254.21
sqlmap --level=5 --risk=3 -a 192.168.254.21
どちらの場合も、SQLMapは脆弱性を報告せずに戻ってきます。このような基本的な脆弱性を正しく識別するために、ツールの使用を改善する方法に関するアイデアはありますか?
通常、SQLインジェクションをテストする特定のリクエストをsqlmapに提供する必要があります。 sqlmapはWebアプリケーションを確実に分析してフォームパラメータを認識することができないため、プレーンIPアドレスを指定するだけでは不十分です。
コマンドは次のようになります。
./sqlmap.py --data "user=test&password=test" -u http://192.168.254.21/login.php
(user
とpassword
をログインフォームの正しいパラメータ名に置き換える必要があります。)
または、--forms
引数は、sqlmapにフォームパラメータ自体を検索するように指示しますが、sqlmapは複雑なWebアプリをスクレイピングするために構築されていないため、常に信頼できるとは限りません。