私の仕事の一部として、私はWebアプリケーションの脆弱性を定期的にテストしています。 SQLインジェクションに関して言えば、私の方法論は、手動でWebサイトを閲覧し、それをスパイダーし、次に、データベースと対話していると思われるパラメーターをSQLMapに送信することです。
さて、これがSQLインジェクションを探す正しい方法かどうか疑問に思っていますか? SQLMapはほとんどのタイプのSQLインジェクションを検出できますか、それとも代わりに手動テストに頼る必要がありますか?
SQLMapを使用すると、よく知られている脆弱性をスキャンして時間と手間を省くことができるので、helpufになります。しかし、最大の脅威は、ハッカーの想像力と、SQLMapが見つけることができるよりも複雑で珍しいものを悪用する能力です。私にとって、SQLインジェクションの脆弱性、およびさらに多くの種類の脆弱性をチェックする最良の方法は、箱から出して考えることです。防御側ではなく、攻撃側になります。これらのツール(SQLMapなど)はソリューションの一部ですが、ソリューションではありません。
SQLインジェクションの脆弱性を手動で確認する必要があると思います。脆弱性を検出する確率が高いため、情報セキュリティの専門家としての経験も求められます。一方、SQLMapなどのツールを信頼するのはよくありません。まず、ツールには人間よりも経験と知識がないため、ツールはさまざまな種類のSQLインジェクションエクスプローションの使用に限定されているため、SQLインジェクションの脆弱性を手動で検出した場合、自動プロセスで使用するデータを要求できますこのようにSQLMapを使用すると、SQLインジェクションの脆弱性の検出に関する知識と、特定の目的でSQLMapを使用する方法を活用できます。 2つ目は、事前の手動レビューなしでSQLMapを使用することは危険です。SQLインジェクションが挿入、削除、または更新ステートメントの一部になる可能性があるため、SQLMapを正しく構成しないと、データベースの整合性が失われる可能性があります。 SQLMapや他の同様のソフトウェアは単なるツールであり、それらを正しく使用するには知識を習得する必要があります。