ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Where-is-localhost
    개인공부/드림핵 2024. 12. 31. 00:46

    이번 문제의 경우 localhost에 접속하여 FLAG를 획득하는 문제이다.

     

    [문제 해결]

    1. 문제 파일 분석

     

     

    코드를 분석할 경우 이 문제의 키 부분은 빨간 박스를 친 두 곳이다.

     

    우선 로컬 호스트의 주소는 127.0.0.1이다. 

    이 주소 형식은 IPv4로 알려져 있다.

     

    하지만 여기서 문제가 있는데 첫번째 조건문에서 입력 받은 IP 주소 값의 버전이 4일 경우 "no.."를 출력하도록 되어 있다.

     

    이를 해결하기 위해서는 IP 주소 체계의 또 다른 버전인 IPv6를 이용하면 된다고 생각하기 쉽지만 아래의 /localonly 경로에서의 조건문을 확인 할 시 FLAG가 리턴되는 조건은 주소가 로컬 호스트이며, 버전이 4이여야 한다는 것이다.

     

    이를 우회 하기 위해 IPv6 주소체계로 IPv4를 표현하는 방식을 사용할 수 있다.

    이를 표현하는 방법은 IPv4의 주소를 IPv6의 마지막 32비트에 포함시키고 앞 96비트는 ::ffff로 시작하는 방식이다.

     

    2. Exploit

     

    입력후 Submit 버튼 클릭

     

     

    FLAG를 획득하였다.

    '개인공부 > 드림핵' 카테고리의 다른 글

    BypassIF  (0) 2025.01.01
    what-is-my-ip  (0) 2024.12.31
    Replace Trick!  (0) 2024.12.25
    abcdefg-who  (0) 2024.12.23
    Grand Theft Auto  (0) 2024.12.22
Designed by Tistory.