Bee-box LDAP インジェクションを使用して範囲練習を行う方法
SQL インジェクションの本質が文字列の結合である場合、注入できるすべての本質は文字列の結合です。LDAP インジェクションも、一種のインジェクションとして例外ではありません。さらに興味深いのは、括弧の結合であることです ( SQL インジェクション括弧も連結しますが、文字列を連結すると言ったほうが一般的です)。
環境構築の章では、bee-box の ldap 環境の構築について詳しく説明しましたが、射撃練習の章では、php と ldap の接続プロセスと導入について詳しく説明します。中央で使用される特殊関数の説明、括弧を結合するためのヒント。
まず、bwapp での LDAP 射撃場のログイン プロセスについて説明します。
まず、これは LDAP ログイン インターフェイスです。 URL は http://192.168.3.184/bWAPP/ldap_connect.php です。この php ファイルに何が書かれているかを見てください。
php 接続 LDAP 関数の詳細説明
#ldap_connect.php ファイルの 133 のコードから始まる 5 つの変数は $message、$ログイン、$ パスワード、$server、$dn。
これら 5 つの変数の最初の変数は何に使用されますか? 2 番目は LDAP サーバーにログインするためのユーザー名、3 番目はパスワード、4 番目はサーバー アドレス、5 番目は識別名です。 (1 つの完全な LDAP パスを記述します)。
最初の if ステートメントはログイン LDAP フォームをクリアするためのものであり、2 つ目の if ステートメントは 5 つの変数が NULL 値であるかどうかを判断するものです。これらはすべて簡単な事項です。重要な点は次の else です。これから説明します。 else 最初に if 文と else 文が複数あるので、一つずつ見ていきましょう。
最初に、最初の if の前にある 3 つの関数 ldap_connect、ldap_set_option、および ldap_bind に注目し、これら 3 つの関数の機能を順番に説明します。
ldap_connect: LDAP データベースへの接続に使用されます。形式は次のとおりです。
$server = “localhost”
$LDAPCONN=LDAP_Connect($server)
If $ LDAPCONN の戻り値が数値型の場合、戻り値が 0 の場合は接続失敗、それ以外の場合は接続成功となります。
ldap_set_option($link_identifier,$option, &$retval): 3 つのパラメータを受け取ります
$link_identifier
ldap_connect() 関数によって返される LDAP 接続識別子 (LDAP を決定します)接続が成功したかどうか)
$オプションは次の値を受け取ることができます:
LDAP_OPT_DEREF(int): 検索時のエイリアスの処理方法。値の範囲は次のとおりです: LDAP_DEREF_NEVER(0、デフォルト値)、LDAP_DEREF_SEARCHING (1)、LDAP_DEREF_FINDING(2)、LDAP_DEREF_ALWAYS(3)
LDAP_OPT_NETWORK_TIMEOUT(int): ネットワーク タイムアウト秒数、LDAP_NO_LIMIT(0、デフォルト値) はタイムアウトしないことを意味します。
LDAP_OPT_PROTOCOL_VERSION(int): 使用する LDAP プロトコルのバージョンを指定します。値の範囲は次のとおりです: LDAP_VERSION2 (2、デフォルト値)、LDAP_VERSION3 (3)。
LDAP_OPT_REFERRALS(bool): LDAP ライブラリが LDAP サーバーから返された参照に自動的に従うかどうか。値の範囲は次のとおりです: TRUE (1、デフォルト値)、FALSE (0)。
&$retval オプション値を受け入れる変数
たとえば、bwapp:
ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION, 3);
## のコード#この文 コードの意味は、LDAP 接続が成功した場合、LDAP で使用されるプロトコルをバージョン 3 に指定することです。 (ここで詳しく説明する必要はありません。すべて適用可能な形式です) ldap_bind($link_identifier,$bind_rdn,$bind_password)$link_identifier: ldap_connect() 関数によって返される LDAP 接続識別子(接続が成功したかどうかを LDAP で判断) $bind_rdn: 指定された rdn、つまりログイン パス (cn=admin,dc=bwapp,dc=local$ など) を使用します。 bind_password: ログインパスワードを指定します。 ldap_search($link_identifier, $dn,$filter): LDAP ディレクトリ検索関数は、結果セットのリソース記述子を正常に返します。これは通常、他の関数によって $result_identifier として参照され、失敗した場合は FALSE を返します。 $link_identifier: ldap_connect() 関数によって返される LDAP 接続識別子 (接続が成功したかどうかを判断するため) $dn: 検索するディレクトリの DN $filter: 検索フィルター。たとえば、「(objectClass=*)」は、すべてのエントリを検索することを意味します(読み取り関数の場合、すべての属性を意味します)。 bwapp のソース コード: ldap_search($ds, $dn,$filter)、$ds=ldap_connect(),$dn=”DC=bwapp,DC=local”, $filter=(cn=*) (つまり、cn のすべての範囲) これら 3 つのパラメータは、ldap_search 関数が現在のサーバーのすべてのディレクトリが (bwapp に対して) クエリされることを示すことを示します。 ldap_count_entries($link_identifier,$search): クエリ結果の数を返します。$link_identifier: dap_connect() 関数によって返される LDAP 接続識別子 (接続が成功したかどうかを判断するため) $search:= ldap_search($link_identifier, $dn, $filter) は、クエリの結果セットを返します。 この時点で、関数はほぼ分析されているので、この接続ファイルの概要を説明しましょう。165行目から198行目はログイン成功の判定、165行目から184行目はldapサービスの有無の判定、187行目から198行目はldapサービスの有無の判定です。 name (データベース名に相当)。
200 行目から 236 行目は、対応する dn が存在するかどうか、つまり、対応する ldap パスが存在するかどうかを判断するもので、存在しない場合は、対応するプロンプト メッセージが表示されます。存在する場合は、ldap クエリである ldapi.php を呼び出します。 ldapiでクエリ結果を取得した後、結果をテーブルとして出力します。
LDAP クエリ結果の php ファイルの紹介
テーブルが出力される場所は ldapi.php ファイル内です 次に、ldapi.php 内のコードを見てください。
231 行目から直接開始します。231 行目から 240 行目まではすべて上記のとおりです。LDAP ディレクトリをバインドします。コードは次のとおりです。理解できない場合は、LDAP バインディングを見てください。パート
#LDAP ディレクトリが正常にバインドされると、クエリが開始されます。クエリ コードは 242 行目から始まります。
POST パラメータ ユーザーの値の受信から、エイリアス ($search_field_1、$search_field_2、$search_field_3) の確立、フィルター ($filter) の指定 (フィルターは SQL ステートメントに似たクエリ ステートメント)、構文ルールは次のとおりです。
文字 | 使用 | |
---|---|---|
= | 特定のフィールドに対するリクエストを作成します。フィールドには、指定された値に対するフィルターが必要です。 | 任意の |
は、NULL を除く任意の値と等しいフィールドを表します。 | ##括弧 | |
他の論理演算子が機能できるようにフィルターを分離します。 | ## フィルタを | & |
## または | | | |
##Non | ! | フィルター条件に一致するすべてのオブジェクトを除外します。 ################################## |
以上がBee-box LDAP インジェクションを使用して範囲練習を行う方法の詳細内容です。詳細については、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)

ホットトピック









1. LDAP インジェクション LDAP (Light Directory Access Portocol) は、X.500 標準に基づく軽量のディレクトリ アクセス プロトコルです。ディレクトリ データベースにアクセスするためのサービスとプロトコルを提供します。ディレクトリ データベースでディレクトリ サービスを形成するためによく使用されます。このディレクトリは、クエリ、参照、検索用に最適化された専門的な分散データベースであり、Linux/Unix システムのファイル ディレクトリに似たツリー構造でデータを編成します。公開証明書、セキュリティ キー、会社の物理デバイス情報など、頻繁に変更されないデータは、ディレクトリへの保存に適しています。 LDAP は、SQL に似ていてクエリ構文を備えた検索プロトコルとして理解できますが、インジェクション攻撃のリスクもあります。 LDAP インジェクションはクライアントを指します

SQL インジェクションの本質が文字列の結合である場合、注入できるすべての本質は文字列の結合です。LDAP インジェクションも一種のインジェクションとして例外ではありません。さらに興味深いのは、括弧の結合であることです (SQL インジェクションは括弧も連結しますが、文字列を連結すると言ったほうが一般的です)。環境構築編ではbee-boxのldap環境構築について詳しく解説しており、射撃練習編ではphpとldapの接続処理や途中で使用する特殊機能の紹介、括弧を接続するためのいくつかのテクニック。まず、bwapp での LDAP 射撃場のログイン プロセスについて説明します。まず、これは LDAP ログイン インターフェイスであり、URL は http://192.168.3.184/bW です。

1. 概要 私の学習プロセスによれば、Web 攻撃のモデルと脆弱性が何であるかを知る必要がありました。今、私は予期せぬ状況に遭遇しました。私が初めて LDAP を目にしたのは、ある国営企業でのペネトレーション テスト中でした。人気のないもの(公認)を見つけて興味をそそられました。 LDAPの概念:正式名称:Lightweight Directory Access Protocol(Lightweight Directory Access Protocol)、特徴:プロトコルについては難解すぎるので説明しませんが、データを保存するデータベースとして理解できます、その特徴はそれはツリーです データベースの形式をとったデータベースです まず、データベースの名前はツリーのルート (つまり DB=dc) に相当し、ルートからリーフ ノードまでのプロセスは次のようになります。

PHP を使用して Web アプリケーションを開発する場合、多くの場合、アプリケーションのアクセスを保護するために LDAP 認証を使用する必要があります。ただし、場合によっては、PHP の LDAP 機能を使用して認証を実装しようとすると、次のエラー メッセージが表示されることがあります。このエラー メッセージは通常、アプリケーションが ldap_bind() 関数を呼び出したときに発生します。

ネットワーク セキュリティの脆弱性の増加に伴い、LDAP インジェクション攻撃は多くの Web サイトが直面するセキュリティ リスクとなっています。 Web サイトのセキュリティを保護し、LDAP インジェクション攻撃を防ぐには、いくつかのセキュリティ対策を使用する必要があります。中でも、Nginx は、高性能 Web サーバーおよびリバース プロキシ サーバーとして、多くの利便性と保護を提供します。この記事では、Nginx を使用して LDAP インジェクション攻撃を防ぐ方法を紹介します。 LDAP インジェクション攻撃 LDAP インジェクション攻撃は、LDAP データベースをターゲットとする攻撃手法です。

LDAP (LightweightDirectoryAccessProtocol) は、分散ディレクトリ サービスにアクセスするためのプロトコルです。ユーザーの認証、認可、アカウントの保守、データの保存などのタスクに使用できます。 PHP アプリケーションでは、LDAP を強力な認証メカニズムとして使用して、アプリケーションに強力な認証および認可機能を提供できます。この記事では、PHP でのユーザー認証に LDAP を使用する方法を紹介します。具体的な内容は次のとおりです。 インストールと構成 L

ネットワーク セキュリティの問題がますます注目されるようになるにつれて、ますます多くのプログラマが注意を払い、コードの攻撃を防ぐ方法を学び始めています。その中でも一般的な攻撃手法としては、SQLインジェクション、XSS、CSRFなどが挙げられます。ただし、過小評価されているもう 1 つの一般的な攻撃手法が LDAP インジェクションの脆弱性です。この記事では、この攻撃手法の原理と、PHP を使用して LDAP インジェクションの脆弱性を防ぐ方法を紹介します。 LDAP の概要 LDAP (LightweightDirectoryAccessProtocol)

企業の規模とビジネス ニーズが拡大し続けるにつれて、ユーザー グループの管理と承認は重要な部分になっています。 LDAP (Lightweight Directory Access Protocol) は、企業ネットワークで広く使用されているディレクトリ サービス プロトコルとして、ユーザー グループの管理と認可を実装する効率的な方法を提供します。この記事では、PHP と LDAP を使用してユーザー グループの管理と認可を実装する方法を紹介します。 1. LDAP とは LDAP は、企業ネットワークのディレクトリ サービス プロトコルとして広く使用されている軽量のディレクトリ アクセス プロトコルです。 LDAP はクライアント/サーバーベースです
