sqlmap を使用して問題を分析する方法
0x00 概要
最近、sqlmap をインジェクション テストに使用しているときに、上位バージョンの sqlmap ではインジェクションを検出できませんが、下位バージョンではインジェクションを検出でき、漏洩したデータは誤報ではありませんが、sqlmap のソース コードを比較テストしてチェックした結果、2 つの小さな落とし穴が見つかりました。
0x01 シナリオ再現
注入ポイント形式: json
..."whereparams":[{"name":"keyWord","value": "test"}]}
注入可能なパラメータ: 値
sqlmap コマンド:
python sqlmap.py -r sqlpk.txt –flush-session -vv
sqlmap v1.2.11 は注入できません
sqlmap v1.2 は正常に挿入されました
同様に、v1.2.10 は挿入できませんv1.1.12 は注入可能です
分析後、2 つの落とし穴は次のとおりです:
(1) v1.2.11 のbounders.xml (/v1.2.10/v1.2.9/master) いいえファジー クエリ (% ) のターゲットが長くなりましたが、v1.2 (/v1.1.12/1.1.4/1.2.2) はターゲットになりました。
(2) v1.2.11 (/v1.2.10/1.2.9/master) は、このパラメータを注入するために、json の特定のパラメータを * に手動で設定する必要があります (y-inject inside が選択されている場合でも)。ペイロードは直接 json に従うと注入できなくなりますが、v1.2 (/v1.1.12) ではデフォルトで Enter (y) を押して json の特定のパラメーターを注入できます。
0x02 詳細テスト
落とし穴 (1):
まず sqlmap のペイロード構成を理解します:
//画像ソース https://www.freebuf.com/colum...
v1.2 のテスト ペイロードを見てください:
# 使用されるペイロード: %' と 5731=5731 および '%'='
これは非常に一般的な検索ボックス インジェクションです
V1.2 のbounders.xml を確認してください:
v1.2.11 のboundaries.xml には、ファジー クエリの注入テストがありません。
https://github.com/sqlmapproj...
そこで、v1.2.11 のファイルにファジー クエリ インジェクション テストを追加し、インジェクション パラメーター (値など) に * を手動で追加すると、正常に実行できます。注入してください!
追加されたバージョンを添付します:
https://github.com/theLSA/sql...
pr が返信を受け取りました。誤検知が多かったので関連するペイロードは削除されましたが、回復には限界があります。
https://github.com/sqlmapproj...
落とし穴 (2):
v1.2 と v1.2.11 のペイロードを比較します:
v1.2.11 ではペイロードが json の末尾に直接接続されていることがわかります。
正常に注入するには、*
"whereparams":[{"name":"keyWord","value":"*"}]}
を注入パラメータ値に手動で追加します。
0x03 結論
個人的には、ファジー クエリ テスト ペイロードを追加することをお勧めします。偽陽性は偽陰性よりも優れており、これは非常に一般的です。ファジークエリインジェクション。
json パラメーターが見つかった場合は、手動で追加してみてください* (sqlmap の一部のバージョンの場合)。
sqlmap を使用してテストする場合は、-vv を追加することをお勧めします。
ツールに頼りすぎず、安全を確保するためにツールの手動テストを使用するようにしてください。
以上がsqlmap を使用して問題を分析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









sqlmap を使用して dvwa へのインジェクションを自動化し、dvwa レベルを低く設定し、dvwa の SQLInjection (SQLInjection(Blind)) を開き、ブラウザーのデバッグを開き、ユーザー ID を入力して送信し、インターセプトされた要求を表示します。これは GET リクエストである URL「http://192.168.1.222:8089/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#」であることがわかります。これをテストするために salmap に直接入れます。 - u コマンド -u"http://192.168.1.22

0x00 概要 最近、sqlmap インジェクション テストを使用しているときに、上位バージョンの sqlmap ではインジェクションを検出できないが、下位バージョンではインジェクションを検出でき、誤検知ではなくデータが枯渇するという奇妙な現象に遭遇しました。比較テストを行って sqlmap のソース コードを表示したところ、2 つの小さな穴が見つかりました。 0x01 シナリオ再現注入ポイント形式: json..."whereparams":[{"name":"keyWord","value":"test"}]} 注入可能なパラメータ:valuesqlmap コマンド:pythonsqlmap.py-rsqlpk.txt–フラッシュ-session-vvsqlmapv1.2.11 は を注入できません

パート 1: Sqlmap の使用 1.1 sqlmap の概要 1. SQL インジェクションの基本的なステートメントをいくつか説明しましたが、手動インジェクションは非常に面倒です. データを取得するには、強力な SQL インジェクション ツールである sqlmap を使用できます 2. sqlmap の概要 (1) # sqlmap は、SQL インジェクションの脆弱性とデータベースに接続されているサーバーを自動的に検出して悪用できるオープンソースの侵入テスト ツールです。非常に強力な検出エンジン、複数の機能を備えたペネトレーション テスター、データベース フィンガープリンティングによる基盤となるファイル システムへのアクセス、および帯域外接続を介したコマンド実行を備えています。公式 Web サイト: sqlmap.org(2)#サポートされるデータベース: MySQL、Oracle、PostgreS

外部 Web サイトへの侵入テストを行う必要があるため、ほとんどの Web サイトではアクセス頻度制御が行われており、この頻度を超えると、その IP は直接禁止されます。特に SQLMAP の実行中はさらに「おばさんっぽく」なり、SQLMAP の実行が終了する前にエラーが報告されて終了します。そこで SQLMAP のプロキシ モードについて勉強し始めたのですが、SQLMAP には通常のプロキシ (HTTP プロキシ) とオニオン プロキシの 2 つのプロキシ モードがあります。当初は通常のエージェントの適用について書きたかったのですが、Baidu はこの記事が十分に詳細であると判断し、くだらない話をやめました。 Sqlmap 拡張 - 外部 IP プロキシ プールの実装 オニオン プロキシに焦点を当てましょう。当初、オニオンがインジェクションに直接使用されていたとき、「赤おばさん」レポートはありませんでした。その後、侵入 Web サイトの数が増加するにつれて、

1. はじめに SQL インジェクションを検出するにはどうすればよいですか?私の答えは、「当事者 A がセキュリティを行っている場合、SQL インジェクションの検出は比較的簡単に実行できる」です。 1) エラー挿入の検出。 2) 誤検知が比較的多いため、ブール値エラー レポートを挿入しないでください。 3) 時間ベースのタイム インジェクションを実行し、低速ログ データベース レコードを作成するための操作とメンテナンスに連絡し、スリープを監視し、ベンチマーク キーワードを監視します。位置付けを容易にするために、スリープ時間の小数点にスキャン タスクの ID 番号を追加できます。 (追記: この方法で SQL インジェクションの 99% を見つけることができます) したがって、時間ベースのタイム インジェクションを行う場合、私は時間エラーを非常に厳しく制限します。ただし、@chengable は、t に基づいて、パーティ B でセキュリティ関連の作業を行っています。

インターネット上には、sqlmap の DNS インジェクションに関する関連記事が少なすぎます。--dns-domain パラメーターについて簡単に紹介しているだけです。関連する実用的な記事は曖昧であるか、一度に言及されており、混乱を招きます (主に不正直、重要なのはまだビッグボスではありません)。そこでネット上の方法を参考に再度やってみました。準備する必要があるものには、1 つの sqlmap、Windows ブラインド インジェクション、2 つのドメイン名、および外部ネットワーク サーバーが含まれます。ある時、何かをしていた時にタイムブラインドインジェクションに出会い、たまたまWindowsマシンだったのでDNSインジェクションの方法を思い出しました。開始する前に、sqlmap の --sql-shell コマンドを使用して、DNS インジェクション ペイロードをテストする予定です。まず、burpsuite に移動します。

同社のアプリをテストしたところ、すべてのパラメーターの内容に 32 ビット文字が追加され、最終的に MD5 暗号化が実行されていることがわかりました。 APPの処理プロセスでは最初に署名が正しいかどうかを検証するため、署名検証に失敗するとデータベースにまったく入れなくなりますが、それをテストするためにSQLMAPを使用するために、プロキシデータ用のスクリプトを作成しました。データ パケットでは、そのパラメータの内容と 32 文字の暗号化された置換が実行されます。注: このスクリプトは、暗号化プロセスを知ることができたり、フロントエンド JS の暗号化方式を取得したりできるため、企業の内部システムに適しています。まず、会社のシステムをシミュレートするために、Django を使用して POST ID とトークンを取得し、カスタムの暗号化単語を追加するプログラムを作成しました。

sqlmap はファイルの読み取りと書き込みを行います。 –file-read: バックエンド データベース管理システムのファイル システムからファイルを読み取ります。 –file-write: バックエンド データベース管理システムのファイル システム上のローカル ファイルを編集します (ローカルから書き込みます) –file-dest :バックエンド データベース管理システムによって書き込まれるファイルへの絶対パス (書き込みターゲット パス)。SQL インジェクション後に上記のコマンドを使用してシステム ファイルの読み取りと書き込みを行うことができますが、前提条件として読み取りと書き込みができる必要があります。 dba. 権限を持っている場合、読み取りおよび書き込み操作は正常に実行できません。 DVWA を例として、ファイルの読み取りと書き込みを行うために kali の下に DVWA を構築します。ファイルを読み取ります。PHPinfo で関連情報を確認し、-file-r を使用します。
