# LDAP Injection

#### Sintaxe de Consultas LDAP

| SINTAXE                         | DESCRIÇÃO           |
| ------------------------------- | ------------------- |
| `(&(cn=<input1>)(cn=<input2>))` | Condição de **and** |
| `(\|(cn=<input1>)(cn=<input2))` | Condiçao de **or**  |

#### Filter Injection

Esse tipo de injection consiste em fazer filtros para buscarmos informações ou até mesmo realizarmos autenticações em sistemas.\
Se prestarmos atenção na sintaxe mostrada acima, vamos ver que o operador de condição (`|` ou `&`) , fica no início do filtro, então essa parte não podemos modificar, ao não ser é claro que seja uma condição simples como: `(cn=<input>)` .

LDAP trabalha com coringas, como o **`*`** e é a partir dele que podemos fazer um bypass em pesquisas e autenticações. Podemos por exemplo inserir o usuário `adm*` e assim pegar todos os usuários que começam com `adm`.

{% hint style="info" %}
**DICA:** Evite usar **`*`** para fazer bypass em senha (por exemplo, **`1234*`**), pois geralmente isso vai estar criptografado, o que fará seu coringa virar um hash. Segue os tipos de criptografia suportados pelo LDAP: **`CLEARTEXT`**, **`MD5`**, **`SMD5`**` ``(Salted MD5)`, **`SHA`**, **`SSHA`**` ``(Salted SHA1)` e **`CRYPT`**
{% endhint %}

#### Sites

```
https://www.blackhat.com/presentations/bh-europe-08/Alonso-Parada/Whitepaper/bh-eu-08-alonso-parada-WP.pdf
```
