호빗의 인간세상 탐험기

Paros 프록시로 웹 취약성 분석하기 본문

IT이야기

Paros 프록시로 웹 취약성 분석하기

딜레이라마 2016. 12. 19. 22:57
반응형

paros라는 프로그램은 일종의 웹프록시 프로그램으로 웹 사이트에 대한 취약성을 분석할

수 있을 뿐만 아니라 다르게 활용한다면 강력한 웹 해킹 도구가 될 수도 있는데, 사용방법

이 매우 쉬우면서도 많은 기능을 제공하기 때문에 대중적으로 사용되는 프로그램이다.

이 프로그램은 홈페이지(http://www.parosproxy.org/)에서 자유롭게 다운로드 받을 수 있

는데, 웹 서버와 클라이언트 사이에서 위치하여 HTTP와 HTTPS 데이터뿐만 아니라

cookies 와 form 필드 등을 중간에서 가로채어 모니터링을 하거나 값을 변경하여 서버에

보낼 수도 있다.


paros 프로그램의 특징을 간략히 정리하면 다음과 같다.

-. GUI를 제공한다.

-. tree 형태로 사이트 구조를 제공하여 홈페이지의 구조를 쉽게 분석할 수 있다.

-. scanner 기능을 제공하여 웹 취약성 스캔도 가능하다.

-. HTTPS도 사용가능하도록 인증서 기능을 제공한다.

-. 텍스트에 대한 다양한 HASH나 encoding / decoding 기능을 제공한다.


이제 설치를 해서 직접 활용해 보도록 하자.

먼저 홈페이지에서 최신 버전의 프로그램을 다운로드받도록 한다. 이 프로그램이 작동하기

위해서는 버전 1.4 이상의 JRE(Java Run Time Enviroment)가 설치되어 있어야 하므로 만

약 설치되어 있지 않다면 먼저 http://java.sun.com/j2se/에서다운로드받아설치하면된다.

paros를윈도우에서사용할경우에는최신버전의윈도우실행파일( paros-x.x.x-win.exe)을다운로

드받아 실행을 하면설치를시작한다. 설치가 끝난 후 바탕화면에 생성된 아이콘을 실행하면

되는데, paros는 실행과 동시에 127.0.0.1의 8080번 포트를 리슨하므로 혹 다른 프로그램

이 8080 포트를 사용하지는 않는지 확인해 보도록 하기 바란다.

웹 프록시로서 사용하기 위해서는 브라우저에서 모든 접속이 paros를 거쳐서 접속이 될 수

있도록 설정하여야 한다. 이를 위해서는 브라우저에서 도구-> 인터넷옵션 -> 연결 ->

LAN설정에 있는 “프록시 서버”부분에 아래와 같이 주소에 “127.0.0.1"을, 포트에 "8080"

을 입력 후 확인을 클릭하여 저장하면 된다.


위와 같이 설정 후에는 모든 접속이 127.0.0.1의 8080번을 통과하므로 만약 paros를 실행

하지 않으면 웹사이트 접속이 되지 않으므로 주의하기 바란다. 이제 paros를 실행한 후 브

라우저를 띄워 홈페이지를 접속해 보자. proxy를 거치기 때문에 속도는 다소 느리지만 잠

시 후 아래와 같이 사이트 접속 정보들이 순서대로 기록되고 있는 것을 알 수 있다.

좌측 상단에 있는 Sites에는 사이트를 접속하는 도메인별로 구분하여 기록되고 있고 하단

에는 GET과 POST 메소드를 통해 어떤 사이트를 접속하는지에 대한 상세 정보가 보인다.

해당 GET이나 POST 접속을 클릭하면 상단에 HTTP Header 및 데이터가 상세하게 보인

다. 이는 Request와 Response로 나뉘는데, Response를 선택하면 Request에 대한 응답 헤

더와 메시지도 볼 수 있다. 하단의 화면을 보면 각 요청별로 서버의 응답 상태(200 OK 여

부) 및 소요된 시간정보도 함께 출력되어 사이트에 대한 분석을 위해서도 좋은 정보를 제공

한다.


보안 테스트 결과는 Report -> Last Scan Report를 선택하면 간략하게 HTML 형태로 출

력하여 확인할 수 있다.

또한 유용한 기능으로 Tools > Encoder Hash를 선택하면 아래와 같이 임의의 태그 등에

대해 Encode/ Decode를 하거나 Hash를 쉽게 변환할 수 있는 기능을 제공한다. 최근에 공

격자들은 공격의 흔적을 해석하기 어렵게 하기 위해 encoding을 하거나 hash를 사용하는

경우도 있으니 유용하게 활용 가능할 것이다.


마지막으로 살펴볼 기능은 Cookie injection 공격이나 특수문자 등의 입력을 차단한 자바스

크립트 등을 우회할 때 사용되는 것으로 Tools > Manual Request Editor이라는 메뉴를

선택하면 된다. 이 메뉴는 여러 가지로 활용 가능한데, 이를테면 id/pw 부분에 admin / '

or 1=1--를 입력하여 sql injection을 통해 인증을 우회하려고 하는데, 자바스크립트에서

특수문자 입력을 거부한다면 해당 Request 부분을 복사해서 아래 그림과 같이 설정 후

Send를 한다면 서버에 직접 전송하게 되므로 자바스크립트와 같은 클라이언트 측에서의 입

력값 점검을 우회할 수 있다. 참고로 이러한 우회가 가능하기 때문에 입력 값 검증은 반드

시 서버측(Server Side)에서 수행하여야 하는 것이다.



또한 인증방식으로 Session이 아닌 Cookies를 사용한다면 이 역시 이 프로그램을 통해 쉽

게 우회가 가능하다. Request 부분을 복사하여 Cookie의 ID부분만 이를테면 admin으로 수

정하면 Send를 실행하면 해당 ID 권한으로 실행을 하게 될 것이다.

이외 Tools > Options 이나 Filters를 선택하면 User-Agent를 변경하거나 로그에 저장하

는 등 다양한 옵션 사항을 설정할 수 있으므로 참고하기 바란다.


반응형

'IT이야기' 카테고리의 다른 글

안드로이드 레이아웃  (0) 2017.01.11
switch, VLAN  (0) 2017.01.05
Routing Protocol  (0) 2016.12.28
Switch 와 Route 의 차이  (0) 2016.12.21
2018 스마트폰 트렌드 엿보기  (0) 2016.12.16
Comments