이메일을 적으시면 보안관련 소식을 받을수 있습니다.
이메일:












작성자: JohnG
편집자: 엔시스


JohnG입니다.

이전 웹,HTTP 이해를 이어 패킷 분석에 대해 정리해 볼까 합니다.
웹,HTTP 이해(1): http://boanin.tistory.com/101
웹,HTTP 이해(2): http://boanin.tistory.com/105

잠시 이전 글을 요약해 보겠습니다.

HTTP 메시지 포맷에 대해 언급할때 클라이언트와 서버간의 패킷은 요청 메시지와 응답 메시지로 이루어져 있었습니다.

여기서 클라이언트가 요청할 때의 메시지 방식 (GET, POST, HEAD, PUT, DELETE)을 상황에 따라 전송한다고 했습니다. 또한 응답 메시지 역시 상황에 따라  상태 코드와 문장(200 OK, 301 Moved Permanently, ... )을 포함하여 응답 메시지를 전송합니다.

또한 쿠키와 웹 프락시(웹 캐시)에 대해 다뤘습니다.

위 내용을 정리한 이후 이번 포스팅에서는 실제 웹 패킷을 확인해 보겠습니다.

먼저 이번 포스팅을 하면서 파로스(Paros)라는 클라이언트 웹 프락시 서버를 아래와 같이 미리 구현해 두었습니다.

Paros proxy
클라이언트에서 사용하는 웹 프락시 입니다.
사용자의 브라우저와 서버 사이에 웹 프락시 서버를 구동시켜 지나가는 패킷을 모두 확인할 수 있는 기능이 있습니다.
물론 패킷 조작도 가능하기때문에 어떤 사용자가 사용하느냐에 따라 좋은 도구가 될 수도 혹은 악의적인 도구가 될수도 있는 툴입니다.

Paros : http://www.parosproxy.org
위의 홈페이지에서 툴을 얻으실 수 있습니다.

Paros를 설치하기전에 확인해 두어야 할점은 현재 시스템에 Java 개발 툴인 JDK가 미리 설치 되어 있어야 합니다.
(Paros 홈페이지에서는 JRE설치도 가능하다고 나와 있지만 안되더군요; 결국 둘다 설치 해버렸습니다.)

글을 쓸때의 Java환경입니다.

Paros 설치가 완료 되면 아래 그림과 같이 프로그램이 실행됩니다.




Paros 설치와 실행이 된다면 이번에는 브라우저를 설정해 주어야 합니다. 클라이언트 웹 프락시이므로 브라우저와 서버(인터넷) 사이에 설정해주는 작업입니다.

브라우저(Windows Internet Explorer)의 도구 -> 인터넷 옵션 -> 연결 -> LAN 설정(가장 아래 버튼) 을 설정하면 아래와 같이 LAN 설정 윈도우 창이 뜹니다.


위 그림처럼 프록시 서버 사용함을 체크(빨간 원)를 하고 주소를 127.0.0.1 포트 번호 8080으로 설정한후 확인 버튼을 누르시면 됩니다. 서버의 주소를 로컬호스트(Local Host)로 지정하며, Paros 프록시 서버의 기본 디폴트 포트 번호인 8080으로 설정해주는것입니다.

만일 포트번호 8080을 사용하는 다른 클라이언트 서버를 사용하고 있다면 Paros에서 Tools->Options...->Local proxy를 확인해 보시면 프록시 서버의 주소와 포트번호 설정을 할 수 있습니다.

간단하게 클라이언트가 웹서버에 요청 메시지를 보내는것과 서버로 부터 응답 메시지를 받는 과정을 풀이해 보겠습니다.
위에서 설명한 Paros proxy 설정을 마친 후, 브라우저를 통해 www.google.com을 접속 하도록 하겠습니다.
(간단한 예를 들기 위해 google.com을 선택했으므로 그외 다른 목적은 없습니다.)


www.google.com의 기본 홈페이지에 접속할때의 모습입니다.
각각 3번의 요청 메시지와 응답메시지가 발생합니다.
아래 글을 보실때 웹,HTTP 이해(1) 에서의 요청,응답 메시지 포맷을 함께 참조 하시는것을 추천합니다.

1 요청 메시지(Request message)


1 응답 메시지 (Response message)
http://www.google.co.kr/language_tools?hl=ko">언어도구</a></div></form><table id="svc-toolbar" class="bgp" cellpadding="3" cellspacing="2" border="0"><tr><td><a id="prod1" href="http://www.google.com/url?ct=pro&source=kwh&cd=1&q=http%3A//mail.google.com/mail%3Fhl%3Dko" title="스팸없는 대용량 이메일"><span class="bgp-fr"></span><span>Gmail</span></a></td><td><a id="prod2" href="http://www.google.com/url?ct=pro&source=kwh&cd=2&q=http%3A//www.google.com/calendar/render%3Fhl%3Dko" title="공유가 쉬운 웹 일정관리"><span class="bgp-fr"></span><span>캘린더</span></a></td><td><a id="prod3" href="http://www.google.com/url?ct=pro&source=kwh&cd=3&q=http%3A//toolbar.google.com/intl/ko/" title="브라우저에서 즐기는 구글"><span class="bgp-fr"></span><span>툴바</span></a></td><td><a id="prod4" href="http://www.google.com/url?ct=pro&source=kwh&cd=4&q=http%3A//desktop.google.co.kr/" title="쉽고 빠른 내 컴퓨터 검색"><span class="bgp-fr"></span><span>데스크톱</span></a></td><td><a id="prod5" href="http://www.google.com/url?ct=pro&source=kwh&cd=5&q=http%3A//picasa.google.co.kr/" title="편집과 공유가 쉬운 포토앨범"><span class="bgp-fr"></span><span>Picasa</span></a></td><td><a id="prod6" href="http://www.google.com/url?ct=pro&source=kwh&cd=6&q=http%3A//kr.youtube.com/" title="세계적인 동영상 커뮤니티"><span class="bgp-fr"></span><span>YouTube</span></a></td><td><a id="prod7" href="http://www.google.com/url?ct=pro&source=kwh&cd=7&q=http%3A//www.google.com/chrome/%3Fhl%3Dko" title="Google의 차세대 웹 브라우저"><span class="bgp-fr"></span><span>크롬</span></a></td></tr></table><div id="tt" class="tt" style="display:none"><div class="ttl"></div><div class="ttc"><div class="ttdc"><div class="ttdl"></div><div class="ttdr"></div></div><div class="tt-text"></div><div class="ttdc"><div class="ttdl"></div><div class="ttdr"></div></div></div><div class="ttl"></div><div class="ttvc"><div class="ttv"></div></div></div><div id="footer"><div id="footer_links"><a href="/intl/ko/ads/">광고 프로그램</a><span class="separator">|</span><a href="/intl/ko/jobs/">채용정보</a><span class="separator">|</span><a href="/intl/ko/about.html">Google 정보</a><span class="separator">|</span><a href="http://www.google.com/ncr">Google.com in English</a></div><div class="promo_line"><p id=shf0 style=display:none;behavior:url(#default#homePage)><font size=-1><a href="/aclk?sa=L&ai=Cc0OT78v-SbP4JZzIpgTssKDODMX4n3ynhe_KCtemv40qEAEgwVRQvpyhyfj_____AWCbA6oECU_QX5qDVqCsbQ&num=1&sig=AGiWqtzEco5AhzcVfHQBtLiq4SgIO9FsLQ&q=/mgyhp.html" onclick=xz()>Google을 내 시작페이지로 하세요</a></p><script>(function(){var a=document.getElementById("shf0"),b="http://www.google.co.kr/";try{a.isHomePage(b)||(a.style.display="block")}catch(z){}window.xz=function(){try{a.setHomePage(b);var c=new Image;c.src="/gen_204?mgmhp=shf0&ct=c&cd="+a.isHomePage(b);window.wy=c}catch(z){}}})();</script></div><div id="copyright">&copy;2009 - <a href="http://www.google.com/intl/ko/privacy.html">개인정보</a></div></div></div><script src="/ig/f/Dil1NMQGNOI/intl/ALL_kr/homepage.js"></script></body><script>if (!window.google) { window.google={}; }if (!window.google.kHL) { window.google.kHL='ko'; }window.setTimeout('window.google.ac.install(document.f,' +'document.f.q,' +'"",true,' +'"닫기",true,' +'"",' +'"")',100);</script></html>



나머지 2번째 메시지들과 3번째 메시지들은 브라우저가 처음 얻은 HTML파일을 읽어 들이는 과정에서 각각 CSS 파일과 JS(Java Script)파일을 웹서버로 부터 얻어내는 과정 입니다.
 
브라우저는 CSS파일과 JS파일을 얻은 후 최종적으로 사용자에게 페이지를 보여주는 것입니다.

실제 웹 프로그래밍에 보안을 신경 쓰지 않게 되면 개인 정보가 쉽게 노출될 가능성을 지니게 됩니다. 
특히 쿠키사용에 좀더 신경을 써야겠습니다. 


****************************************************************************************************

본 포스팅의 저작권은 보안인닷컴과 작성자에 있으며 상업적 이용을 배제하며 콘텐츠 이용시에는 반드시 출처와 링크를 이용해 주시기 바랍니다. 무단도용은 저작권법에 저촉을 받습니다..

****************************************************************************************************

Posted by John_G

댓글을 달아 주세요

  1. Favicon of https://eva1717.tistory.com BlogIcon eva1717 2009.05.05 10:58 신고  댓글주소  수정/삭제  댓글쓰기

    캬..
    사이다님의 포스팅을 읽으므로써 HTTP의 작동원리에 대해서 쾌찰 수 있을 것 같네요...^^

    HTTP특성을 Paros의 기능들을 이용해서 취약점 점검이라든지, 취약한 부분을 실제로 보여주셨으면,

    더 좋았을 것 같다는 이기적인 말씀을 드리고 싶네요^^;;

    포스팅 하시느라 수고 많으셨습니다..

    잘 보고 갑니다^_-

    • Favicon of https://boanin.tistory.com BlogIcon John_G 2009.05.06 12:38 신고  댓글주소  수정/삭제

      취약한 부분 보여드면. 모포털 사이트의 사용자 계정과 비밀번호가 적나라하게 평문으로 저장되어 있는걸 확인 할 수 있죠..
      (이 문제는 조심스런 내용이 아닐까 해서 빼버렸습니다 ^^;)
      (개인적으로 질문해 주시면 흠흠..)

  2. Favicon of https://boanin.tistory.com BlogIcon 보안인닷컴 2009.05.06 08:52 신고  댓글주소  수정/삭제  댓글쓰기

    오오..수고 했습니다..우선 하나씩 읽어볼꺼리가 생기는 것에 대하여 좋습니다. 참..그리고 이렇게 정리를 하니까 훨씬 공부가 더 잘되지요?

    • Favicon of https://boanin.tistory.com BlogIcon John_G 2009.05.06 12:40 신고  댓글주소  수정/삭제

      이번 패킷 분석 방법까지 기본 베이스 깔아뒀으니
      다음은 실제로 도움될만한 Dos,DDos공격 방식 확인 하는과정을 포스팅 하고 싶어요 ^^

      하지만 제가 네트웍 확인이 안되니;;
      지인들께 부탁을 해야겠다는 ^^

  3. Favicon of https://whoaru.tistory.com BlogIcon 후아유! 2009.05.10 01:25 신고  댓글주소  수정/삭제  댓글쓰기

    파로스^^
    저도 한창 많이 돌려보던 툴이었는데^^;

    요즘은 뜨음했네요^^

    다시 한번 정리 잘하였습니다~~ 감사합니다~~

  4. 장원일 2009.05.25 06:26  댓글주소  수정/삭제  댓글쓰기

    잘 봤습니다~~^^ 수고하셨습니다.

  5. Favicon of https://boanin.tistory.com BlogIcon 미남닷컴 2009.05.26 13:01 신고  댓글주소  수정/삭제  댓글쓰기

    잘보고 있습니다 ^^
    앞으로 많은 내용부탁드려요

  6. 손승욱 2009.12.09 15:33  댓글주소  수정/삭제  댓글쓰기

    잘읽어 보았습니다. 다음편이 기대되네요^^