실습 환경 구축은 이 글에 설명되어있다. (https://rimystory.tistory.com/18)
iFrame Injection 공격 설명: HTML 문서 안에서 또 다른 HTML 문서를 출력하는 태그. 주로 악성 URL을 삽입한 후 사이즈를 0으로 설정하여 숨기고 리다이렉트 시키거나 경고창을 띄울 수 있다.
1. 난이도: low
iframei.php 페이지는 GET 방식으로 데이터를 전송받으므로 아래 사진과 같이 URL에 변수를 노출한다.
또한 개발자도구(F12)로 코드를 확인하면 iframe 태그를 사용하여 robots.txt 파일의 내용을 출력한다는 것을 확인할 수 있다.

따라서 iframe 인젝션 공격을 위해 악의적인 html 페이지를 생성한다.
간단하게 vi로 /var/www/bWAPP/bad.html에 작성했다.

저장(wq)한 후 공격 페이지로 돌아와 URL에 iframe 인젝션 공격을 실행한다. URL에 입력한 내용은 아래와 같다.
(복사+붙여넣기 할 경우 자신의 IP주소를 확인하고 수정해야 한다.)
http://192.168.56.101/bWAPP/iframei.php?ParamUrl=robots.txt"></iframe><iframe src="bad.html" width="250" height="250"></iframe>&ParamWidth=250&ParamHeight=250
[결과화면]

bad.html에 입력한 바와 같이 alert 창이 떴다. 공격 성공.
alert 창을 끄면 아래와 같이 해당 페이지에 iframe 태그가 주입된 것을 확인할 수 있다.
[결과화면]

위 결과와 달리 사용자가 눈치채지 못하도록 iframe의 width와 height 속성을 수정하여 공격할 수도 있다.
<공격 코드>
http://192.168.56.101/bWAPP/iframei.php?ParamUrl=robots.txt"width="250"height="1000"></iframe><iframe src="bad.html" width="0" height="0"></iframe>&ParamWidth=250&ParamHeight=250
[결과화면]

이렇게 공격하면 이전 공격과 달리 옆에 수상한 글이나 속성이 뜨지 않는다. 공격 성공.

2. 난이도: medium, high
(대응방안)
난이도를 중/상으로 설정하면 사용되는 함수가 이전 html 인젝션 공격과 같이 xss_check_3과 4를 사용하여 입력 데이터를 우회하는 것을 볼 수 있다. 해당 함수의 상세 로직은 이전 html 인젝션 공격과 동일하게 <htmlspecialchars> 함수를 사용한다.
(/var/www/bWAPP/funtions_external.php 파일을 열어 확인할 수 있다.)

'Projects > 애플리케이션 보안' 카테고리의 다른 글
| [bWAPP] PHP Code Injection 공격 실습 (0) | 2025.08.21 |
|---|---|
| [bWAPP] OS Command Injection 공격 실습 (0) | 2025.08.21 |
| [bWAPP] HTML Injection - Stored (Blog) 공격 실습 (0) | 2025.08.21 |
| [bWAPP] HTML Injection - Reflected (POST) 공격 실습 (2) | 2025.08.18 |
| [bWAPP] HTML Injection - Reflected (GET) 공격 실습 (0) | 2025.08.17 |