얄루

A1 | iFrame Injection 본문

모의해킹/beebox

A1 | iFrame Injection

팥죽도사 2022. 8. 27. 14:04

iFrame?

💡 Inline Frame의 약자로, HTML 코드 안에 또다른 HTML 코드를 넣는 기능이다.

ex) 글 아래에 유튜브 동영상이 삽입되거나, 지도가 보여진다거나 하는 등….

 

악성 URL을 삽입해 사이즈를 0으로 설정하는 등 숨기는 방법으로 사용한다고 한다.

iframe 형태로 삽입된 악성코드는 사용자가 인식하지 못하는 사이에 PC에 악성코드가 다운/실행되어

사용자 정보를 가로채 간다.


정상 시나리오

더보기
URL의 ParamWidth와 ParamHeight를 조정했더니 실행이 된다.
내용박스(?) 크기가 굉장히 옹졸해진 모습…

ParamUrl의 robots.txtx를 /var/www/bWAPP/ 디렉터리에서 찾아 열어보니 페이지 내용이 들어있다.

 

html 안에 html을 넣는 기능이니 bWAPP 디렉터리에 악성코드가 작성된 HTML 파일을 만들어서 ParamUrl에 걸어보자.

<head>태그는 문서의 머리를 나타낸다. 브라우저 화면에 직접 보이지는 않고, 숨은 데이터를 정의하는 태그들이 들어가게 된다.

<title>태그는 웹 페이지의 제목을 나타낸다. 이 태그 또한 웹페이지 본문에는 보이지 않음. 유저에게 문서의 제목을 알리는 용도 뿐만 아니라, 검색 엔진 등에서 가장 크게 보여지는 텍스트이므로 페이지의 특성을 드러내는 제목을 작성하는 것이 중요하다.

<body> 태그는 문서의 몸통을 나타내는 태그이다. <head> 태그와 대조적이며, 브라우저 화면에 보이는 것들이 주로 들어간다.

<script> 태그는 Java script를 표현할 수 있게 해주는 코드이다.

alert() 함수는 알림창을 띄워 메세지를 보여주는 기능을 한다.

공격 시나리오

더보기

♪ URL을 iFrame 코드 방식으로 수정해보자.

  • Attack Code
http://14.36.28.177:4488/bWAPP/iframei.php?ParamUrl=robots.txt"></iframe><iframe src="IFRAME.html" width="300" height="300"></iframe>&ParamWidth=250&ParamHeight=250

alert로 설정한 창이 나타나고, body 내용도 보인다. URL의 width, height 값을 “0”으로 두면 클라이언트는 어떤 실행이 된 건지 알 수가 없게 될 것이다.

iframe 코드의 w, h값을 0으로 준 모습.
F12를 눌러 코드를 확인한 모습..

대응방안

더보기

iFrame.php 또한 xss_check_3 함수를 쓰고 있다.

이 게시글은 테스트용으로 작성되었습니다.

해킹은 엄연한 불법입니다.

오로지 테스트용으로만 사용 바랍니다.

728x90