[해킹] 웹 해킹 기본이론 - 웹 해킹 하는 방법 - HTTP status code, Request, Response 해킹
웹 해킹 기본이론 - 웹 해킹 하는 방법 - HTTP status code, Request, Response 해킹
아마 많은 분이 웹 해킹하는 방법에 대해서 궁금해하실 거예요 하지만 여기서는 해킹 기법을 알아보면서 예방하는 방법을 알려드리는게 주 목적이니 알아두시고 이런 기법들이 있구나 보시고 예방하는 데 힘 쓰시길 바랍니다.
웹 해킹 기본이론
웹 해킹을 많이 하는 이유
1. 방화벽 Rule에서 웹 서비스의 경우 Open 정책사용
2. 어느 기업이나 기관리든 대부분 홈페이지 서비스를 사용
3. 대외 서비스 뿐 아니라 대내 서비스 그리고 관리자 웹 콘솔 등
4. 웹 응용프로그램을 많이 사용
웹 기본 구조
1. HTTP
1) 웹에서 사용하는 프로토콜
2) 잘 알려진 80 포트를 기본으로 사용
3) Statsless 구성
- 클라이언트와 서버와의 연결을 지양하지 않는다.
- 클라이언트가 서버에 요청을 보내고, 서버가 요청을 수행한 후 클라이언트에 데이터 전달
- 클라이언트가 요청한 페이지가 완료가 되면 클라이언트와 서버는 연결을 자동으로 종료
4) Request가 먼저 가고 그 다음 Response가 오는 방식
5) Request는 브라우저에서 URI를 보내는 방식
2. 클라이언트
1) 브라우저 S/W를 사용
2) URI를 통한 Request
URI 메타문자 ? : 파라미터를 붙일 때 쓰임
URI 메타문자 & : 파라미터와 파라미터를 연결 할 때 사용
3) 브라우저의 역할
- URI로 요청을 보낼 수 있음
- HTML, Javascript, VBScript 등 클라이언트 측 언어를 실행 시키진 않음
4. 웹서버
1) S/W
- Web Server : IIS, Apache, NGINX
- Web Application Server(WAS) : JESU, Weblogic, Websphere 등
2) 웹 서버는 주로 요청받은 URI의 경로와 페이지를 찾고, 실행 역할
- 초창기에는 HTML 등 클라이언트 측 언어로 작성된 파일을 찾아서 클라이언트에게 보내줌
- 최근의 버전이 올라가면서 동적인 서버측 언어를 실행해 주기도 함
3) WAS는 서버 측 언어 실행을 위해 만들어진 S/W
4) 웹 서버만 있어도 되지만 규모가 크고 사용자 대기 시간 긴경우 둘을 같이 사용함
=> 정적인 컨텐츠 웹서버가 동적인 컨텐츠는 WAS 역할 분담 가용성 확보
5) 웹에서 주로 사용하는 서버측(동적컨텐츠) 언어
- JSP, PHP, ASP 등
6) 클라이언트가 요청한 페이지를 찾아서 동적인 컨텐츠를 실행한 후 맵핑되는 클라이언트 측 언어의 코드를 클라이언트에게 전달하고 클라이언트측 브라우저가 해당 코드를 실행 View
HTTP 프로토콜의 메시지
1. 웹 프록시 디버거 도구 활용
1) Fiddler
2) Burp suite Free Editon
2. HTTP Request
1) Header
- HTTP Method : HTTP의 동사
- URI : 요청한 페이지 주소
- User-Agent : 사용자 브라우저 종류
- Cookie : 클라이언트의 고유 식별 값
2) Body
- Post DATA: 파라미터 및 Value
3. HTTP Response (server)
1) Header
- HTTP Status Code : 상태코드 또는 응답코드
- 200번대 : 정상적으로 수행
- 300번대 : 리다이렉트
- 400번대 : 클라이언트측 에러
- 500번대 : 서버측 에러
2) Body
- Client Side Script : HTML, Javascript, VBScript 등
