[3-1]웹 어플리케이션 취약점 이해 및 대응

00SNU3K·2021년 9월 15일
0

01. 웹의 중요 요소

  • 웹페이지 변조

    • 웹페이지 공격 피해 정보제공 사이트 : Zone-H.org > Archive
    • 대부분 정치적인 목적에서 이뤄지는 핵티비스트(Hacktivist)들의 행위가 많음, 불법, 예) 어나니머스
    • 웹 해킹과 악성코드는 여전히 주요한 위협
    • 시스템 해킹이나 네트워크 해킹에 비해 공격하기가 더 쉬움
  • 웹의 중요 요소

    • 예전 : HTML + javascript
    • 최근 : 반응형 웹사이트 + Flash 등 Embed 기술 적용 + 발전된 백엔드 기술
    • 웹페이지 저장소 사이트 : archive.org
      • 과거에 존재했던 페이지가 현재도 존재하는지 확인하는데 활용됨
      • 특히, 로그인 페이지, 게시판, 자료실 등 이전에 존재했는지 링크만 숨긴 경우도 존재
      • WEB 모의해킹에 사용됨
  • HTTP Protocol

    • HTTP Request & HTTP Response

    • 크롬 개발자도구로 요청과 응답 내용 볼 수 있음

    • Request Header

      • GET /main.jsp HTTP/1.1
        • HTTP 전송 방법, 요청된 URP, HTTP 버전
      • HOST : www.kisa.or.kr
        • 접속 요청하는 사이트
      • User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari 37.36
        • 브라우저나 기타 클라이언트 소프트웨어 정보, 누가 요청을 보냈는지
        • user의 값을 보고 ie로만 띄어라 요런 메시지 출력 가능
      • Cookie
        • 사용자 별 고유의 값, 사용자 맞춤형 정보 제공 또는 사용자 인증에 사용
    • HTTP Status Code (상태 코드)

    • HTTP Method

      • GET
        • parameter가 url에 있음
        • url에 넣기때문에 제한적인 길이
        • 검색, 조회
      • POST
        • parameter가 body에 있음
        • 게시글 글적기 같은 긴 길이
        • 삽입, 갱신
        • 로그인 기능에 사용
          • why? : 스니핑을 통하면 get이나 post 다 볼 수 있음. post가 안정해서 쓰는것이 아님, 굳이 url요청보다 조금더 안전하니까 post를 쓰는거임
      • GET/POST 이외 방식
        • HEAD : 서버쪽 데이터를 검색하고 요청하는 데 사용, 어떠한 추가 요소도 보내지 않음
        • OPTIONS : 시스템에서 제공하고 있는 메소드를 확인하는데 사용
        • PUT : 메시지에 포함되어 있는 데이터를 지정한 URI 장소에 지정된 이름으로 저장
          • 과거 PUT과 관련된 취약점이 종종 있었으며, 공격자는 이를 통해 웹 서버에 악의적인 파일을 업로드 할 수 있었음, 되도록이면 PUT을 꺼놔야함
        • DELETE : URI 지정되어 있는 자원을 서버에서 지움 (DOS)
        • TRACE : 요청한 메시지의 최종 수신처까지 루프백 검사용으로 사용됨
      • HTTP에서 Header와 Body를 나눌때 엔터 두번으로 구분할 수 있음
    • HTTP Method 확인

      • Telnet을 이용하여 OPTIONS를 통한 메소드 확인
      • Nmap을 이용하여 메소드 확인
        • nmap -p 80 --script http-methods demo.testfire.net
        • 취약점검점을 확인할때도 볼 수 있음
  • Proxy

    • 클라이언트와 서버를 중계해주는 기능

    • PC내 설치하는 Local Proxy, 외부에 있는 Remote Proxy

      • 공격자가 Remote Proxy 서버를 이용하면 클라이언트의 IP 주소를 숨길 수 있음
    • Proxy 툴 변천사

      • Achilles, 2000년, 세계 첫번째 Web Proxy(MITM) Tool
      • Paros, 2002년, 자바기반, kali에 있ㅇ므
      • Burp Suite
        • Kali Linux에 기본적으로 포함
        • 가장 대중화된 웹 Proxy Tool
        • https://portswigger.net/burp => 무료버전인 communicaiton 버전 다운받을 수 있음
  • Client Side / Server Side

  • Cookie & Session

    • 크롬 개발자도구 - Application - Cookies 에서 Name에 여러값이 있는데 하나씩 지워가면서 새로고침을 했을때 로그아웃이 된다면 그 Cookie가 바로 사용자 인증에 사용되는 Session이다.
  • 인코딩 & 디코딩

    • Encoding(인코딩) :정보의 형태나 형식을 변환하는 처리나 처리 방식

      • 대표적인 인코딩 방식 (예: Password 문자열에 대한 인코딩)

    • Decoding(디코딩) : 인코딩된 내용을 원래 상태로 변환하는 방식

  • Burp Suit에서도 Decoder를 쓸 수 있음

profile
네트워크 전문가를 꿈꾸며

0개의 댓글