본문 바로가기

WEB HACKING

(6)
[SWING] Web Hacking 06 File Vulnerability File Download 공격자가 임의의 파일을 다운로드 받을 때, 설정 파일, 패스워드 파일 등 민감한 정보를 탈취하는 취약점 시스템 내부 -> 파일 -> 파일 다운로드 -> 시스템 정보 획득 File Upload 공격자가 파일 시스템 상 임의의 경로에 원하는 파일 즉, 악성 확장자를 갖는 파일을 업로드할 수 있을 때 발생하는 취약점 파일 업로드 -> 악성코드 업로드 -> 시스템 접근 파일 -> 시스템 정보 획득 File Download 웹에서 파일 다운로드 시 파일의 경로 및 파일명을 파라미터로 받아 처리하는 경우, 이를 적절히 필터링하지 않으면, 임의의 위치에 있는, 시스템 정보를 얻을 수 있는 중요한 파일을 열람하거나 다운받는 것을 가능하게 한다. fileOpen..
[SWING] Web Hacking 05 SQL injection 대응 방안 입력 값에 대한 검증 SQL Injection 에서 사용되는 기법과 키워드는 엄청나게 많아서 사용자의 입력 값에 대한 검증이 필요하다. 서버 단에서 화이트리스트 기반으로 검증해야 한다. 블랙리스트 기반으로 검증하게 되면 수많은 차단리스트를 등록해야 하고, 하나라도 빠지면 공격에 성공하게 되기 때문이다. 공백으로 치환하는 방법도 많이 쓰이는데, 이 방법도 취약한 방법이다. 예를 들어 공격자가 SESELECTLECT 라고 입력 시 중간의 SELECT가 공백으로 치환이 되면 SELECT 라는 키워드가 완성된다. 공백 대신 공격 키워드와는 의미 없는 단어로 치환되어야 한다. Prepared Statement 구문사용 Prepared Statement 구문을 사용하게 되면, 사..
[SWING] Web Hacking 04 과제 1 Server Server 네트워크에서 클라이언트로 여러 가지 서비스를 제공(serve) 서비스 : 카카오톡, 인스타그램 등 인터넷을 통해 제공받는 모든 정보 네트워크 : 서버와 클라이언트가 서로 통신할 수 있게 다리 역할을 하는 기술 Web Server 클라이언트가 서버에 페이지 요청 시 정적 컨텐츠를 제공하는 서버 정적 컨텐츠 (.html, .png, .css) ex) 보이는 부분에서 기기나 시점에 따라 변하지 않는 부분으로 네이버 검색창의 로고나 메인 페이지 검색창과 같은 부분. 1) HTTP 서버 (소프트웨어)가 있는 컴퓨터로 구성 2) 서버가 파일을 요청한 브라우저에게 전송 동적 컨텐츠 (JSP) ex) 로그인한 유저에 따라 다르게 보이는 프로필 창과 같은 부분. 1) 클라이언트 요청에 ..
[SWING] Web Hacking 03 웹 리소스 / 웹 구성요소 웹 클라이언트 (Web Client) 웹을 사용하는 고객으로 필요한 데이터를 웹 서버에 요청(request)하는 주체이다. HTTP (Hyper Text Transfer Protocol) 웹에서 브라우저와 서버 간에 데이터를 주고 받는 약속, 즉 프로토콜이다. OSI 7계층에서 7계층인 응용 계층 (Aplication)에 해당한다. 사용자와 가장 밀접하며 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 프로토콜 중 하나이다. 암호화되지 않은 평문을 전송하기 때문에 모니터링만 하면 정보를 탈취할 수 있어 sniffing 공격에 취약하다. 웹 브라우저 (Web Browser) 클라이언트의 요청을 받아 request를 웹 서버에 전달하고, 웹 서버로부터 응답받은 res..
[SWING] Web Hacking 02 과제 1 Cookie Cookie (쿠키)는 웹 브라우저에 저장하는 데이터이다. 클라이언트 상태 정보를 로컬에 저장했다가 선별하여 String 형태로 이루어진 Key-value 쌍의 작은 데이터 파일이다. 사용자 인증이 유효한 시간을 명시하고 그 시간이 경과되기 전에는 브라우저가 종료되어도 인증이 유지된다. 이는 Connectionless(클라이언트에게 응답 후 연결을 끊는 비연결지향), Stateless(연결이 끊김과 동시에 통신이 종료되어 정보와 데이터가 유지되지 않음), 이러한 특성을 갖는 HTTP에서 상태를 유지하기 위함이다. HTTP 요청마다 새로운 커넥션을 열기 때문에 사용자 인증을 계속해서 해야한다는 점에 대한 해결책이라 볼 수 있다. 방문 사이트에 로그인 시 "아이디와 비밀번호를 저장하시겠..
[SWING] Web Hacking 01 Web 인터넷은 모든 기종의 컴퓨터들을 연결한 통신망으로 TCP/IP를 사용한다. 웹, 이메일, FTP, DNS 등이 인터넷 서비스에 해당한다. 웹 (World Wide Web)은 하나의 사이트 혹은 사이트들 간의 관계가 복잡하게 얽혀있으며, 하이퍼텍스트 구조를 활용해 수많은 정보들을 연결한다. HTML, HTTP, URL 등으로 구성된다. 웹은 프론트엔드와 백엔드로 나뉜다. 프론트엔드는 눈에 보이는 클라이언트에 위치하는 정적 페이지로 수동적이며 고정적으로 처리되며 단방향 통신이 이루어진다. 주로 사용하는 언어는 HTML, CSS, Javascript 이다. 프레임워크는 Angular JS, Bootstrap을 사용한다. 백엔드는 서버에 위치하는 동적 페이지로 처리도 통신도 실시간으로 이루어진다. 주로 ..