*틀린 내용이 있을 경우 댓글로 알려주신다면 감사하겠습니다!
웹 브라우저
: 웹 브라우저는 웹에서 페이지를 검색하고 표시하며 사용자가 하이퍼링크를 통해 추가 페이지에 접근할 수 있도록 하는 프로그램입니다. 다음은 브라우저 종류들과 함께 웹 취약점 찾을 때 사용하는 도구에 대한 것입니다.
1. 크롬
- 2008년 9월 2일에 공개된 구글에서 개발한 웹 브라우저입니다. 크롬에서는 웹 페이지를 쉽게 분석할 수 있는 도구가 존재합니다.
- 우측 상단 점 세 개 아이콘 클릭하고 [도구 더보기]-[개발자 도구] 메뉴를 선택하면 접속한 사이트의 코드를 확인할 수 있습니다.

2. 엣지
- 인터넷 익스플로러를 대체하는 마이크로소프트에서 만든 브라우저입니다. 엣지에도 개발자 도구 기능이 있어 웹 사이트 페이지 레이아웃, CSS, HTML 코드를 확인할 수 있습니다.
- 단축키 F12 혹은 우측 상단 점 세 개 누르고 [기타 도구]-[개발자 도구]를 누르면 코드를 확인할 수 있습니다. 웹 애플리케이션 구조를 쉽게 파악할 수 있고, 쿠키 값을 보거나 데이터 변조 공격을 할 때도 유용한 도구입니다. 요소 찾기나 특정 값 찾기가 개발자 도구 기능에서 많이 사용되고 있습니다.

3. 파이어폭스
- 모질라에서 개발한 웹 브라우저입니다. 앞에서 말한 두 브라우저와 마찬가지로 개발자 도구 기능이 탑재되어 있습니다.
- 우측 상단의 줄 세 개 버튼을 클릭하고 [개발자]-[개발자 도구] 메뉴를 클릭하면 개발자 도구 기능을 이용할 수 있습니다.

위의 한빛 아카데미 사이트에서 ‘더 나은 가르침과 배움, 오늘을 준비하는 교재’라 나타나 있는 게 보이시나요? 사실 원래 문장은 ‘오늘’이 아니라 ‘내일을 준비하는 교재’입니다. 제가 ‘내일’을 임의로 ‘오늘’로 수정했더니 위와 같은 결과들이 나왔습니다. 실제 서버에 적용되지 않지만 이렇게 개발자 도구를 가지고 특정 값을 수정하여 사용자 화면에만 나타나도록 할 수 있습니다.
실제 서버에서 특정 값이 바뀌지 않더라도 이러한 기능을 가지고 웹 사이트 구조를 분석하거나 중요한 부분의 코드가 어떻게 이루어졌는지 확인할 수 있기에 유용합니다.
사진 출처: https://www.hanbit.co.kr/academy/
참고) 크롬, 엣지, 파이어폭스 외에도 ‘사파리’, ‘오페라’, ‘브레이브’, ‘비발디’ 등의 브라우저 존재.
‘Chrome’ vs ‘MS Edge’ vs ‘Firefox’
Chrome : 구글 서비스 연동, 빠른 속도, 컴퓨터 메모리 차지하는 비율 높음, 개인정보 보호에 취약(구글에서 데이터 수집)
Edge : 크롬보다 전력 소모 적음. 마이크로소프트 계정과 동기화, 쿠키 추적 차단 기능
Firefox : 웹 사이트 추적 차단 기능, 더 높은 수준의 개인정보 보호, 크롬보다 시스템 리소스 부담 적음
보안 및 개인 정보 보호 : Firefox, Edge > Chrome
유용성 : Firefox, Edge > Chrome
휴대성(여러 기기에서 얼마나 잘 작동하는지) : Firefox, Edge > Chrome
출처: https://www.itpro.co.uk/web-browsers/24796/best-browser-chrome-vs-edge-vs-firefox
https://www.mozilla.org/ko/firefox/browsers/compare/
Burp Suite
: Burp Suite란 웹 애플리케이션의 안전성을 테스트하기 위한 도구입니다. 프록시 서버를 이용해 네트워크 상에서 가로챈 패킷을 분석 및 조작, 확인을 할 수 있습니다. 다음은 Burp Suite의 많은 기능 중 일부에 대해 실습과 함께 작성한 것입니다.
실습1) Burp Suite Target 기능 연습하기
Target은 웹 사이트 구조를 분석할 때 유용한 기능입니다. 웹 사이트에서 직접 방문한 페이지 말고도 해당 페이지에 링크되어 있는 페이지와 웹 사이트 모두 분석할 수 있습니다.
프록시 서버를 사용하고 Burp Suite를 실행합니다. 해당 실습을 진행하기 전에 [Proxy]탭에서 <Intercept is off>로 되어 있는지 확인합니다. on으로 되어 있으면 구조를 분석하려는 웹 사이트의 페이지가 넘어가지 않고 멈춘 상태로 남게 되기 때문입니다.
저는 한빛출판네트워크 사이트에 들어가 상위 메뉴에 있는 BRAND, Channel.H, STORE, SUPPORT, EVENT, RIGHTS 버튼을 누르고, 검색 기능을 사용해 보고 로그인 시도도 했습니다. 아래는 웹 사이트 탐색 후 확인한 Target 탭 화면입니다.

사진 출처: https://www.hanbit.co.kr

왼쪽 목록을 확인하면 흐린 글씨나 선명한 글씨로 되어 있는 것들이 있는데 선명하게 나왔을 경우 직접 방문한 페이지를 의미하며 흐릿하게 나온 것은 방문한 페이지와 연결된 페이지 혹은 디렉터리를 말합니다. 한 번도 방문하지 않았던 페이지였어도 방문하고 나서 확인해 보면 글씨 색이 변합니다.
직접 방문한 페이지의 HTTP 헤더, Request, Response 정보를 알 수 있고 흐릿한 글씨의 파일 또는 디렉터리의 경우 Response 정보는 나오지 않습니다.
실습2) Burp Suite Intruder 기능 연습하기
Intruder 기능은 변숫값을 받아서 처리하는 웹 페이지가 있으면 해당 웹 페이지에 전달되는 변숫값을 자동으로 생성해 전달하도록 규칙을 만들어 해당 페이지를 계속 탐색합니다. 이 기능을 사용하기 위해서 할 수 있는 방법은 대상이 되는 사이트의 URL과 HTTP 헤더를 직접 조사해 입력하거나 [Target] 탭에서 해당 URL을 클릭해 Intruder 기능으로 보내는 것입니다. 다음은 Burp Suite [Intruder] 탭 아래 있는 탭들입니다.
- Positions : 어떤 변숫값을 조작할 것인지 정하는 화면
- Payloads : 변숫값의 종류와 범위를 선택할 수 있는 화면
- Resource Pool : 동시에 요청할 수 있는 개수를 조절해 리소스 할당량을 공유하고 관리하는 화면
저는 이번 실습에서 한빛출판네트워크 홈페이지의 EVENT 페이지에 Intruder 기능을 사용했습니다. Burp Suite 왼쪽의 event 디렉터리에서 하위 파일들을 확인해 그중 hbe_idx=96&page=0 파일을 선택했습니다. 그리고 마우스 오른쪽 버튼을 누르고 [Send to Intruder]를 클릭했습니다.

[Intruder]-[Positions] 탭을 확인하면 아까 선택한 파일 요청 내용이 입력되어 있습니다. 달라진 부분은 변숫값 96이 $96$으로 바뀐 것인데 이는 공격자가 규칙에 의해 자동으로 값을 조작할 수 있는 부분임을 의미합니다.

[Payloads] 탭으로 넘어가 변숫값을 96에서 105까지 자동으로 증가시키며 해당 페이지 내용을 가져오는 실습을 진행했습니다. 여러 항목들 중 일부를 다음과 같이 설정했습니다.
- Payload type : Numbers
- Payload Options – From : 96 / To : 105 / Step : 1

설정이 다 됐으면 우측 상단의 <Start attack> 버튼을 클릭합니다. 그럼 아래와 같은 경고가 뜨는데 이는 현재 제가 사용하고 있는 것이 데모 버전이라고 말하는 것입니다. OK 누른 뒤 실행 결과를 볼 수 있습니다.
결과 창에서 봐야 되는 부분은 Status와 Length 값입니다. Status 값이 200이면 존재하는 페이지란 것을 뜻합니다. 만약 페이지가 존재하지 않거나 접근 제어가 걸려 있다면 404(Not Found) 에러 혹은 500번대 에러(서버 측 오류)가 생깁니다. Length 값은 대부분 30000 이상인데 500번대로 뜰 경우 해당 페이지는 다른 페이지와 다른 내용이 있을 가능성이 높습니다.


Repeater 기능
이 기능은 특정 페이지에 대한 요청을 다시 전송하는 기능입니다. 취약점 진단을 위한 입력 매개변수 조작, 요청, 재발생 등 다양한 목적으로 사용됩니다. 이 기능을 사용하기 위해 특정 패킷을 직접 작성하거나 [Target]과 [Proxy] 탭에서 특정 패킷을 Repeater로 전달할 수 있습니다.
[Target] 탭에서 특정 페이지를 선택하고 마우스 오른쪽 클릭해서 [Send to Repeater]를 클릭합니다. 그 뒤 [Repeater] 탭에서 앞서 진행한 과정으로 전달된 요청을 다시 전달하기 위해 <Send>를 클릭하면 Response 항목의 결과를 확인할 수 있습니다.



참고) Burp Suite에서 한글이 제대로 나타나지 않는 경우(ㅁ으로 표시됨)가 있는데 한글이 정상적으로 나타나기 위해서는 폰트를 바꿔야 함. [Settings]-[User Interface]-[Inspector and message editor]-[HTTP message display]에서 change font 버튼을 눌러 한글 폰트 중 아무거나 선택.
웹 취약점 스캐너
: 웹 애플리케이션에 존재하는 취약점을 자동으로 수집하여 1차로 분석하고 난 뒤, 해당 취약점에 대한 결과를 사용자가 보기 편한 방식으로 보고해 주는 도구입니다. 다음은 웹 취약점 스캐너의 종류에 대한 것입니다.
1. 데이터베이스 기반 웹 스캐너
: 웹 취약점 패턴이 있는 데이터베이스 내용을 가져와 하나씩 대입해 보고 200 OK 응답을 받을 경우 해당 취약점이 존재한다고 보고하는 형태입니다. Nikto, N-Stealth가 있습니다.
2. 특정 웹 취약점 스캐너
: 말 그대로 특정 웹 취약점을 검사하는 도구인데 여기서는 SQL 취약점을 가지고 작성했습니다. 작동 원리는 SQL 인젝션 취약점이 존재하는지 살피고, 취약점이 있을 경우 데이터베이스 종류에 따라 특정 쿼리문을 실행해서 데이터베이스 정보와 테이블 정보를 가져오는 형식입니다. SQL 인젝션 공격에 주로 사용되는 공개용 스캐너로 Absinthe, Sqlmap이 있습니다.
3. 종합 웹 취약점 스캐너
: Nikto처럼 데이터베이스 기반으로 동작하는 취약점 스캐너입니다. 웹 사이트 구조를 분석하고 페이지마다 취약점이 존재하는지 종합적으로 분석합니다. Acunetix, AppScan이 이에 해당합니다.
참고) Acunetix 홈페이지에서 Acunetix 데모 버전을 다운로드할 수 있는데 그러려면 성, 이름, 소속, 전화번호, 이메일을 입력해야 함. 이때 이메일은 개인 이메일 주소가 아닌 학교, 회사 등의 소속 단체에서 만든 이메일 주소를 입력해야 됨.
'웹 해킹' 카테고리의 다른 글
| Ch 06 소스코드 취약점 분석(+실습) (0) | 2023.02.08 |
|---|---|
| Ch 05 XSS 공격(실습) (0) | 2023.02.01 |
| Ch 05 XSS 공격 (0) | 2023.02.01 |
| Ch 04 SQL 인젝션 공격(실습) (0) | 2023.01.25 |
| Ch 04 SQL 인젝션 공격 (0) | 2023.01.25 |