Hacking/[Web]Natas

OverTheWire [Natas Level 22]

양선규 2023. 4. 5. 01:41
728x90
반응형

Natas Level 22 입니다.

 

 

텅 비어있다

 

Level 22 메인 페이지 입니다. 보시다시피 텅 비어있습니다.

소스코드를 살펴봅시다.

 

 

php 부분만 보면 됨

 

소스코드입니다.

위, 아래로 크게 두 부분이 있는데요

 

첫번째는 GET방식으로 받은 요청에 "revelio" 가 존재하고 현재 세션이 admin이 "아닐 경우" 

header 함수에 의해 /(메인페이지) 위치로 리다이렉션 되는 함수입니다.

 

두번째는 GET방식으로 받은 요청에 "revelio" 가 존재할 경우 다음 레벨의 password를 출력합니다.

 

음.... 그러니까 GET방식으로 revelio 를 입력하면 되는 것 아닌가?

입력해 보겠습니다.

URL에 그대로 입력해도 됩니다. (GET방식은 URL상에 그대로 모든 파라미터가 노출되는 방식입니다)

 

 

?revelio=1 입력

 

revelio=1 입력했습니다.

 

 

반응 없음

 

그러나 반응이 없군요. password 획득 조건은 GET방식 요청에 "revelio"가 존재하면 되는건데 말이죠.

소스코드를 다시 살펴봅시다.

 

 

문제가 되는 부분

 

위쪽에 있는 코드인데요, 여기가 문제가 되는 부분입니다.

바로 header("Location: /"); 함수에 의한 리다이렉션인데요. 이 기능 때문에 password가 출력되더라도 바로 메인 페이지로 리다이렉션 되어 우리가 눈으로 볼 수 없는 겁니다.

 

두번째 if문에 해당되지 않으면 리다이렉션 되지 않을 수 있는데... 그 조건이 admin 세션을 획득한 상태여야 하는군요.

현재로썬 불가능한 조건입니다. 우리의 최종 목적이 admin 세션을 획득하는 것 이니까요.

 

그렇다면, Burp Suite로 우리가 GET요청을 보내고 리다이렉션이 되는 과정의 모든 패킷을 확인해서, password가 있는지 확인해 봅시다.

결국 리다이렉션 되는 과정도 하나의 패킷이니, 그 사이에 password가 출력된 패킷을 확인할 수 있을지도 모릅니다.

 

 

입력값

 

URL칸에 이렇게 입력하고, 엔터를 누르는 상황을 패킷으로 잡고, 바로 전송해 줍시다.

 

 

HTTP history

 

그리고 HTTP history 탭으로 들어옵시다. 여기서 주고받아진 모든 패킷을 확인할 수 있습니다. 리다이렉션 과정까지도요.

 

두번째 패킷이 보이시나요? 우리가 입력한 ?revelio=1 값이 살아있고, 이후 리다이렉션을 요청하는 302 상태코드가 존재합니다.

그 아래에, 바로 /(메인페이지) 위치로 이동한 패킷이 존재하고 상태코드는 200(요청성공) 입니다.

 

두번째, revelio값이 잘 전달된 패킷을 확인해 봅시다.

 

 

Response

 

두번째 패킷 Response 입니다. 아래쪽을 잘 보시면..

 

 

password획득

 

28, 29행에 password가 출력된 모습을 보실 수 있습니다.

 

revelio 값만 잘 전달하면 password를 획득할 수 있는 쉬운 조건이었지만, 리다이렉션 문제를 해결하는게 중점인 문제였습니다.

다만, 조금 헷갈리는 것은 리다이렉션 부분이 먼저 나오고 password 획득부분은 아래쪽에 있는데

어째서 패킷을 확인하면 password를 먼저 출력해주고 리다이렉션을 나중에 하는건지? 순서가 반대로 된 게 아닌가..

이유를 아시는 분 알려주시면 감사하겠습니다.

728x90
반응형

'Hacking > [Web]Natas' 카테고리의 다른 글

OverTheWire [Natas Level 24]  (3) 2023.04.11
OverTheWire [Natas Level 23]  (0) 2023.04.11
OverTheWire [Natas Level 21]  (0) 2023.04.04
OverTheWire [Natas Level 20]  (0) 2023.04.04
OverTheWire [Natas Level 19]  (0) 2023.04.04