Bagaimana untuk memahami suntikan LDAP
1. Suntikan LDAP
LDAP (Light Directory Access Portocol) ialah protokol akses direktori ringan berdasarkan standard X.500, menyediakan perkhidmatan dan protokol untuk mengakses kaedah pangkalan data direktori. Biasa digunakan untuk membentuk perkhidmatan direktori dengan pangkalan data direktori. Direktori ialah pangkalan data teragih profesional yang dioptimumkan untuk pertanyaan, menyemak imbas dan carian Ia mengatur data dalam struktur pokok, serupa dengan direktori fail dalam sistem Linux/Unix. Ia sesuai untuk menyimpan data yang tidak kerap berubah, seperti sijil awam, kunci keselamatan dan maklumat peranti fizikal syarikat, dalam direktori. Sama seperti SQL, LDAP ialah protokol carian dengan sintaks pertanyaan dan risiko kemungkinan serangan suntikan. Suntikan LDAP merujuk kepada kaedah serangan di mana rentetan input apabila klien menghantar permintaan pertanyaan mengandungi beberapa aksara khas, menyebabkan struktur pertanyaan asal LDAP diubah suai, dengan itu membenarkan akses kepada lebih banyak data yang tidak dibenarkan.
Artikel ini mengambil kod sumber bahasa JAVA sebagai contoh untuk menganalisis punca dan kaedah pembaikan kerentanan suntikan LDAP dalam CWE ID 90: Peneutralan Tidak Betul Elemen Khas yang digunakan dalam Pertanyaan LDAP ('Suntikan LDAP') sampel. Untuk butiran, sila lihat:
CWE ID 90: Peneutralan Tidak Betul Elemen Khas yang digunakan dalam Pertanyaan LDAP ('Suntikan LDAP')
http:/ /cwe .mitre.org/data/definitions/90.html
ID CWE 639: Pintasan Kebenaran Melalui Kunci Kawalan Pengguna
http://cwe.mitre. org/ data/definitions/639.html
2 Bahaya suntikan LDAP
Suntikan LDAP diperkenalkan. oleh pengguna Parameter menjana pertanyaan LDAP berniat jahat untuk memintas kawalan akses dan peningkatan keistimewaan pengguna dengan membina penapis LDAP. Melalui pembinaan penapis biasa, suntikan operasi DAN dan ATAU dilaksanakan untuk mendapatkan maklumat sensitif.
Dari Januari 2018 hingga Januari 2019, terdapat sejumlah 4 maklumat kerentanan yang berkaitan dengannya dalam CVE. Beberapa kelemahan adalah seperti berikut:
CVE 编号 | 概述 |
---|---|
CVE-2018-12689 | phpLDAPadmin 1.2.2 允许通过 cmd.php?cmd = loginform 请求中精心设计的 serverid 参数或登录面板中精心设计的用户名和密码进行 LDAP 注入。 |
CVE-2018-5730 | MIT krb5 1.6 或更高版本允许经过身份验证的 kadmin 将主体添加到 LDAP Kerberos 数据库,以通过提供 “linkdn” 和 “containerdn” 数据库参数来绕过DN容器检查,或者通过提供作为扩展的DN字符串来绕过 DN 容器检查。 |
CVE-2016-8750 | 4.0.8 之前的 Apache Karaf 使用 LDAPLoginModule 通过 LDAP 对用户进行身份验证。但是没有正确编码用户名,因此容易受到 LDAP 注入攻击,导致拒绝服务。 |
CVE-2011-4069 | PacketFence 3.0.2 之前的 html / admin / login.php 允许远程攻击者进行 LDAP 注入攻击,从而通过精心设计的用户名绕过身份验证。 |
3. Kod sampel
Sampel datang daripada Samate Juliet Test Suite untuk Java v1.3 (https://samate.nist.gov/SARD/testsuite.php), sumber Nama fail: CWE90_LDAP_Injection__connect_tcp_01.java.
3.1 Kod Kecacatan
Dalam baris 39-61 kod contoh di atas, atur cara membuat sambungan TCP dan membaca Soket Data diberikan kepada pembolehubah data
, pernyataan pertanyaan LDAP dibina secara dinamik pada baris 118 dan dilaksanakan pada baris 119. LDAP merangkum kelas objek biasa untuk organisasi kakitangan Sebagai contoh, seseorang mengandungi atribut seperti nama akhir (sn), nama pertama (cn), nombor telefon (Nombor telefon) dan kata laluan (userPassword). Pertanyaan ini adalah untuk mengesahkan sama ada terdapat pekerja bernama pembolehubah data
, tetapi ia tidak melakukan sebarang penapisan pada kandungan pembolehubah data
. Menggunakan kaedah suntikan yang paling mudah, jika nilai parameter masuk ialah "*", maka keadaan pertanyaan dinamik yang dibina ialah "(cn=*)", yang boleh menanyakan maklumat semua pekerja, yang membawa kepada kebocoran maklumat.
Selepas menguji kod sampel di atas dengan 360 Code Guard, didapati terdapat kelemahan "suntikan LDAP" dan tahap keselamatan dinilai sebagai tinggi. Sumber pencemaran data dan arah aliran data boleh diperolehi melalui analisis laluan surih dan kecacatan dilaporkan pada baris 120 kod, seperti ditunjukkan dalam Rajah 1. Contoh pengesanan
3.2 Kod pembaikan
Dalam kod pembaikan di atas, baris 119 dibungkus dengan
Kelas lanjutan menerima parameter yang perlu diproses pada baris 120 , objek
memanggil kaedah untuk mengekod parameter yang diterima
nilai pengekodan yang sepadan dengan aksara. Tatasusunan bait yang dikodkan tidak mengandungi aksara khas yang terlibat dalam penghuraian arahan, dan pernyataan pertanyaan LDAP dengan struktur dan kandungan biasa boleh dibina, dengan itu mengelakkan berlakunya suntikan LDAP. javax.naming.ldap
BaseControl
Gunakan 360 Code Guard untuk mengesan kod yang telah dibaiki dan anda dapat melihat bahawa kecacatan "suntikan LDAP" tidak lagi wujud. Seperti yang ditunjukkan dalam Rajah 2: control
getEncodedValue()
data
ASN.1BER
Rajah 2: Hasil pengesanan selepas pembaikan
4. Cara mengelakkan suntikan LDAP
Punca suntikan LDAP ialah penyerang menggunakan aksara meta LDAP untuk mengubah suai maksud pertanyaan LDAP. Apabila membina penapis LDAP, pengaturcara perlu menjelaskan aksara yang harus dianggap sebagai penghuraian arahan dan aksara yang harus dianggap sebagai penghuraian data. Untuk mengelakkan penyerang daripada melanggar pelbagai situasi pratetap pengaturcara, kaedah senarai putih harus digunakan untuk memastikan nilai yang dikawal pengguna dalam pertanyaan LDAP datang sepenuhnya daripada set aksara yang telah ditetapkan dan tidak boleh mengandungi sebarang aksara meta LDAP. Jika keperluan julat berangka yang dikawal pengguna mesti mengandungi aksara meta LDAP, mekanisme pengekodan yang sepadan harus digunakan untuk mengelakkan maksud aksara meta ini dalam pertanyaan LDAP.
Suka &,! , |, =, ,,, +, -, ", ',; aksara ini tidak digunakan dalam keadaan biasa. Jika ia muncul dalam input pengguna, ia perlu dilepaskan dengan garis miring ke belakang.
Terdapat juga aksara seperti (,),,*,/,NUL yang bukan sahaja perlu dirawat dengan garis miring ke belakang, tetapi juga perlu ditukar kepada nilai kod ASCII yang sepadan
- .
Atas ialah kandungan terperinci Bagaimana untuk memahami suntikan LDAP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



1. Suntikan LDAP LDAP (Light Directory Access Portocol) ialah protokol akses direktori ringan berdasarkan standard X.500 Ia menyediakan perkhidmatan dan protokol untuk mengakses pangkalan data direktori. Ia sering digunakan untuk membentuk perkhidmatan direktori dengan pangkalan data direktori. Direktori ialah pangkalan data teragih profesional yang dioptimumkan untuk pertanyaan, menyemak imbas dan carian Ia mengatur data dalam struktur pokok, serupa dengan direktori fail dalam sistem Linux/Unix. Data yang tidak kerap diubah suai, seperti sijil awam, kunci keselamatan dan maklumat peranti fizikal syarikat, sesuai untuk penyimpanan dalam direktori. LDAP boleh difahami sebagai protokol carian, yang serupa dengan SQL dan mempunyai sintaks pertanyaan, tetapi juga mempunyai risiko serangan suntikan. Suntikan LDAP merujuk kepada pelanggan

Jika intipati suntikan sql adalah untuk menyambung rentetan, maka intipati segala yang boleh disuntik adalah untuk menyambungkan rentetan LDAP tidak terkecuali sebagai sejenis suntikan Apa yang lebih menarik adalah bahawa ia adalah kurungan splicing juga menggabungkan kurungan, tetapi lebih konvensional untuk mengatakan bahawa ia menggabungkan rentetan). Dalam bab konfigurasi persekitaran, konfigurasi persekitaran ldap dalam kotak lebah telah dibincangkan secara terperinci Bab latihan jarak tembak adalah lebih lanjut mengenai proses sambungan antara php dan ldap, pengenalan fungsi khas yang digunakan di tengah, dan. beberapa teknik penyambungan kurungan. Mari kita bincangkan dahulu tentang proses log masuk julat penangkapan ldap di bwapp: Pertama, ini ialah antara muka log masuk LDAP, URLnya ialah http://192.168.3.184/bW

1. Gambaran Keseluruhan Menurut proses pembelajaran saya, saya mesti tahu apakah model dan kelemahan serangan web saya Sekarang saya telah menghadapi situasi yang tidak dijangka menemui yang tidak popular (dibenarkan) dan menarik minat saya terhadapnya. Konsep LDAP: Nama penuh: Lightweight Directory Access Protocol (Lightweight Directory Access Protocol), ciri: Saya tidak akan bercakap tentang protokol, ia terlalu esoterik, ia boleh difahami sebagai pangkalan data untuk menyimpan data, ciri khasnya ialah ia adalah pokok Pangkalan data dalam bentuk pangkalan data Pertama, nama pangkalan data adalah bersamaan dengan akar pokok (iaitu DB=dc), dan kemudian proses dari akar ke nod daun adalah.

Apabila membangunkan aplikasi web menggunakan PHP, kita selalunya perlu menggunakan pengesahan LDAP untuk melindungi akses aplikasi. Walau bagaimanapun, dalam beberapa kes, apabila kami cuba menggunakan fungsi LDAP PHP untuk melaksanakan pengesahan, kami mungkin menghadapi mesej ralat berikut: "PHPFatalerror:Calltoundefinedfunctionldap_bind()". Mesej ralat ini biasanya berlaku apabila aplikasi memanggil fungsi ldap_bind().

LDAP (LightweightDirectoryAccessProtocol) ialah protokol untuk mengakses perkhidmatan direktori teragih. Ia boleh digunakan untuk tugas seperti pengesahan pengguna, kebenaran, penyelenggaraan akaun dan penyimpanan data. Dalam aplikasi PHP, LDAP boleh digunakan sebagai mekanisme pengesahan yang berkuasa untuk menyediakan fungsi pengesahan dan kebenaran yang berkuasa untuk aplikasi. Artikel ini akan memperkenalkan cara menggunakan LDAP untuk pengesahan pengguna dalam PHP Kandungan khusus termasuk: Pemasangan dan konfigurasi L

Dengan peningkatan dalam kelemahan keselamatan rangkaian, serangan suntikan LDAP telah menjadi risiko keselamatan yang dihadapi oleh banyak tapak web. Untuk melindungi keselamatan tapak web dan mencegah serangan suntikan LDAP, beberapa langkah keselamatan perlu digunakan. Antaranya, Nginx, sebagai pelayan web berprestasi tinggi dan pelayan proksi terbalik, boleh memberikan kami banyak kemudahan dan perlindungan. Artikel ini akan memperkenalkan cara menggunakan Nginx untuk mencegah serangan suntikan LDAP. Serangan suntikan LDAP Serangan suntikan LDAP ialah kaedah serangan yang menyasarkan pangkalan data LDAP yang digunakan oleh penyerang

Memandangkan isu keselamatan rangkaian semakin mendapat perhatian, semakin ramai pengaturcara mula memberi perhatian dan mempelajari cara menghalang kod daripada diserang. Antaranya, kaedah serangan biasa termasuk suntikan SQL, XSS, CSRF, dll. Walau bagaimanapun, terdapat satu lagi kaedah serangan biasa yang dipandang remeh: kelemahan suntikan LDAP. Artikel ini akan memperkenalkan prinsip kaedah serangan ini dan cara menggunakan PHP untuk mencegah kelemahan suntikan LDAP. LDAP pengenalan LDAP (LightweightDirectoryAccessProtocol)

Memandangkan skala perusahaan dan keperluan perniagaan terus berkembang, pengurusan dan kebenaran kumpulan pengguna telah menjadi bahagian penting. LDAP (Lightweight Directory Access Protocol), sebagai protokol perkhidmatan direktori yang digunakan secara meluas dalam rangkaian perusahaan, menyediakan cara yang cekap untuk melaksanakan pengurusan dan kebenaran kumpulan pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP dan LDAP untuk melaksanakan pengurusan dan kebenaran kumpulan pengguna. 1. Apakah itu LDAP LDAP ialah protokol akses direktori ringan yang digunakan secara meluas sebagai protokol perkhidmatan direktori dalam rangkaian perusahaan. LDAP adalah berasaskan pelanggan/pelayan
