Security/웹 모의해킹 실습 10

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 메시지(값들)를 가로채고 변조해서 변조된 값으로 입력이 되도록 한다.모의해킹, 취약점 진단 시 프록시 툴을 ..

Kali linux에서 DVWA 환경 구성 및 Burp Suite 설치

DVWA 란? Damn Vulnerable Web Application 웹 취약점을 연구할 수 있도록 취약하게 설정되어 있는 웹 어플리케이션 서비스 환경이다. 취약점을 분석할 수 있는 항목은 무작위 대입 공격부터 크로스 사이트 스크립팅 취약점까지 실 서비스에서 많이 발생되는 취약점 위주로 편성되어 있다. 웹 모의해킹을 학습/연구 목적으로 Apache + PHP + MySQL으로 구성되어 있으며 초급(Low),중급(Medium),고급(High) 레벨로 분류되어 있다. 레벨이 높아질수록 시큐어 코딩이 강하게 적용되어 있다. Xampp 설치 https://www.apachefriends.org/ 2022년도 Kali linux 이미지를 사용하였을 때는 문제없이 진행되었는데 2023년도 Kali linux 이미..

Kali linux 가상환경에 설치 및 한글 입력기 설정

DVWA 환경 구성 전에 Kali linux를 가상머신에 설치하는 방법을 적어보았다. ISO 파일을 다운로드하여 직접 설치하는 방법과 Vmware 나 Virtual Box 같은 가상환경에 미리 칼리리눅스 설치해서 세팅해놓 이미지를 다운로드하는 방법이 있는데 본인은 두번쨰 방법으로 설치하였다. (Vmware에서 진행하다가 노트북 용량 문제로 다른 pc에서 이번에는 virtualbox로 재진행하기로 하였다.) 가상머신 및 Kali linux 이미지 다운로드 먼저 Vmware 나 Virtual Box 를 다운받는다. 본인은 Virtual Box를 다운로드 하였다. 윈도우를 사용하고 있기 때문에 Windows hosts를 선택하였다. ''' vmware는 설치시 키보드 드라이버 추가 설치 옵션은 체크해야한다고 ..