관리 메뉴

의미없는 블로그

[Appscan] Unsafe third-party link / Tabnabbing 공격 본문

# 나/pentest (WEB)

[Appscan] Unsafe third-party link / Tabnabbing 공격

SaltLee 2024. 12. 11. 15:33

A 서비스에 <a href> 있으면 클릭하면 새 창(B) 열리잖아

이 때, target="_blank" 로 설정되어 있으면 B에서 window.opener 속성을 사용해서 A를 조작할 수가 있대

이걸 Tabnabbing 공격이라고 한다

 

이게 부모 서비스 (A)

<a href="https://child.com" target="_blank">Open Child Window</a>

 

이게 자식 서비스 (B)

<script>
    // 부모 창에 접근
    var parentWindow = window.opener;

    // 부모 창의 제목을 변경
    parentWindow.document.title = "This is modified by child!";
</script>

 

이것도 자식 서비스(B)

setTimeout(() => {
    if (window.opener) {
        window.opener.location.href = "http://phishing-site.com";
    } else {
        console.log("부모 창이 없습니다.");
    }
}, 3000); // 3초 후 부모 창 URL 변경

 

무튼 이런식으로 부모 서비스를 조작해서

피싱 사이트로 유도 시켜서 개인정보를 탈취하거나 뭐 그런거래

 

근데 전제조건이 

부모 서비스의 target="_blank" 를 쓰는 링크를 공격자가 만든 자식 서비스(악성)로 조작이 가능해야..

그래서 저렇게 하드코딩 되어있는 경우에는 실현 불가하다

 

대응방안은 외부 링크 쓸 때 rel="noopener noreferrer" 설정하면 된다

<a href="http://example.com" target="_blank" rel="noopener noreferrer">Secure Link</a>

 

Tabnabbing 공격의 조건

  • 악성 링크가 삽입되어야 함: 피해자가 사용하는 웹사이트에서 a href 태그를 통해 악성 사이트로 연결되는 링크가 제공되어야 합니다.
  • target="_blank" 사용: 새로운 탭에서 링크를 열도록 설정되어야 합니다. 이 설정이 없으면 원래 탭에서 열리기 때문에 Tabnabbing 공격이 작동하지 않습니다.
  • 탭 전환: 피해자가 다른 탭으로 이동한 후 다시 악성 탭으로 돌아와야 합니다.

'# 나 > pentest (WEB)' 카테고리의 다른 글

Proxy SwitchyOmega 플러그인 / SSL 인증서 관련  (0) 2024.12.11
Order By 절에서 SQL Injection  (0) 2024.05.29
보고서 작성용  (0) 2024.05.08
fscan.exe  (0) 2023.07.03
쇼단  (0) 2023.05.10
Comments