( 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
댓글 없음:
댓글 쓰기