개인적으로 엄청 어렵게 풀었다….ㅠ
LDAP 가 뭔지 먼저 알아보도록 하자.
LDAP(Lightweight Directory Access Protocol)
TCP/IP 위에서 디렉토리 서비스를 조회, 수정하는 응용 프로토콜 이라고 한다.
ldap://host:port/DN?attributes?scope?filter?extensions
보통 위와 같은 형식으로 사용된다고 한다.
여기서 디렉토리 자료는 속성-값 의 페어로 표현된다.
ㅇㅋ 대충 감이 오는데, null 바인드라는 개념이 서비스를 조회하는데, 익명으로 조회하게 해주는 거 같다. LDAP 는 DB 정도로 보면 될듯.
https://wiki.kldp.org/wiki.php/LDAP-Tips#s-7.1
이 사이트에 ldap 관련 설정부문 설명이 자세히 나와있다.
여기서 정보를 검색할때, ldapsearch 라는 명령어를 사용하는것을 확인했다. 이걸 잘 활용해주면 되겠다.
매뉴얼 페이지에서 하나씩 이해해서 적어보자
우리가 필요한 옵션 위주로 보면,
-b : use searchbase as the starting point for the search instead of default
문제에서 준 부분을 베이스로 검색해야 하니까 필요하다.
-x : use simple authentication -> 비밀번호를 모르니까 이 옵션이 필요하다.
-p 포트 정보.
-h : specify an alternate host on which the ldap server is running -> 로컬을 볼건 아니니까 필요.
대충 이렇게 넣어주면 되겠다.
ldapsearch -h ldap://challenge01.root-me.org -p 54013 -x -b "dc=challenge01,dc=root-me,dc=org"
음…. NO such object 라는게 뜨는데 문제점을 찾아보자.
문제가 생길만한 부분은 -b의 searchbase 부분밖에 없다.
searchbase가 포함하는 object는 다음과 같다고 한다.
그러니까 내 쿼리가 응답이 없었던 이유가 h 와 H를 혼동한데에 있었다. ldap url 형식으로 써줄거면 -H를 사용해야 한다.
바꿔서 넣어보자.(근데 무슨 차인지는 잘 모르겠다만,,,)
-> 나중에 알아보니까 같은건데, ldap:// 형식으로 나타낼 때는 H 를 쓰고 그냥 쓸때는 h 와 p 를 함께 써주는 거라고 한다.
실질적으로는 같은거ㅇㅇ
ldapsearch -H ldap://challenge01.root-me.org:54013 -x -b "dc=challenge01,dc=root-me,dc=org"
무언가는 나오는데, 원하는 값인 이메일값은 나오질 않는다.
ㅇㅋ 이유를 알았다. 하나의 DC 그룹에 대해서 OU 가 지정이 되어있지 않아서 그런거 같다.
이런 식인데, 지금 최상위에서 화살표가 없는 셈이다.
ou에 값을 지정해줘야 하는데, 아무거나 지정해 줄수 있으면 좋겠다.
null bind 를 찾아보니까 이걸 의미하는 거였다. 아무 값이나 바인드 해서 값을 끌어내는 것인 듯 하다.
이때 주는 값은 anonymous 라고 한다.
그러면 문제가 LDAP-anonymous bind 여야 하는거 아닌가…
일단 명령어는 다음과 같이 주면 된다.
ldapsearch -H ldap://challenge01.root-me.org:54013 -x -b "ou=anonymous,dc=challenge01,dc=root-me,dc=org"
오케이 원하는 이메일이 나왔다.
pw : sabu@anonops.org
'WriteUp > Root-me.org' 카테고리의 다른 글
Javascript - Source (0) | 2020.06.03 |
---|---|
Javascript - Authentication (0) | 2020.06.03 |
IP - Time To Live (0) | 2020.05.30 |
HTTP - Open redirect (0) | 2020.05.29 |
HTML - Source code (0) | 2020.05.29 |