전체 글 65

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를 삽입 시에 동작한다. 대응방안 => ..

웹 쉘

Web Shell ? 웹 쉘은 웹페이지에서 웹서버에게 명령어를 실행하기 위해 만들어진 서버 측 스크립트 (asp,jsp,php) 클라이언트의 명령을 서버에 실행시켜주는 프로그램 웹 서버의 취약점을 이용하여 업로드된 후 서버의 제어권 장악, 정보 탈취, 위변조,악성 스크립트 삽입 등 행위 수행 ''' 쉘 : 사용자와 운영 체제의 내부(커널) 사이의 인터페이스 제공 (ex) 명령 프롬프트 cmd.exe) html : 클라이언트(사용자) 측 스크립트, 사용자 쪽에서 소스 볼 수 있다, 정적 페이지 생성 php : 서버 측 스크립트, 새로고침 할 때마다 달라지는 동적 웹페이지 생성가능 ''' 특징 -관리자 권한을 획득 후 웹 페이지의 소스코드를 열람하거나, 서버 내의 자료를 유출, 백도어 프로그램 설치 등의 다..

웹 취약점 -3

파일업로드 취약점공격자가 웹 사이트에 있는 게시판이나 자료실의 파일 업로드 기능을 이용하여 공격자가 만든 특정 공격 프로그램을 업로드하여 웹 서버의 권한 획득이 가능한 취약점 =>업로드 했을 때 업로드 된 파일이 웹 상에서 자동으 실행이 되면서 특정 행위가 발생될 때 컴퓨터가 읽을 수 있는 언어 형태인 asp,jsp,php 유형의  쉘 파일이 업로드 되었을 때 실행파일처럼 실행이 되면 취약점이 존재함. 정보, 관리자 권한을 탈취, 특정파일을 업로드 시켜 악성코드 감염을 시키는 등  EX)게시판에 jsp 파일의 확장자를 jpg로 변경 후 업로드 => jsp 파일 실행됨게시판에 html 파일 업로드 =>  업로드 경로 알아낼 수 있으며, URL의 파라미터 값을 수정 후 요청 => 업로드한 웹 파일  실행됨 ..

웹 취약점 -2

취약한 파일 존재 취약점웹 루트 하위에 내부 문서나 백업파일, 로그파일, 압축파일과 같은 파일이 존재할 경우 파일명을 유추하여 파일명을 알아내고, 직접 요청하여 해킹에 필요한 서비스 정보를 획득할 수 있는 취약점 => 취약한 파일의 기준이란 일반적으로 노출되면 안되는 문서 (내부 문서, 백업파일, 로그파일, 대외비나 개인정보가 포함된 압축파일)를 말하며 이러한 것들은 파일에 대한 권한 설정이나 별도 폴더로 저장을 할 필요가 있다. 구 분 검색할 파일의 형식(확장자)압축파일.zip, .rar, .alz, .tar, .gz, .gzip 등의 압축파일백업파일.bak, .org 등로그파일.log, .txt 등설정파일.sql(DB), .ini(윈도우설정), .bat(명령어를 통한 변경) 등문서파일.hwp, .do..

웹 취약점 -1

관리자 페이지 노출 취약점일반적으로 추측이 가능한 관리자 페이지 경로(/admin, /manager 등)를 사용하거나,프로그램 설계상의 오류, 인증 미흡으로 인해 관리자 페이지가 노출되는 취약점 => 관리자만 접근할 수 있도록 ip 등 별도의 접근 통제 기능을 통해서 제한하도록 되어있다.패스워드 등 보안설정을 갖추고 있더라도 관리자 페이지 자체가 노출이 되는 것 자체만으로도 취약함. EX)관리자 외의 IP에서 관리자페이지로 접근이 가능유추하기 쉬운 URL을 사용 대응방안-admin/manager/master 등 추측할 수 있는 관리자 페이지명 사용하지 않는다.-관리자 페이지에 관리자 IP만을 등록하여 임의의 사용자 제한-홈페이지 관리자 페이지는 관리용으로 지정된 디렉토리에만 보관하여 운영 /*관리자만 접..