실습 1) Burp Suite로 웹 사이트 정보 수집하기
프록시 서버 켜고 Burp Suite를 실행합니다. 저는 Proxy-Intercept-Open browser를 누른 다음, www.hanbit.co.kr 주소를 입력했습니다. 그리고 해당 사이트로 이동하기 전에 Intercept is off를 Intercept is on으로 바꿨습니다.

프록시가 제대로 작동이 되니 Intercept is on을 Intercept is off로 바꾼 다음, 브라우저에서 웹 사이트를 탐색했습니다. 홈페이지 상단의 메뉴인 BRAND, RIGHTS, EVENT, STORE, SUPPORT을 클릭했습니다. 그러고 나서 Burp Suite의 Target-Site map 탭에 들어갑니다. 그러면 웹 사이트에서 방문했던 부분을 확인할 수 있습니다.

한빛출판네트워크 주소가 적힌 폴더 하위로 제가 클릭했던 메뉴 이름의 폴더가 있습니다. 그 폴더를 클릭하면 웹 사이트에서 방문했던 부분을 확인할 수 있는데 디렉터리 구조, 파일 목록, HTML 소스코드 구조 등을 볼 수 있습니다. 사이트에서 클릭하지 않았던 곳은 확인할 수 없습니다.

네이버에도 접속해서 실습을 진행했습니다. 저는 뉴스, 영화, 파파고, 도서, 사전을 클릭했는데 위와는 다르게 하위폴더로 나뉘어지지 않았습니다. https://papago.naver.com , 이런 식으로 웹페이지가 개별적으로 존재하는 것 같았습니다.
실습2) 웹 스캐닝으로 웹 사이트 정보 수집하기
웹 스캐닝 도구로 Wikto 스캐너를 사용했습니다. Wikto를 알기 위해서는 Nikto를 알아야 합니다.
간단히 얘기하자면 Nikto는 데이터베이스 기반 웹 스캐너 중 하나로 리눅스에서만 작동되는 스캐너입니다. 웹 취약점 패턴 내용이 든 데이터베이스를 가져와 하나씩 대입해보고 해당 취약점이 존재하는지 확인합니다.
Wikto는 Nikto의 윈도우 버전이라 할 수 있습니다.

위는 Wikto를 처음에 이용할 때 나오는 화면입니다. 왼쪽에서 Target Selection 부분 첫 번째 칸에 확인하려는 웹사이트 주소를 작성합니다. 디폴트로 localhost로 지정되어 있습니다. 그리고 하단의 Load Nikto Database를 클릭해 데이터베이스 파일 불러옵니다. 그러고 나서 Wikto 로고 오른쪽에 있는 Start 버튼을 누르면 웹 스캐닝을 시작합니다.
결과는 위 사진에서는 아무것도 없지만 6개의 흰색 블록 중 맨 왼쪽 아래 블록인 Nikto Results에서 확인할 수 있습니다.
※주의※
현행법상 스캐닝만 해도 처벌을 받기에 개인 테스트용 컴퓨터나 허가받은 컴퓨터만을 대상으로 웹 스캐닝을 해야 합니다.
실습3) WebGoat 설치하기
웹 애플리케이션 취약점을 테스트하기 위해 WebGoat 프로그램을 설치합니다. WebGoat는 OWASP가 개발한 프로젝트로, JAVA를 기반으로 하고 있습니다. 그래서 WebGoat를 실행하기 위해서는 우선 JDK가 설치되어 있어야 합니다. 저는 예전에 자바를 설치한 적이 있기에 바로 WebGoat를 다운로드 했습니다. WebGoat 사이트에서 다운로드 할 수 있습니다(Main 탭 아래 release를 클릭하면 최신버전 다운로드 화면으로 넘어감).
JDK 다운로드 https://www.oracle.com/kr/java/technologies/downloads/
WebGoat 사이트 https://owasp.org/www-project-webgoat/
책에서는 webgoat container 7.1을 사용했기에 저도 같은 버전(webgoat-container-7.1-exec.jar)을 다운로드 했습니다. 저는 해당 파일을 다른 곳으로 옮겼는데 명령 프롬프트에서 그 파일이 있는 폴더로 이동해야 합니다. 명령 프롬프트를 잘 다루지 못하니까 어떻게 하는 건지 모르고 있었는데 다른 분들의 글을 읽고 알게 됐습니다.
cd C:\현재 파일이 있는 폴더 경로
위와 같이 입력하면 그 폴더로 이동하게 됩니다. 그리고 java -jar webgoat-container-7.1-exec.jar를 입력했는데... 아래 사진과 같이 문제가 생겼습니다.

org.apache.catalina.LifecycleException이라고 뜹니다. 포트번호가 충돌된 것인가 생각했습니다. 검색해도 자료가 얼마 없고 WebGoat에서의 경우를 다룬 것이 없어서 어떻게 해야 할지 고민했습니다.
다른 글을 보면서 자바 버전에 따라 명령어를 다르게 입력해야 한다는 것을 보고 혹시 명령어를 잘못 입력했나 싶었습니다. 그래서 제 컴퓨터 자바 버전을 확인했는데 가장 최신 버전이었습니다(jdk-19.0.1).
java -jar webgoat-container-7.1-exec.jar [--server.port=8080] [--server.address=localhost] (JAVA 9 버전 미만)
java --add-modules java.xml.bind -jar webgoat-container-7.1-exec.jar (JAVA 9 버전 이상)
제 컴퓨터 자바 버전이 높았기에 두 번째를 먼저 시도했고 안 돼서 혹시나 하여 첫 번째 것도 시도했으나 둘 다 실패했습니다...
그런데 최신 버전과 낮은 버전끼리 서로 안 맞을 수 있다는 생각에 JDK를 7 버전으로 다시 설치했습니다. JDK가 바뀌었기에 환경 변수를 편집했습니다. 제어판-시스템 및 보안-시스템-고급 시스템 설정-고급-환경변수 순으로 들어갑니다.

사용자 변수에서 '새로 만들기'를 눌러 설치한 JDK 경로를 변수 값에 입력합니다. 그리고 시스템 변수에서 Path를 찾아 JDK 폴더의 bin 폴더 경로를 찾아 추가합니다.
그러고 난 후 WebGoat 설치에 재도전 했습니다. 명령 프롬포트를 열어 WebGoat가 있는 폴더로 이동합니다. 그리고 다시 java -jar webgoat-container-7.1-exec.jar를 입력합니다. 그러면서 아래 첫 번째 사진과 같이 경고가 떴습니다. 엑세스 허용을 눌렀더니 두 번째 사진과 같은 결과가 나옵니다.
INFO - Browse to http://localhost:8080/WebGoat and happy hacking! 이란 문구(밑에서 세 번째 줄)가 뜨면 성공적으로 실행된 것입니다.


이후 http://localhost:8080/WebGoat 에 접속하여 로그인 하면 WebGoat를 사용하기 위한 준비가 다 끝난 것입니다.
위에서 말한 org.apache.catalina.LifecycleException이 발생한 이유가 WebGoat와 JDK 버전 차이가 원인이라는 생각이 듭니다...
*혹시 아시는 분이 계시다면 댓글로 알려주실 수 있을까요...?
'웹 해킹' 카테고리의 다른 글
| Ch03 인증 기술과 접근 통제(실습) (0) | 2023.01.18 |
|---|---|
| Ch 03 인증 기술과 접근 통제 (0) | 2023.01.18 |
| Ch 02 웹 해킹의 기초 (0) | 2023.01.11 |
| Ch 01 인터넷과 웹의 이해(실습) (1) | 2023.01.04 |
| Ch 01 인터넷과 웹의 이해 (0) | 2023.01.04 |