본문 바로가기
정보보안/Web Hacking

[Clickjacking] Click Jacking 실습 예제 - 코드를 삽입하여 Click Jacking 유도하기 (PortSwigger, 웹 해킹)

by 우동이 2020. 8. 26.
300x250

PortSwigger - Click Jacking 예제 1번

 

PortSwigger 사이트에 있는 Click Jacking 예제 1번을 풀어보겠다

문제를 풀어보기 전에 Click Jacking 이라는 기법에 대해 간단히 알아보고 가자


Click Jacking

Click Jacking 역시 웹 해킹 기법중 하나로

웹 사용자가 인지하지 못한 화면이나 버튼을 클릭하게 되면

의도치 않은 행위로 이어지도록 하는 것이 Click Jacking 이다

말 그대로 Click으로 실행되는 기법이기에 

주로 시각적으로 속이는 데에서 이루어진다

자 사이트를 들어와보면 Login과 Exploit Server가 있음을 알 수 있다

그리고 우리는 문제풀이 전 carlos/montoya 의 계정 정보를 받았다

그럼 로그인을 해서 확인해보자


Login을 하면 Account actions 라는 항목이 활성화 됨을 알 수 있는데

한번 들어가 보도록 하자

계정 정보를 삭제하는 기능이 활성화 되었다

아마 계정 삭제를 유도하는 코드를 삽입하면 될 듯 한데

취약점 서버로 한번 이동해보자

자 이제 취약점 서버에서 입력할 코드를 짜 Body에 넣어 전송하면 되는데

코드를 어떻게 짤지 생각해야 하는데 

URL/account 에 존재하는 Delete account 라는 버튼을 

클릭하도록 유도해야 하므로 

우리는 <iframe>태그를 사용해야한다

 

<Html>

<iframe> 태그

 태그로 웹 페이지 내에 또 다른 웹 패이지, 이미지, 영상 등 다양한 요소를 넣을 수 있다.

 

src 속성에서는 표시할 내용 경로의 URL을 적을 수 있으며

width,height를 통해 크기 조절이 가능하다

 

<style> 태그

글꼴이나 색상 그외 스타일 정보들을 미리 설정해놓는 태그

 

 

그렇게 코드를 작성해보면

대략 이런식으로 작성하게 된다

위 코드는 정답 코드인데 해석을 해보자면

<style>태그에서 미리 <iframe>태그와 <div>태그의 

스타일을 지정한 후 사용한다

물론 <iframe> 태그와 <div> 태그 각각의

속성에서 스타일을 지정해도 되지만 

 

그렇게 한다면 코드가 너무 너저분해지기 때문에

위와같은 스타일의 코딩을 지향한다

 

<style>
   iframe {
       position:relative;
       width:500px;
       height: 300px;
       opacity: 0.1;
       z-index: 2;
   }
   div {
       position:absolute;
       top:400px;
       left:120px;
       z-index: 1;
   }
</style>
<div>Test me</div>
<iframe src="url"></iframe>

먼저 <iframe> 태그의 크기는 클릭을 유도할 수 있을 정도의 크기면 된다

Delete account 버튼이 화면 상에 드러날 수 있으면 되는데

div 클릭을 유도할 메시지 태그가 제일 중요하다

위치를 계속 변경하고 맞춰서 Delete account 버튼과 

겹쳐져 클릭이 가능해야만 계정 삭제를 유도할 수 있기 때문이다

 

짠 공격코드를 Store 한 후 View exploit 을 통해 테스트 해보자

 

Test 화면인데 Test me <div> 태그가 

Delete account 버튼에서 살짝 벗어나 있다

우리는 이 버튼이 잘 클릭될 수 있도록

위치를 계속해서 변경하며 맞추어 줘야한다

그렇게 적절한 위치상에 들어가면

 

문제가 해결되었다는 메시지가 발생되며 문제가 해결된다.

 

300x250

댓글