ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • what-is-my-ip
    개인공부/드림핵 2024. 12. 31. 23:00

    이번 문제의 경우 /flag 경로에 있는 FLAG를 획득하는 문제이다.

     

    [문제 해결]

    1. 문제 파일 분석

     

    이 코드에서 중요한 부분은 2가지로 나눌수 있다.

     

    우선 1번 코드 분석은 아래와 같다.

    request.access.route[0]

    = 클라이언트의 IP 주소 리스트를 반환하며 HTTP 헤더에서 X-Forwarded-For 부분을 기반으로 생성

    = 여기서 X-Forwarded-For란 프록시, CDN 등을 통하여 클라이언트가 요청을 보낼 경우 해당 CDN, 프록시 IP가 아닌 원본 요청 IP를 보여준다.

     

    request.remote_addr 

    = 요청을 보낸 클라이언트 IP 주소

     

    그러므로 만일 X-Forwarded-For IP가 존재 할경우 해당 IP, 존재하지 않을 경우 클라이언트 IP를 user_ip 변수에 저장하라는 의미이다.

     

    2번 코드의 경우 user_ip를 출력하는 명령을 쉘에서 실행하라는 의미이다.

     

    이 코드에는 취약점이 존재하는데 바로 X-Forwarded-For 값의 경우 조작될 수 있지만 이를 검증하는 코드가 존재하지 않는 다는 것이다.

     

    이를 이용하여 FLAG 획득을 진행한다.

     

    2. Exploit

     

     

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

    baby-union  (0) 2025.01.02
    BypassIF  (0) 2025.01.01
    Where-is-localhost  (0) 2024.12.31
    Replace Trick!  (0) 2024.12.25
    abcdefg-who  (0) 2024.12.23
Designed by Tistory.