KOROMOON

착한 사마리아인이 되고 싶습니다.

9/10/2025

[Root Me] WEB-Server_HTTP - Improper redirect


( 1 ) 문제 정보



Get access to index.


index 에 접속하세요.




( 2 ) 문제 요점


기초적인 Execution After Redirect(EAR) 취약점 문제임.

Start the challenge 버튼을 클릭 시 index.php 를 거쳐서 login.php 로 리다이렉션됨.

육안으로는 index.php 페이지가 보이지 않음.

프록시 툴을 통해서 확인할 수 있음.

요청 index.php ---> 응답 302 Found ---> 리다이렉션 login.php ---> 응답 200 OK




( 3 ) Execution After Redirect(EAR) 취약점


Execution After Redirect(EAR) 취약점은 CWE-698 식별자로 등록되어 있으며 서버가 302/303 등 리다이렉션 응답을 보낸 뒤에도 코드가 계속 실행되어 보호된 콘텐츠를 응답 본문에 담거나 부수 동작(DB 변경 등)을 해버리는 서버-사이드 취약점임.

브라우저는 자동으로 이동하니 보통 못 보이지만, 공격자는 리다이렉션을 무시하고 응답 본문을 읽어 민감 정보를 획득/우회할 수 있음.


$requestingIP = $_SERVER['REMOTE_ADDR'];

if(!in_array($requestingIP,$ipAllowList)){

echo "You are not authorized to view this page";

http_redirect($errorPageURL);

}

$status = getServerStatus();

echo $status;

...


위 예제를 코드를 살펴봄.

이 코드는 서버에 쿼리를 보내고, 승인된 IP 주소에서 요청이 오면 서버 상태를 표시함.

그러나 권한이 없는 사용자를 리다이렉션하지만, http_redirect()를 호출한 후에도 코드를 계속 실행함.

즉, 권한이 없는 사용자라도 페이지 콘텐츠에 접근하거나 쿼리 대상 서버에 서비스 거부(DoS) 공격을 수행할 수 있음.




( 4 ) flag 찾기


1. 프록시 툴로 확인함.

위 문제 요점에서 언급했던 것처럼 Start the challenge 버튼을 클릭 시 index.php 를 거쳐서 login.php 로 리다이렉션됨.

육안으로는 index.php 페이지가 보이지 않음.

프록시 툴을 통해서 확인할 수 있음.

요청 index.php ---> 응답 302 Found ---> 리다이렉션 login.php ---> 응답 200 OK




참고 사이트 : 

https://cwe.mitre.org/data/definitions/698.html

https://owasp.org/www-community/attacks/Execution_After_Redirect_%28EAR%29?utm_source=chatgpt.com


댓글 없음:

댓글 쓰기