power-girl0-0

iFrame Injection 본문

웹해킹/Bee-Box

iFrame Injection

power-girl0-0 2020. 9. 16. 09:45
728x90

iFrame이란?

HTML문서 안에서 또 다른 HTML 문서를 출력해주는 태그이다.

 

 

iFrame Injection이란?

- iFrame을 이용하여 어느 곳이든 인젝션 공격이 가능하다.

- 독립적으로 이용할 수 있어서 HTML Injection공격에 자주 사용된다.

- 주로 악성코드를 삽입후 사이즈를 0으로 설정하여 숨기는 방법을 사용한다.

 

 

 

1. 해당 페이지의 파라미터를 확인해보았다.

 

파라미터에 값이 출력되는 것을 보아 get방식이라는 것을 알 수 있다.

해당 페이지에 robots.txt를 불러와 넓이와 높이가 250 사이즈로 출력하라는 구문으로 iframe태그를 사용한 것으로 추측된다.

 

2. 추측이 맞는지 robots.txt 대신에 로그인 url을 입력하고 사이즈를 변경해 보았다.

사이트 안에 login페이지가 성공적으로 열리는 것을 보아 iframe태그를 사용한 것을 알 수 있다.

 

3. 그렇다면 개발자 도구를 이용해서 코드를 살펴보도록 하겠다.

iframe태그를 사용하였음을 정확히 확인하였다.

 

 

4. 기존 iframe태그를 강제로 닫고 URL에 노출된 변수에 악의적인 iframe태그를 주입해서 공격자의 html페이지가 출력되도록 해보겠다.

 

(1) bee-box서버에 악의적인 html소스를 만들어 준다.

- vi 명령어를 사용해서 bad.html 소스를 만들어준다.

- 소스는 Iframe Injection이라는 제목을 웹페이지에 출력하고 경고창으로 Succeed가 뜨도록 스크립트 구문을 사용하여 작성하였다.

- /var/www/bWAPP경로에서 파일을 만들어주어야 한다.

 

(2) 기존에 있는 iframe태그를 강제로 닫아주고 악의적인 iframe태그를 이용하여 bad.html을 삽입해보겠다.

ParmaUrl=rovots.txt"></iframe><iframe src="bad.html" width="250" height="250"></iframe>&ParamWidth=250&ParamHeight=250

 

확인을 눌렀을 경우 Iframe Injection이 출력되는 것을 확인할 수 있다.

 

* 여기서 기존의 iframe을 강제종료 했기 때문에 다음과 같은 height와 width 속성이 출력된다.

이는 페이지가 이상하다는 것을 눈치 챌 수 있기 때문에 높이 속성을 아주 큰 값으로 설정한다. 

해당 설정을 통해 이상한 점을 눈치채기 힘들도록 할 수 있다.

 

5. 악의적인 iframe태그는 피해자에게 보여지지 않기 위해 속성(높이, 넓이)은 0으로 설정한다.

- 기존 iframe태그의 높이 속성은 아주 큰값으로 두어 이상함을 눈치채기 힘들게 한다.

http://192.168.56.101/bWAPP/iframei.php?ParamUrl=robots.txt"></iframe><iframe src="bad.html"  width="0" height="0" </iframe>&ParamWidth=250&ParamHeight=1000

 

 

스크립트문이 실행되어 경고창은 뜨지만 확인을 누를시 정상적인 페이지처럼 보이는 것을 알 수 있다.

 

 

◈ 대응방안

: htmlspecialchars함수로 우회한다. 

 

728x90
Comments