Challenge 52 시작!
admin page 에 접근해야 한다. admin page 버튼을 클릭해보자.
클릭하니 위와 같이 로그인 폼이 나왔고, injection 을 시도한 결과
admin 으로 로그인 할 수 있었지만 virtual IP address 로만 접근할 수 있다는 메시지가 출력되었다.
로그인 폼에서 취소를 누르게 되면 아래와 같이 Login Fail 이란 메시지와 함께 소스코드 버튼을 볼 수 있다.
소스코드를 보자.
admin 으로 로그인 하고, 외부 ip 가 172.17.0.x 대역일 때 flag 를 출력해준다.
첫 페이지로 다시 가서 proxy 버튼을 클릭해보았다.
request 와 response 정보를 보여주고 있는데 딱히 도움이 될 내용은 없다. 그래서 아래와 같이 url 에서 admin 으로 경로를 이동해보았다.
admin 으로 접근했지만 Response 를 보면 Login Fail 인 것을 확인할 수 있다. 인증 정보를 Request 에 포함해야 할 것 같다. 그러기 위해서는 Header Injection 을 수행해야 한다. CRLF(%0d%0a) 을 이용하여 줄바꿈을 수행하여 원하는 헤더 정보를 입력해보자. 입력할 정보는 위에서 로그인을 시도할 때 보내는 패킷을 잡아보면 알 수 있다.
4번째 줄의 Authorization 과 11번째 줄의 Cookie 정보를 Injection 해주면 될 것 같다. 참고로 Authorization 의 YWRTAW4nIzo= 는 admin' # 을 Base64 로 인코딩한 값이다.
입력할 url 은 다음과 같다.
?page=/admin/%20HTTP/1.1%0d%0aAuthorization:%20Basic%20YWRtaW4nIw==%0d%0aCookie:%20PHPSESSID=a321i9edcjckcblh965rtv4tre;
그 결과, Response 에 FLAG 정보가 출력되었다. 인증하러 가자.
성공!
'WarGame > webhacking.kr' 카테고리의 다른 글
Challenge 54 (0) | 2020.04.29 |
---|---|
challenge 53 (0) | 2020.04.29 |
Challenge 51 (0) | 2020.04.28 |
Challenge 50 (0) | 2020.04.28 |
Challenge 49 (0) | 2020.04.27 |