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 버튼에서 살짝 벗어나 있다
우리는 이 버튼이 잘 클릭될 수 있도록
위치를 계속해서 변경하며 맞추어 줘야한다
그렇게 적절한 위치상에 들어가면
문제가 해결되었다는 메시지가 발생되며 문제가 해결된다.
댓글