분류 전체보기
-
<WEB Hacking> SessionWEB Hacking 2021. 12. 14. 23:27
■세션 - 세션은 클라이언트가 인증 정보를 변조할 수 없게 하기 위해 사용 - 세션은 인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는 키(유추할 수 없는 랜덤한 문자열)를 만들어 클라이언트에 전달하는 방식 - 해당 키를 Session ID라 함 - 브라우저는 해당 키를 쿠키에 저장하고 이후에 HTTP 요청을 보낼때 사용 - 서버는 요청에 포함된 키에 해당하는 데이터를 가져와 인증 상태를 확인 - 쿠키는 데이터 자체를 이용자가 저장하고, 세션은 서버가 저장함
-
<WEB Hacking> CookieWEB Hacking 2021. 12. 14. 22:44
- 웹 서버는 수많은 클라이언트와 HTTP 프로토콜을 사용해 통신 - HTTP 프로토콜로 웹 서버와 통신할 때는 웹 서버에 명령을 내리기 위해 GET, POST와 같은 메소드와 자원의 위치를 가리키는 URL 등이 포함되어 있음 - 이외에도 헤더(Header)를 통해 웹 서버에게 요청을 보내고, 웹 서버는 헤더를 통해서 웹 서버에게 요청을 보내고, 웹 서버는 헤더를 읽고 클라이언트에게 결과 값을 반환 - 헤더에는 클라이언트의 정보와 요청의 내용을 구체화하는 등의 데이터가 포함되는데, 클라이언트의 인증 정보도 포함 ■쿠키 - 클라이언트의 IP 주소와 User-Agent는 매번 변경될 수 있으며, HTTP 프로토콜의 Connectionless와 Stateless 특징 때문에 웹 서버는 클라이언트를 기억할 수 ..
-
<WEB Hacking> Browser DevToolsWEB Hacking 2021. 12. 14. 15:26
■개발자 도구 ● : 요소 검사(Inspect) 및 디바이스 툴바(Device Toolbar) ● : 기능을 선택하는 패널 - Elements : 페이지를 구성하는 HTML 검사 - Console : Javascript를 실행하고 결과를 확인할 수 있음 - Source : HTML, CSS, JS 등 페이지를 구성하는 리소스를 확인하고 디버깅할 수 있음 - Network : 서버와 오가는 데이터를 확인할 수 있음 - Performance - Memory - Application : 쿠키를 포함하여 웹 애플리케이션과 관련된 데이터를 확인할 수 있음 - Security - Lighthouse ● : 현재 페이지에서 발생한 에러 및 경고 메시지 ● : 개발자 도구 설정 ■요소 검사 - 요소 검사를 활용하면 특..
-
<WEB Hacking> Web BrowserWEB Hacking 2021. 12. 13. 22:43
도구로서의 소프트웨어는 반복적인 작업을 자동화하여 일의 능률을 높이고, 복잡한 기능을 쉽게 사용할 수 있도록 단순하고 직관적인 인터페이스를 제공 ■웹 브라우저(Web Browser) 웹은 인터넷이라는 글로벌 네트워크 위에 구현되어 있으며, 정해진 프로토콜을 기반으로 통신 - 이용자가 주소창에 사이트 주소를 입력하면 웹 브라우저는 1. 웹 브라우저의 주소창에 입력된 주소를 해석(URL 분석) 2. 사이트 주소에 해당하는 주소 탐색(DNS 요청) 3. HTTP를 통해 해당 사이트에 요청 4. 사이트의 HTTP 응답 수신 5. 리소스 다운로드 및 웹 렌더링(HTML, CSS, Javascript) ■URL URL은 Uniform Resource Locator의 약자로, 웹에 있는 리소스의 위치를 표현하는 문자..
-
<WEB Hacking> WebWEB Hacking 2021. 12. 13. 18:51
■웹(Web) HTTP(웹상에서 서로 통신을 하기 위해 정해둔 일종의 규칙)를 이용하여 정보를 공유하는 서비스 웹 서버(Web Server) : 정보를 제공하는 주체 웹 클라이언트(Web Client) : 정보를 받는 이용자 · 프론트엔드(Front-end) 이용자의 요청을 받는 부분 이용자에게 보이는 부분 웹 리소스(Web Resource)로 구성 · 백엔드(Back-end) 요청을 처리하는 부분 ■웹 리소스(Web Resource) 웹에 갖춰진 정보자산을 의미 http://A/B : A에 존재하는 B 경로의 리소스를 가져오라는 의미 모든 웹 리소스는 고유의 URI(Uniform Resource Identifier)를 가지며, 이를 이용하여 식별됨 웹의 프론트엔드를 구성하는 대표적인 웹 리소스에는 HT..
-
<WEB Hacking> HTTPSWEB Hacking 2021. 12. 13. 18:03
HTTP의 요청과 응답은 평문으로 전송 따라서, 누군가 이를 가로챈다면 중요한 정보가 유출될 수 있음 ■HTTPS(HTTP over Secure socket layer) HTTPS는 TLS(Transport Layer Security) 프로토콜을 도입하여 위와 같은 문제점 보완 TLS는 서버와 클라이언트 사이에 오가는 모든 HTTP 메시지를 암호화하여 도청과 변조로부터 보호 웹 서버의 URL이 "http://"로 시작하면 HTTP, "https://"로 시작하면 HTTPS 프로토콜을 사용한다.
-
<WEB Hacking> HTTPWEB Hacking 2021. 12. 13. 17:48
■통신 프로토콜 요청(Request) : 클라이언트 -> 서버 응답(Response) : 서버 -> 클라이언트 프로토콜(Protocol) : 규격화된 상호작용에 적용되는 약속 컴퓨터 통신 프로토콜은 각 통신 주체가 교환하는 데이터를 명확히 해석할 수 있도록 문법(syntax)을 포함 문법에 어긋난 메시지는 잘못 전송된 것으로 받아들여 무시함 ■HTTP(Hyper Text Transfer Protocol) 서버와 클라이언트의 데이터 교환을 요청과 응답 형식으로 정의한 프로토콜 기본 동작 : 클라이언트가 요청하고, 서버가 응답 웹 서버는 HTTP 서버를 HTTP 서비스 포트(TCP/80 또는 TCP/8080)에 대기시킨다. 클라이언트가 이 서비스 포트에 HTTP 요청을 하면, 서버 측은 이를 해석하여 응답을..
-
<Lord of SQL Injection> cthulhuWargame/Lord of SQL Injection 2021. 12. 13. 16:26
cthulhu 서버에 WAF(웹 방화벽)가 동작한다. Paranoia Level은 기본값인 1로 설정되어있다. 이 WAF를 우회할 수 있냐고 묻는다. GET 방식으로 전달받은 id와 pw에서 prob, _, ., (), admin을 필터링한다. 그 뒤 쿼리를 통한 결과를 배열로 가져오는데, id의 값이 참이면 문제가 풀린다고 한다. 기본적인 SQL Injection 구문인 ' or 1=1#을 id에 입력해보면 접근이 제한되었다. 이 외의 구문들을 통해 시도해본 결과, 웬만한 SQL Injection 구문은 다 필터링하는 것 같다. https://github.com/SpiderLabs/owasp-modsecurity-crs/issues/1181에는 CRS v3.1.0을 우회하는 방법을 참고하였다. 이 방법..