2025. 3. 14. 02:30ㆍSTUDY/웹 애플리케이션 보안 완벽 가이드
여기서 다룰 내용은
"웹 애플리케이션 보안 완벽 가이드"
입니다.

학교 전공 수업으로 이 책을 사용하게 되었는데
읽다보니 버전이 업데이트 되면서 바뀐 것들이 있어 겸사겸사 정리를 해보려 합니다.
해당 실습은 Windows에서 진행됩니다.
1. 실습용 가상 시스템 다운로드
http://wikibook.co.kr/wasbook/
위 사이트에 들어가면 로그인 창이 뜹니다.
ID == wasbook
PW == rGsr1A
아래의 4가지를 모두 다운받으시면 됩니다.

다 다운받으면 아래처럼 4개의 파일을 확인할 수 있습니다.

wasbook은 .zip 확장자로 압축된 파일을 압축해제해준 모습입니다.
2. FireFox 설치
파이어폭스는 유명한 브라우저 중에서도 유일하게 XSS 필터가 구현돼 있지 않아 취약점을 실습하기에 좋은 브라우저입니다.
https://www.mozilla.org/ko/firefox/new/
Firefox 최신 버전 다운로드
빠른 페이지 로딩, 작은 메모리 사용 및 다양한 기능을 갖춘 새로운 Firefox가 여기 있습니다.
www.mozilla.org
해당 링크에 접속하면 아래 화면이 뜨게 됩니다.
페이지의 다운로드 버튼을 클릭해 설치 프로그램을 내려받아 줍니다.

3. VirtualBox 설치
버추얼박스는 Oracle에서 무료로 제공하는 가상화 소프트웨어입니다.
(해당 링크를 복붙하지 말고 클릭해서 접속해주시길 바랍니다.)
Oracle VirtualBox
Powerful open source virtualization For personal and enterprise use VirtualBox is a general-purpose full virtualization software for x86_64 hardware (with version 7.1 additionally for macOS/Arm), targeted at laptop, desktop, server and embedded use.
www.virtualbox.org
해당 링크에 접속한 후,
왼쪽 화면처럼 우측 상단의 Download 링크를 클릭한뒤,
오른쪽 화면처럼 좌측의 Windows hosts 를 선택합니다.


(설치를 이미 해서 환경 구현까지 끝낸 후 작성하는 블로그라...... 기억을 더듬어보겠습니다^!^;;)
설치 프로그램 시작 화면이 뜨면
따로 변경하는 거 없이 Next를 클릭해주면 됩니다.
해당 책에서는 네트워크를 설정하는 부분이 있는데,
확인을 해보면 이미 설정이 되어있음을 확인할 수 있습니다.
그래도 혹시 모르니 확인 방법을 작성하겠습니다.
파일 > 도구 > 네트워크 관리자(N)를 차례대로 클릭해줍니다.

만약 위와 같은 화면이 뜨지 않는다면
버추얼박스 화면에 Basic과 Expert 이렇게 2가지의 Mode가 있을 겁니다.
거기에서 Expert Mode를 선택한 후 파일 > 도구를 클릭하면 네트워크 관리자(N)를 확인할 수 있습니다.
네트워크 관리자에 들어가서
VirtualBox-Host-Only Ethernet Adapter를 더블클릭 해주면 하단에 어댑터(A)... 창이 뜹니다.
IPv4 주소와 IPv4 서브넷 마스트가 화면처럼 되어 있는지 확인합니다.

만약 위와 같이 설정되어 있지 않으면 직접 변경하면 됩니다.
4. 가상머신 가져오기
1번에서 다운받은 실습용 가상 시스템 중에서 wikibook.ova를 가져올 겁니다.
왼쪽 화면처럼 파일 > 가상 시스템 가져오기(I)를 클릭하고
오른쪽 화면처럼 폴더 아이콘을 클릭해 wikibook.ova 파일을 찾아 클릭하면 됩니다.


위 과정에서도 따로 변경하는 부분은 없습니다.
가상머신 wikibook을 선택한 후 설정을 클릭합니다.

설정 > 네트워크 에서
어댑터1과 어댑터2를 아래의 화면과 같이 설정해줍니다.
여기도 따로 변경한 부분은 없지만
만약 화면과 다르게 설정되어 있다면 직접 변경해주면 됩니다.


모든 설정이 완료되었습니다.
wikibook 가상머신을 실행시켜줍니다.
아래의 화면에서 시작 버튼을 클릭해줍니다.
(시작 버튼을 누르지 않아도 wikibook 가상머신을 더블클릭 해주면 똑같이 실행됩니다.)

만약 아래와 같은 오류 화면이 뜬다면
PC를 재부팅 해준 후 다시 접속하면 해결이 될 것입니다.
(저는 재부팅을 하지 않고 가상 시스템과 버추얼박스를 각각 1-2번 재다운로드를 해줬었습니다..ㅠ3ㅠ)

5. 가상 시스템 동작 확인
가상머신이 실행된 화면입니다.
해당 로그인 정보로 로그인을 해줍니다.
마우스 통합... 과 자동으로 키보드 잡기... 는 모두 X 아이콘을 클릭해 닫아주면 됩니다.
wasbook login : wasbook
Password : wasbook

로그인 후 셸 프롬프트에서 ip a를 입력하고 enter 키를 눌러
IPv4 주소가 192.168.56.101로 표시되는지 확인해줍니다.

다음으로 CMD에서 ping 192.168.56.101을 실행합니다.

가상 시스템과의 통신이 확인되었습니다.
파이어폭스에서 192.168.56.101에 접속합니다.

6. 가상 시스템 종료
가상 시스템을 종료하려면 shutdown 명령을 사용하면 됩니다.
명령어를 입력한 후 암호를 입력하면 가상 시스템이 종료됩니다.

7. hosts 파일 편집
hosts 파일은 관리자 권한이 없다면 수정할 수 없습니다.
메모장을 실행시킬 때 관리자 권한으로 실행하기를 클릭해 hosts 파일을 열어줍니다.
(시작 메뉴에서 메모장을 검색하고 > 우클릭하여 관리자 권한으로 실행하기 클릭)
hosts 파일은 C:\Windows\System32\drivers\etc\hosts 경로에 존재합니다.
hosts 파일을 열 때, 파일 형식을 *.txt에서 모든 파일로 변경해야 hosts 파일이 표시됩니다.
메모장을 사용해 아래의 내용을 추가하고 저장해줍니다.

example.jp == 취약점이 있는 사이트(응용 프로그램)
api.example.net == 취약점이 있는 사이트(다른 도메인의 API)
trap.example.com == 공격자가 관리하는 함정 사이트
여기서도 만약 저장이 되지 않는다?하면
1. 메모장을 관리자 권한으로 실행시킨 뒤 파일을 불러왔는지 확인
2. 알약이 호스트파일 변경을 허용하지 않고 있는지 확인 > 변경 허용으로 바꾸기
hosts 파일에 도메인을 추가했으므로 example.jp와 api.example.net, trap.example.com에는 가상 시스템의 IP 주소인 192.168.56.101이 할당됩니다.
또한, 바이러스 백신 소프트웨어 등이 hosts 파일 변경을 탐지하고 차단할 수 있습니다. 이 경우에는 바이러스 백신 소프트웨어에서 차단을 해제하거나 잠시 백신의 실시간 탐지 기능을 해제한 뒤 파일을 변경합니다.
8. ping을 이용한 통신 확인
hosts 파일을 수정하고 나면 CMD에서 ping example.jp를 입력하여
ping 통신에 문제가 없는지 확인합니다.
이는 가상 시스템이 부팅된 상태에서 진행해야 합니다.

만약 아래와 같은 오류가 발생한다면 원인은 다음과 같습니다.

1. IP 주소를 잘못 입력
2. 호스트 이름을 잘못 입력
3. 관리자 권한 없이 hosts 파일을 변경해 변경한 내용이 실제로 반영되지 않음
9. Apache와 PHP의 동작 확인
ping을 이용한 통신 확인이 완료되면
파이어폭스에서 http://example.jp 에 접속해
아래와 같은 내용이 표시되는지 확인합니다.

10. OWASP ZAP 설치
이 책에서는 HTTP의 이해를 목적으로 OWASP ZAP이라는 무료 도구를 사용해
HTTP 메시지를 관찰하거나 조작하는 방법을 학습니다.
OWASP ZAP(OWASP Zed Attack Proxy)은 OWASP가 개발.공개하고 있는 무료 웹 애플리케이션 취약점 진단 도구입니다.
윈도우 PC나 macOS에서 프락시로 동작해 HTTP 통신을 관찰하거나 조작할 수 있습니다.
비슷한 도구로 Burp Suite와 Fiddler 등이 있지만
OWASP ZAP은 완전 무상으로 사용이 가능하며, 자동 진단 도구를 손쉽게 사용할 수 있고, 윈도우와 macOS 양쪽에서 사용이 가능하다는 장점이 있습니다.
10-1. JRE 설치
OWASP ZAP은 JAVA로 개발됐기 때문에 자바 실행 환경(JRE)이 필요합니다.
CMD에서 java -version 명령을 실행함으로써 JAVA 설치 여부 및 버전을 확인할 수 있습니다.
저는 설치가 되어있지 않아서 설치하는 방법을 설명하며 동시에 설치했습니다.
https://www.java.com/ko/download/manual.jsp
모든 운영 체제용 Java 다운로드
www.java.com
64비트의 JRE를 설치하려면 아래의 화면에서 Windows 오프라인(64비트)라고 표시된 설치 프로그램을 내려받으면 됩니다.
32비트의 경우는 Windows 온라인이라고 표시된 설치 프로그램을 내려받으면 됩니다.

환경 변수 설정 문제로 실행이 되지 않을 수 있습니다.
제어판 > 시스템 및 보안 > 시스템 > 고급 시스템 설정 > 시스템 속성 > 환경 변수 > 새로 만들기를 사용하여 JRE 경로를 추가합니다.

다시 CMD에서 java -version 명령을 실행해보면
성공적으로 JRE가 설치되었음을 확인할 수 있습니다.

10-2. OWASP ZAP 설치
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
책에서는 위 링크에서 다운을 받으라고 했는데
지금 접속해보면 404 페이지가 떠서
서치를 해보니
아래 링크를 알려주었습니다. 여기서 다운로드를 하겠습니다.
ZAP – Download
As with all software we strongly recommend that ZAP is only installed and used on operating systems and JREs that are fully patched and actively maintained.
www.zaproxy.org
Windows (64) Installer를 다운받아 줍니다.

다운받아서 ZAP_2_16_0_windows.exe -> 이 실행 파일을 실행시키면
권한 허용? 이런 안내가 뜨는데
윈도우에서 OWASP ZAP을 처음 실행하면 윈도우 방화벽에서 통신을 차단하기 떄문에
액세스 허용을 해줘서 OWASP ZAP이 통신할 수 있게 해줘야 합니다.
그 다음으로 ZAP을 관리자 권한으로 실행해줍니다.
(관리자 권한으로 실행시키지 않으면 뒤에 나오는 Options 설정이 완료되지 않습니다.)


실행이 된다면
상단에 Tool > Options 을 클릭해 옵션 창에서 아래 3가지를 설정합니다.
Network > Local Serve/Proxies
1. Adress == localhost
2. Port == 58888
Options > Breakpionts
1. ZAP always on top when breakpoint hit 클릭
2. Break Buttons mode == Separate Request and Response buttons 변경
Options > Display
1. Font Name == 굴림 선택



11. FireFox 확장 기능 FoxyProxy-Standard 설치
Firefox로 아래 URL에 접속합니다.
https://addons.mozilla.org/ko/firefox/addon/foxyproxy-standard/
FoxyProxy Standard – 🦊 Firefox용 확장 기능 (ko)
Firefox용 FoxyProxy Standard 부가 기능을 다운로드하세요. FoxyProxy is an open-source, advanced proxy management tool that completely replaces Firefox's limited proxying capabilities. No paid accounts are necessary; bring your own proxies or bu
addons.mozilla.org
접속 후 FireFox에 추가 를 클릭한 후,
우측 상단에 뜨는 오른쪽 화면 안내 창도 추가(A)를 클릭합니다.


책에서는 설정 파일을 다운받아 FoxyProxy를 설정해줬는데
그 파일 저장에 오류가 생겨 직접 설정을 해야합니다.
우측 상단에 퍼즐 모양을 클릭해 FoxyProxy를 클릭하고
Options을 선택해줍니다.


Proxies에서 Add를 사용하여 아래와 같이 설정해줍니다.
화면과 똑같이 설정해줬다면
스크롤 내리고 Save 버튼을 클릭합니다.
중앙 우측에 + 를 클릭해 도메인 이름을 와일드카드로 설정합니다.
Type == Reg Exp
Tilte == example.jp , example.net , example.com
Pattern == ://*example.jp/* , ://*example.net/* , ://*example.com/*
이는 도메인 주소가 해당하는 경우만 프락시를 거치고 그 외 통신은 프락시를 경유하지 않게하는 것을 의미합니다.

12. OWASP ZAP 사용
오른쪽 화면에서 우측 상단에 초록색 동그라미에 해당하는 아이콘을 통해 Firefox에 접속할 수 있습니다.
접속해서 example.jp 맨 하단에 있는 phpinfo 링크를 클릭하면 OWASP ZAP은 오른쪽 화면과 같은 상태가 됩니다.


이로써 실습 환경 설정이 모두 끝났습니다.
환경 설정 너무 빡세네요,........
모두 수고하셨습니다 ^!^
