Web - Server | HTTP - IP restriction bypass

2022. 6. 11. 19:40root-me.org

728x90

문제 정보
메인 페이지

<!DOCTYPE html>
<html>
<head>
	<title>Secured Intranet</title>
</head>
<body><link rel='stylesheet' property='stylesheet' id='s' type='text/css' href='/template/s.css' media='all' /><iframe id='iframe' src='https://www.root-me.org/?page=externe_header'></iframe>
			<span>Your IP <strong>::ffff:220.116.191.29</strong> do not belong to the LAN.</span>
		<h1>Intranet</h1>
		<form method="post">
			<p>
				<label for="login">Login:</label>
				<input type="text" name="login">
			</p>
			<p>
				<label for="pass">Password:</label>
				<input type="text" name="mdp">
			</p>
			<p>
				<input type="submit" value="login">
			</p>
			<p>
				<small>You should authenticate because you're not on the LAN.</small>
			</p>
		</form>
	</body>
</html>

메인 페이지 소스코드부터 가져와봤습니다.

웹페이지의 맨 위를 보니 사용자의 IP가 나와있고, 이 IP가 사설 대역 IP가 아니라고 써져있습니다.

IP를 사설 대역으로 속여야만 FLAG를 얻을 수 있을 것 같습니다.

 

https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-Forwarded-For

 

X-Forwarded-For - HTTP | MDN

X-Forwarded-For (XFF) 헤더는 HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더다. 클라이언트와 서버 중간에서 트래픽이 프록시나 로드

developer.mozilla.org

방법을 찾기 위해 구글링을 하다 XFF라는 헤더를 발견했습니다.

이 헤더를 변조하면 될 것 같습니다.

변조를 하는 방법으로는 툴을 쓰는 방법, Burp Suite를 쓰는 방법, 이렇게 두 가지가 있습니다.

저는 툴을 써서 문제를 풀어보겠습니다.

 

https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj?hl=ko 

 

ModHeader

Modify HTTP request and response headers

chrome.google.com

Chrome 확장 프로그램에서 ModHeader라는 프로그램을 다운받아서 써보겠습니다.

 

ModHeader

예상대로라면 새로고침을 했을 때 FLAG가 뜰 것입니다.

 

FLAG 획득 완료
문제 풀이 성공

 

728x90