-
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