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






>> 목록보이기
#웹해킹 훈련장 #WebGoat #OWASP WebGoat #Live ISO #권한인증 취약점 #SQL구문삽입 #SQL Injection #A1-Injection #HTML 삽입

WH-WebGoat-7.0.1 웹해킹훈련장

OWASP WebGoat Project는 의도적으로 취약한 웹 어플리케이션으로 구성하여 취약점 분석을 배울 수 있도록 한 자바 기반 웹해킹 훈련장이다. 현재 WebGoat 7.1 버전을 배포하고 있다. 웹핵누리집에서 배포하는 WebGoat Live ISO는 SliTaz Linux 4.0과 WebGoat 7.0.1을 기반으로 제작하였다. WebGoat 웹해킹훈련장은 사용자 입출력을 처리하는 HTML에 대한 기초부터 시작하므로 HTTP와 HTML을 이해하는 데 많은 도움이 된다. 웹해킹 강의의 시작에서 WebGoat의 초반부를 다룬다면 HTTP와 HTML이 익숙하지 않은 교육생들에게 좋은 강의재료가 될 것이다.

참고할만한 바깥고리

WH-WebGoat-7.0.1 웹해킹 훈련장 구동

다음의 라이브 ISO 파일을 다운로드 받아서 적당한 위치에 저장한다.

VMware Workstation Player에서 메모리 1024MB, 가상디스크 크기 0MB(다른 설정이어도 사용하지 않으므로 상관 없음)인 손님OS를 생성한다. 광학디스크(CD/DVD 드라이브)에 위에서 내려받은 라이브ISO 파일을 지정하고 부팅한다.

VirtualBox의 손님운영체제로 구동하고자 할 경우에는 손님 OS의 네트워크 어댑터를 브리지모드로 설정하고 이름(Name)을 vmnet8으로 선택하면 VMware의 손님OS(예: 칼리리눅스)에서 곧바로 접근할 수 있으므로 편리하다.

손님OS 부팅이 완료되면 root/root로 로그인한다. ifconfig 명령어로 손님OS의 IP주소를 확인한다.

ifconfig

WH-WebGoat-7.0.1: ifconfig
[ WH-WebGoat-7.0.1 로그인 후 ifconfig로 IP주소 확인 ]

이 경우에는 훈련장 IP주소가 192.168.189.238이다. 이제 start-webgoat.sh 스크립트를 실행하여 WebGoat 훈련장을 구동한다.

./start-webgoat.sh

start-webgoat.sh 파일의 내용은 /usr/bin/java -jar webgoat-container-7.0.1-war-exec.jar이다. 자바가 설치된 운영체제라면 굳이 이 훈련장을 사용하지 않고 JAR 파일을 다운로드 받아서 직접 실행해 볼 수도 있다.

WH-WebGoat-7.0.1: start-webgoat.sh
[ WebGoat 7.0.1 훈련장이 구동된 모습 ]

로그인 후 ./start-webgoat.sh를 실행했을 때 마지막 문구가
INFO: Starting ProtocolHandler ["http-bio-8080"]이어야 한다.
나타나지 않을 경우에는 [Enter] 키를 4~5회 두드린다.

WH-WebGoat-7.0.1 라이브 ISO로 부팅한 후에 start-webgoat.sh를 실행했을 때 WebGoat 7.0.1이 실행되다가 중간에 멈춰서는 경우가 있다. 정확한 원인은 파악하지 못했다. 이러한 현상이 발생하면 [Enter]를 4~5회 또는 그 이상을 누르면 실행이 완료된다.

firefox http://192.168.189.238:8080/WebGoat/

WebGoat 실행이 완료되면 파이어폭스(FireFox) 웹브라우저로 훈련장에 접속한다. 훈련장 URL은 http://guest.webgoat.ip.addr:8080/WebGoat/이다.

WH-WebGoat-7.0.1: login page
[ FireFox로 WebGoat 훈련장에 접속한 모습 ]

웹 브라우저로 WebGoat 훈련장에 접속하면 "로그인 페이지"가 뜬다. 연습용 계정인 guest/guest로 로그인한다.

WH-WebGoat-7.0.1: guest logon
[ guest/guest로 로그인 한 후의 WebGoat 훈련장 누리집 ]

WebGoat 훈련장에 로그인하면 - 영문으로 - WebGoat 누리집을 사용법이 나온다. 왼쪽에 설명이나 기초적인 설명, 각종 취약점 실습 목차가 나온다. 오른쪽 중간 윗쪽에는 자바소스(Java Source), 답안지(Solution), 실습계획(Lesson Plan), 귀띔(Hints), 실습 재시작(Restart Lesson) 등의 단추가 있다. 이 단추들을 활용하면 문제풀이와 소스 수준의 취약점 조치방안 이해에 도움이 된다.

WH-WebGoat-7.0.1: DOM-based XSS
[ DOM기반 크로스사이트스크립트 실습 문제풀이 장면 ]

위의 그림은 "LAB: DOM-Based cross-site scripting" 문제풀이 장면이다. 답안지(Solution), 귀뜸(Hints) 등을 적극 활용하여 문제를 푼다. 이 문제의 해답은 document.body.innerHTML을 이용하는 것이다.

Enter your name: <img src="x" onerror="document.body.innerHTML='<img src='https://www.owasp.org/images/thumb/f/fe/Owasp_logo.jpg/300px-Owasp_logo.jpg' />" />

웹해킹에서는 가능한 많은 경험을 해보는 것이 매우 중요하다.
웹해킹훈련장이 제공하는 답안지, 실습 설명서를 미리 보고 따라하자!

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


< 이전 글 : SVG 이미지의 ECMAscript를 이용한 악성코드 배포 (2016.12.01)

> 다음 글 : WebGoat: Bypass a Path Based Access Control Scheme (2016.12.07)


크리에이티브 커먼즈 라이선스 이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다.
잘못된 내용, 오탈자 및 기타 문의사항은 j1n5uk{at}daum.net으로 연락주시기 바랍니다.
문서의 시작으로 컴퓨터 깨알지식 웹핵 누리집 대문
 __
/ C++는 끔찍한 언어다. 게다가 많은 수준  \
| 이하 프로그래머들이 사용하면서 더  |
| 끔찍해져서 이젠 C++로 그냥 쓰레기를  |
| 만드는 편이 훨씬 더 쉬울 정도다.  |
| 솔직히 오로지 C++ 프로그래머들의  |
| 접근을 차단하기 위한 목적으로 C를  |
| 선택한다 해도, 그 자체가 C를 사용할  |
| 이유로 충분하다.  |
|  |
| - 리누스 베네딕트 토발즈, 리눅스 커널  |
\ 개발자  /
 --
    \
     \  /\/\
       \   /
       |  0 >>
       |___|
 __((_<|   |
(          |
(__________)
   |      |
   |      |
   /\     /\
.. -- -- | - .. .... | ... / .. .../ ... {] . .. .. .. ..| ...... .../ .../ .. ...... ... ... ] .. [ .../ ..../ ......./ .. ./// ../ ... .. ... .. -- -- | - .. .... | ... / .. .../ ... {] . .. .. .. ..| ...... .../ .../ .. ./// ../ ... .. ... ...| ..../ ./ ... / ..| ....| ........ / ... / .... ...... ... ... ] .. [ .../ ..../ ......./ .....| ..../ ./ ... / ..| ....| ........ / ... / .... ...| ..../ ./ ... / ..| ....| ........ / ... / .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .