출처
인프런, 비박스를 활용한 웹 모의해킹 완벽 실습 27강 https://www.inflearn.com/course/%EB%B9%84%EB%B0%95%EC%8A%A4-%EB%AA%A8%EC%9D%98%ED%95%B4%ED%82%B9-%EC%8B%A4%EC%8A%B5/
검증되지 않은 리다이렉트 및 포워드
- 리다이렉션 시 목적지에 대한 검증이 이루어지지 않을 때 공격에 사용 가능
- 악성 사이트나 피싱 등의 공격으로 사용자에게 피해가 발생
- 관리자 단말 PC에 악성코드가 감염되면 순식간에 내부 시스템 침투 가능성
Unvalidated Redirects & Forwards (1)
- Beam 버튼을 누르면 선택한 사이트로 이동
1. BurpSuite로 프록시 잡기
- 302로 Redirect하는 것을 알 수 있음
2. BurpSuite에서 Redirect URL 바꾸기
- URL:
http%3A%2Fwww.naver.com
- 별거 없음
Unvalidated Redirects & Forwards (2)
- 이것도 위와 마찬가지
unvalidated_redir_fwd_1.php에서 방어하는 부분
// Destroys the session and the cookie 'admin'
if($_COOKIE["security_level"] == "2")
{
// Destroys the session
$_SESSION = array();
session_destroy();
// Deletes the cookies
setcookie("admin", "", time()-3600, "/", "", false, false);
setcookie("movie_genre", "", time()-3600, "/", "", false, false);
setcookie("secret", "", time()-3600, "/", "", false, false);
setcookie("top_security", "", time()-3600, "/", "", false, false);
setcookie("top_security_nossl", "", time()-3600, "/", "", false, false);
setcookie("top_security_ssl", "", time()-3600, "/", "", false, false);
}
switch($_REQUEST["url"])
{
case "1" :
header("Location: http://itsecgames.blogspot.com");
break;
case "2" :
header("Location: http://www.linkedin.com/in/malikmesellem");
break;
case "3" :
header("Location: http://twitter.com/MME_IT");
break;
case "4" :
header("Location: http://www.mmeit.be/en");
break;
default :
header("Location: login.php");
break;
}
}
- 쿠키를 지우고 미리 정해진 URL로만 가게 설정함
unvalidated_redir_fwd_2.php에서 방어하는 부분
if(isset($_REQUEST["ReturnUrl"]) && ($_COOKIE["security_level"] == "1" || $_COOKIE["security_level"] == "2"))
{
header("Location: portal.php");
exit;
}
- 무조건 portal.php로 이동하게 함
Comments