Security 34

http 헤더 및 DDoS 관련

- 보통 관제는 탐지패턴에 의해 탐지하는 형태이다보니 무엇이든 정오탐을 빠르게 판별하는 게 우선이다.- 가장 위험한 것으로 생각되는 공격은 DDoS, 랜섬웨어, 파일 업로드 취약점(특히 웹 쉘), 파일 다운로드 취약점 이다. HTTP 헤더 관련 Host요청이 어떤 호스트(서버)로 가야 하는지를 지정 Referer 요청이 발생한 페이지의 URL 링크로 사용자가 현재 페이지에 도달하기 전에 방문한 페이지의 URL이다.링크를 클릭하여 웹페이지로 이동하면 Referer이 표시되며 북마크나 주소창에 URL을 입력하는 경우는  이 헤더가 존재하지 않는다. X-Fowarded ForHTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 실제(원) IP 주소를 식별하는 사실상의 표준 헤더다. 이런 형..

CSP Bypass & Javascript (Low)

CSP (Content Security Policy) 컨텐츠 보안 정책으로 각종 XSS 및 injection 공격을 비롯한 특정 유형의 공격을 탐지하고 완화하는 데 도움을 주는 추가 보안 계층이다. 누구나 인라인 자바스크립트나 CSS를 입력할 수 없도록 한다. A-src A 에 대한 설정을 바꾼다. (제어한다) ex) script-src 스크립트 권한 설정을 바꾼다. ''' none(불가능) 특정도메인 self(현재 도메인) unsafe-inline(다 가능) nonce-암호화된 문자(특정 문자값으로 script 태그 검증 ) ''' CSP Bypass (Low) -이 레벨의 소스코드에는 프로그램 내 자원들을 로드할 때 같은 오리진이나 pastebin 등의 적혀있는 도메인에서 온 자원만 허용한다. -se..

Weak Session IDs (Low)

세션과 쿠키 - 쿠키(Cookie) : 웹사이트의 서버가 사용자의 컴퓨터(클라이언트)에 저장하는 기록파일 이후 모든 요청마다 서버로 쿠키를 다시 전송한다. (로그인 정보, 비회원의 장바구니 정보) 이름,값,만료일,경로 정보로 구성되어 있다. 클라이언트 자원을 사용하기 때문에 서버 자원 낭비를 방지하고 웹사이트의 속도를 높일 수 있다. - 세션(Session) : 웹서버에 접속해 있는 상태, 서버 내부에 저장되며 세션의 키값만을 클라이언트 측에 남겨둔다. 브라우저를 닫거나 서버에서 삭제 시 삭제가 되므로 쿠키보다 보안성이 좋다. 동작원리 : 서버측은 클라이언트가 요청 시 쿠키 값을 확인 (없으면 서버에서 생성하여 돌려준다.) 클라이언트에게 세션 id를 쿠키로 저장하도록 전달한다. 쿠키 이름 : JSESSI..

XSS (Stored, Reflected, DOM) (Low)

XSS ( 교차 사이트 스크립팅) Cross-Site Scripting 약자로 사용자가 요청한 페이지에 강제로 악성 스크립트를 삽입해서 브라우저에서 악의적인 동작이 실행되도록 하는 공격기법 자바스크립트로 실행되는 모든 코드가 실행될 수 있는데 특히 사용자의 세션을 공격자의 서버로 전송해서 탈취하거나 악성코드가 있는 페이지로 리다이렉트 시키는 방식으로 공격이 주로 행해진다. XSS (Stored) XSS 취약점이 있는 웹 서버에 공격용 스크립트를 입력시켜 놓으면, 방문자가 악성 스크립트가 삽입되어 있는 페이지를 읽는 순간 방문자의 브라우저를 공격하는 방식 가장 일반적인 방법은 게시판 같은 곳에 HTML 문서에 브라우저의 쿠키값을 보여주는 스크립트를 등록하였다. 데이터베이스에 저장된 코드가 화면에 html로..

SQL injection & Blind SQL injection (Low)

SQL INJECTION (SQL 삽입) 악의적인 사용자가 입력값으로 웹사이트 SQL 쿼리를 주입하고 실행되게 하여 DB가 비정상적인 동작을 하도록 조작하는 행위 SQL INJECTION 종류 1) Error based SQL Injection (논리적 에러를 이용) 논리적 에러를 이용한 기법으로 가장 많이 쓰이고 대중적인 공격 기법 다양한 패턴을 통한 우회 공격으로 쿼리를 실행하게 한다. ① SELECT * FROM Users WHERE id = 'INPUT1' AND password = 'INPUT2' ② SQL INJECTION으로 'OR 1=1 -- 주입 ③ SELECT * FROM Users WHERE id = ' ' OR 1=1 -- ' AND password = 'INPUT2' WHERE 절..

File Upload & Insecure CAPTCHA (Low)

File Upload 공격자가 서버 스크립트 코드가 포함된 파일을 서버에 업로드하여 코드를 실행하는 공격 해당 파일을 웹셀이라고 하며 asp,jsp,php 같은 확장자를 가지는 파일을 업로드할 수 있으면 발생한다. DVWA 웹 사이트 상에 웹 쉘의 기능을 하는 PHP파일을 생성하고 해당 파일을 업로드하여 웹 상에서 쉘 명령어를 실행할 것이다. ''' 쉘은 명령어 해석기로 스크립트 파일을 읽어 일련의 명령을 수행한다. FI는 직접 파일을 업로드하지 않아도 외부 url을 입력해서 다른 서버에 있는 공격코드를 삽입할 수 있다. ''' File Upload (Low) 업로드 할 이미지 파일을 선택하라고 되어있다. 이 곳에 간단한 웹쉘을 만들어 올려보겠다. echo 부분은 명령어를 입력받을 수 있는 폼을 제공하고..

CSRF & File Inclusion (Low)

CSRF (사이트 간 요청 위조) Cross-site request forgery 약자로 사용자가 자신의 의지와는 무관하게 공격자가 원하는 행위를 수행하게 한다. 비밀번호를 변경하거나 이메일 주소를 변경하거나 자금을 이체할 수 있다. 즉 사용자가 로그인이 되어있는 세션을 이용해서 원하지 않는 http 요청을 대신 수행하도록 한다. CSRF 공격의 목적은 수정, 삭제, 등록, 권한상승, 정보유출 등이 있다. DVWA 웹사이트 상에서 사용자가 정상적으로 로그인 한 상태에서 해커가 보낸 피싱 링크를 클릭하면 로그인 되어 있던 사이트의 패스워드를 자동으로 변경되게 해볼 것이다. ''' XSS vs CSRF 공격(악성 스크립트)이 실행되는 위치 XSS는 희생자 클라이언트의 PC CSRF는 위조된 요청을 서버에 보..

Brute Force & Command Injection (Low)

Brute Force (무차별 대입 공격) 사용자의 패스워드를 알아내기 위한 공격 기법 중 하나로, 아이디와 패스워드가 일치할 때까지 조합 가능한 모든 경우의 수를 반복해서 대입해보는 방법 버프슈트의 인트루더 기능을 이용하여 자동으로 반복한다. 1. 알파벳 순서대로 대입 전달 방식을 브루트 포스로 했을때 최소길이 최대길이 어떤 키를 입력할 것인지, 총 몇 번을 시도해야 경우의수가 끝나는지 다 나오게된다. 2. Dictionary 공격 사람들이 자주 사용하는 패스워드를 대입해보는 것이다. 시도횟수(count) 알파벳순보다 보통 훨씬 적은 것을 볼 수 있다. 127.0.0.1/dvwa를 사용하면 버프 스위트에서 못 잡는 경우가 생기니 Kali IP/dvwa로 접속한다. Brute Force (low) Dic..

프록시와 프록시 툴

Proxy server (프록시 서버) 클라이언트의 요청을 받아 중계하는 서버클라이언트는 실제로 서버와 연결된 프록시서버와 동작내부 ip 같은 정보들이 노출 되어서는 안되기 때문에 서버를 보호하기 위해 중간에 서버를 하나 둔다. (정보들이 유출되면 침입할 수 있는 경로가 되기 때문에 내부까지 접근할 수 있는 경로 차단)  목적1. 보안목적 (서버보호) : 내부 ip를 숨기고 방화벽으로 사용하기도 한다. 2. 접속우회 : 다른 ip로 접근하여 접속 제한을 우회한다.3. 캐시 데이터 사용 : 요청된 내용을 캐시를 사용해 저장한다.  웹 프록시 툴프록시의 기능이 활용된 도구중간에 Http Request 메시지(값들)를 가로채고 변조해서 변조된 값으로 입력이 되도록 한다.모의해킹, 취약점 진단 시 프록시 툴을 ..

웹 취약점 -4

XSS(Cross Site Scripting Vulnerability) 취약점공격자가 클라이언트 스크립트를 악용하여 웹사이트에 접속하려는 일반 사용자로 하여금 공격자가 의도한 명령이나 작업을 수행하는 공격으로, 세션탈취, 웹사이트 위변조, 악성 스크 립트 삽입 및 실행, 접근경로 리다이렉트 등의 다양한 공격을 유발할 수 있는 취약점 => 실제로 스크립트 구문을 입력했을 때 text가 아닌 script로서 실행이 될 때악성 스크립트가 삽입된 게시글을  올려놓고 그것을 사용자가 접근, 읽었을 때악성 스크립트가 실행되어 사용자의 쿠키 값 같은 정보값들이 전달되어서 공격자가 탈취하는 방식    EX)게시판에 script 코드의 삽입이 가능하게 되어있고 URL에 script를 삽입 시에 동작한다. 대응방안 => ..