この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 3629|答える: 1

SQLMAP浸透ツールのSQLインジェクションテストをご利用ください

[リンクをコピー]
掲載地 2023/06/17 11:10:55 | | | |
要件:sqlmapのオープンソースペネトレーションテストツールを使って、ウェブサイトインターフェースのインジェクションリスクをテストしてください。 SQLインジェクションとは、ウェブアプリケーションがユーザーの入力データの正当性を判断せず、フィルタリングが厳格でない場合、攻撃者がウェブアプリケーション内で事前に定義されたクエリ文の末尾に追加のSQL文を追加したり、管理者の知らないうちに違法な操作を実装したりして、データベースサーバーを欺いて不正な任意のクエリを実行し、対応するデータ情報をさらに取得することを意味します。 要するに、バックエンドインターフェースは、要求されたパラメータをつなぎ合わせてSQL文を実行します

復習:

EF 6はネイティブのSQL文やパラメータインジェクション問題を実行します
https://www.itsvse.com/thread-10610-1-1.html

EFコアシリーズ(5)はSQL文やビュー、ストアドプロシージャを実行します
https://www.itsvse.com/thread-9565-1-1.html

C# Parameterized Parametersはsp_executesqlを使ってSQL文を実行します
https://www.itsvse.com/thread-3111-1-1.html

SQLインジェクションブック - ASPインジェクション脆弱性 フルコンタクト
https://www.itsvse.com/thread-2305-1-1.html

SQLMAPは、SQLインジェクションの脆弱性を検出・悪用し、データベースサーバーの乗っ取りを自動化するオープンソースのペネトレーションテストツールです。 強力な検出エンジン、究極のペネトレーションテスターとしての多くのニッチな機能、そしてデータベースフィンガープリンティング、データベースからのデータ取得、基盤となるファイルシステムへのアクセス、アウトオブバンド接続によるOS上のコマンド実行など、幅広いスイッチを備えています。

SQLmapは箱から出してすぐに動作し、どのプラットフォームでも動作しますPython バージョン 2.6、2.7、3.x

SQLmap環境構築

Pythonダウンロード:ハイパーリンクのログインが見えます。



SQLMAPオープンソースアドレス:ハイパーリンクのログインが見えます。
SQLMAPコマンドドキュメント:ハイパーリンクのログインが見えます。

まず、コンピュータはPythonをインストールし(省略)、その後gitコマンドを使ってソースコードをダウンロードします。以下のように:



オプション:

-h, --help 基本ヘルプメッセージ表示と終了 -----基本ヘルプメッセージ表示および終了
-hh 詳細ヘルプメッセージを表示して退出-----
--バージョン番号を見る-----------プログラムのバージョン番号と終了を表示
-v 冗長な詳細レベル(0-6、デフォルト1)--冗長度レベル:0-6(デフォルト1)

ターゲット:

ターゲットURLを決定するために、少なくとも以下のいずれかのオプションを設定する必要があります。すなわち、通常使用するためにはSQLMap操作コマンドに以下のオプションのいずれかを含める必要があります

-d 直接 データベース接続用の接続文字列-------------------
-u URL, --url=URL ターゲットURL --------------------- ターゲットURL(例:「http://www.site.com/vuln.php?id=1」)
- l LOGFILE Burp または WebScarab プロキシのログファイルからターゲットを Burp またはその他のプロキシのログファイルからターゲット----解析
-x SITEMAPURL はリモート sitemap(.xml) ファイルからターゲットを解析します --リモート sitemap(.xml) ファイルからターゲットを解析します
テキストファイル内の複数のターゲットをBULKFILE--------スキャンします
-r REQUESTFILE ファイルからのHTTPリクエストをロード ---------------ファイルからのHTTPリクエストをロード
-g GOOGLEDORK Google Dorkの結果をターゲットURLとして処理---
-c CONFIGFILE 設定 INI ファイルからのロードオプション -------------- 設定 INI ファイルからのロードオプション

依頼:

以下のオプションは、宛先URLへの接続方法を指定します

--method=METHOD 与えられたHTTPメソッド(例:PUT------------------
--data=DATA データ文字列はPOSTメソッドで送信されます------------------
--パラムデル=パラ...  パラメータ値を分離するためのシンボルを設定する--------------------パラメータ値を分割する文字
--cookie=COOKIEはHTTPクッキーの値----------------------HTTPクッキーのヘッダー値を指定します
--クッキーデル=COO..  クッキーの値を分割するために使われる文字------------------

SQLMAPで注入点をテストする際、-v xパラメータを使ってエコー情報の複雑さを指定することができ、これは[0~6]から7レベルの範囲で、デフォルトは1です。

0: 重要な情報とともにPythonエラーのみが表示されます。
1: 基本情報と警告情報の両方を表示する。 (デフォルト)
2: デバッグ情報を同時に表示する。
3: 注入されたペイロードが同時に表示されます。
4: HTTPリクエストを同時に表示すること。
5: HTTP応答ヘッダーを同時に表示します。
6: HTTPレスポンスページを同時に表示する。

ASP.NET コア注入環境の設定

ASP.NET Coreを使って新しいウェブプロジェクトを作成し、インジェクション付きのインターフェースを書くと、ソースコードは以下の通りです:


テストインターフェース:



一般的に使われる貫通試験

DBMSデータベースを列挙する

そして、SQL Server Profileを使ってSQLの実行をキャプチャします。以下の図に示されています:



[ユーザー] から * を選びます [ユーザー名] = 'itsvse' ユニオン 全員 NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(マスターから名前を選択.. SYSDATABASES for JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'



指定されたデータベースのテーブルを列挙します

コマンドは以下の通りです:



複雑なHTTPリクエストには、-r パラメータを通じて(ファイルからのHTTPリクエストを読み込む際、Burp Suiteツールを使ってパケットHTTPリクエストをキャプチャしてください) はテキストファイルから元のHTTPリクエストを読み込むために使います。 これにより、クッキー設定や公開データなど多くのオプションの使用を省略できます。

SQLmapは強力です。より高度な機能はドキュメントをご覧ください。 (終わり)




先の:EF 6はネイティブのSQL文やパラメータインジェクション問題を実行します
次に:[転送] to MySQL Advanced: optimize table コマンド
 地主| 掲載地 2023/06/17 11:21:41 |
以下に変更すれば、SQLインジェクションのリスクはありません:

免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com