본문 바로가기

전체 글173

File Upload 취약점 File Upload 취약점 오늘은 파일 업로드 취약점에 대해서 알아보도록 하겠습니다. 파일 업로드 취약점이란 말 그대로 .php, .asp, .jsp등의 파일을 업로드 할 수 있는 취약점을 말합니다. 따라서 파일 업로드 기능이 없으면 취약점이 없다고 봅니다. 주로 업로드 하는 파일을 웹쉘이라고 부르는데 이는 악성코드의 일종입니다. 웹 서버에서 동작하기 때문에 웹 서버가 개발된 동일한 환경의 언어로 되어 있어야 합니다. 두가지 웹 쉘을 소개해보려고 합니다. 1. xcu_cmd.asp - 윈도우 탐색기 라고 보면 됩니다.(웹 서버 하드디스크의 파일 목록을 봄) 2. cmd.asp (nc.exe와 같이 쓰임) - cmd창이라고 보면 됩니다. 그러면 이 두가지 웹 쉘을 실습해보도록 하겠습니다. 실습 1. xc.. 2018. 7. 22.
File Download 취약점 File Download 취약점 이번에는 파일 다운로드 취약점에 대해서 살펴보도록 하겠습니다.말 그대로 허용된 파일 외의 파일이 다운로드가 가능한 취약점입니다. 웹 애플리케이션에서 파일명을 필터링하지 못했을 경우 발생합니다. 파일 다운로드 취약점 패턴은 다음과 같습니다. 1. 다운로드 가능한 파일이 올려져 있다. 2. 해당 파일-우클릭-속성-주소에 상대경로와 패스명이 나온다. (이를 이용하여 파일 다운을 받을 수 있습니다.) 아래는 예시입니다.보통 ../을 7개~10개정도 입력하면 대부분 커버가 가능합니다. (http://server/link.php?file=../../../../../../../../etc/passwd) (http://server/link.php?file=..%2F..%2F..%2F.... 2018. 7. 22.
SQL Injection SQL Injection 이어서 SQL Injection에 대해서 알아보도록 하겠습니다.SQL Injection은 말 그대로 SQL 쿼리를 이용하여 공격을 수행하는 것입니다. SQL Injection이 가능한 조건은 두가지가 있습니다. 첫번째로는 input화면이 존재해야 하고 두번째로는 input Data가 DB와 연동되어 있어야 합니다. SQL Injection에는 여러 유형이 있습니다. 하나하나 살펴보도록 하겠습니다. 1. 인증우회 관리자 로그인 화면이 타겟입니다. 만약 인증 우회가 안된다면 2.error based injection을 수행하도록 합니다. 정상적으로 로그인 한다면 쿼리문은 아래와 같이 됩니다. Select * From member Where bId='admin' and bPass='s.. 2018. 7. 21.
CSRF(Cross Site Request Forgery) CSRF(Cross Site Request Forgery) 앞서 XSS에 대해서 살펴봤습니다.CSRF는 근본적인 원인이 XSS와 동일합니다. 그렇기 때문에 XSS취약점이 있다면 CSRF취약점도 존재한다고 봅니다. 그렇다면 차이는 무엇인지 살펴보도록 하겠습니다. 1. 공격 대상XSS는 희생자의 PC에 있는 브라우저를 대상으로 공격을 진행하지만,CSRF는 웹서버에 있는 게시판을 대상으로 공격을 진행합니다. 2. 세션XSS는 희생자의 세션을 공격자의 서버에 보내는 것이고, CSRF는 희생자의 세션을 이용하여 공격이 이루어집니다. XSS는 쿠키값을 가져오는 것이고, CSRF는 해당 권한을 이용하여 미리 작성해둔 코드를 실행시키는 것입니다.위의 문장을 잘 풀어쓰자면,XSS는 앞에서 보셨듯이 희생자의 쿠키값을 탈취.. 2018. 7. 21.
try2hack LEVEL 1소스코드를 확인해보면 패스워드를 비교하는 로직에 패스워드가 하드코딩되어있음을 알 수 있습니다. LEVEL 2우클릭을 하면 아래와 같은 메시지가 뜹니다. LEVEL 2에 접속하고 Response 패킷을 Paros로 잡아 body부분의 html코드에서 위의 메시지를 찾아봅니다.그러면 아래와 같이 if문을 확인할 수 있습니다. 우클릭을 우회하는 방법은 두가지가 있습니다.1. if문 자체를 없앤다.2. if문은 그대로 return 값을 true로 바꾼다. 저는 2번 방법으로 진행할 건데 값을 true로 바꿔야 하니 paros에서 아래와 같이 트랩을 잡아줍니다. paros로 들어온 response패킷에서 return값을 true로 바꿔주고 alert는 없애고 continue합니다. 그러면 아래와 같이.. 2018. 7. 20.
cookie를 이용한 로그인 http://itlearner.tistory.com/293 와 http://itlearner.tistory.com/352 에서 포스팅했듯이 쿠키로도 로그인이 가능합니다. 아래는 쿠키정보를 빼내는 코드(화이트 해커를 위한 암호와 해킹 서적 참고)입니다.이를 이용하면 세션 탈취가 가능합니다. 참고로 이러한 쿠키값 도용은 희생자가 로그인하고 있을 동안만 가능합니다. 123456789101112131415161718from scapy.all import *import re def cookieSniffer(packet): tcp = packet.getlayer('TCP') cookie = re.search(r'Cookie: (.+)\\r\\n', str(tcp.payload)) if cookie: print(co.. 2018. 7. 18.
XSS(Cross Site Script) XSS(Cross Site Script) 태그로 된 공격코드가 있을 때 브라우저에서 실행을 시켜주는 취약점입니다. 즉, 브라우저가 공격을 당한다고 생각하시면 됩니다. XSS는 Reflected XSS와 Stored XSS로 크게 2가지 유형으로 나눠집니다. 간단하게 설명을 보고 가겠습니다. XSS 유형 1. Reflected XSS - 공격자의 공격 스크립트가 DB에 저장되지 않고(일회성 공격이 가능) 사용자가 클릭했을 경우에 동작 - 태그 이용 - 공격 범위 : 공격 태크 클릭하는 사용자 - Reflected XSS는 공격 스크립트가 삽입된 URL을 사용자가 쉽게 확인 할 수 없도록 변형(보통 Encoding)시킨 후 이메일이나 다른 웹사이트 등에 클릭을 유도 - 주로 검색창 2. Stored XSS .. 2018. 7. 15.
SQL 인젝션 취약점 SQL 인젝션에 대해서 간단하게 알아보도록 하겠습니다.자세한 것은 http://itlearner.tistory.com/304?category=780096을 참고하면 되겠습니다. 1. 취약점 이해1-1. 개요데이터베이스와 연동된 웹 어플리케이션에서 SQL 질의문에 대한 필터링이 제대로 이루어지지 않을 경우 공격자가 입력이 가능한 폼(웹 브라우저 주소 입력창 또는 로그인 폼 등)에 조작된 질의문을 삽입하여 웹 서버의 데이터베이스 정보를 열람 또는 조작을 할 수 있는 취약점을 말합니다. 1-2. 파급 효과- 데이터베이스 정보 노출- 데이터 삽입, 삭제 및 변경- 데이터베이스 서비스 중지- 사용자 인증 우회 1-3. 취약점의 이해SQL 인젝션 공격은 SQL(DB의 정보를 조회하기 위해서 질의 및 조작하는 명령어.. 2018. 6. 5.
운영체제 명령 실행 운영체제 명령 실행 취약점에 대해서 알아보도록 하겠습니다. 1. 취약점 이해1-1. 개요웹 어플리케이션에서 system(), exec()와 같은 시스템 명령어를 실행시킬 수 있는 함수를 제공하며 사용자 입력 값에 대한 필터링이 제대로 이루어지지 않을 경우 공격자가 운영체제 시스템 명령어를 호출하여 백도어 설치나 관리자 권한 탈취 등 시스템 보안에 심각한 영향을 미칠 수 있는 취약점입니다. 1-2. 파급 효과- 시스템 계정 정보 유출- 백도어 설치- 관리자 권한 탈취- 시스템 명령어 실행 1-3. 취약점의 이해해당 홈페이지에 명령어를 실행할 수 있으므로 홈페이지 내에 저장된 파일을 지우거나, 바이러스를 깔거나, 홈페이지 서버를 다운시키는 등의 나쁜 행위를 할 수 있게 됩니다. 2. 취약점 진단2-1. 취약.. 2018. 6. 4.
웹 취약점 진단 항목(22개) 앞으로 "누구나 쉽게 따라하는 웹 취약점 진단 기술" 서적을 공부하며 취약점 하나하나에 대한 포스팅을 간단히 하여 같이 올려놓겠습니다. 아래의 웹 취약점 진단 항목(22개)는 "KISA의 취약점 진단 제거 가이드(2013.12)"의 내용을 참고 하여 작성되었다고 합니다.(참고로 KISA의 취약점 진단 제거 가이드(2013.12)는 http://itlearner.tistory.com/315?category=788684 2018. 6. 4.
Arachni를 이용한 Password field with auto-complete 취약점 스캔 및 검증 이번에도 이어서 Arachni를 이용하여 스캐닝을 하고 그에 대한 검증까지 해보는 시간을 갖도록 하겠습니다. 1. Password field with auto-complete 취약점의 개념일단 스캐닝을 하기 앞서 간단하게 Password field with auto-complete 취약점의 개념을 이해하고 가도록 하겠습니다. Password field with auto-complete 취약점은 쉽게 말해 자동완성을 말합니다.폼에 한 글자를 입력하면 문자열이 동적으로 표시되는 것을 뜻 합니다. 해당 취약점은 input 태그에 autocomplete="off"로 설정하여 방지할 수 있습니다. 2. Arachni를 이용한 스캐닝저는 http://demo.testfire.net을 대상으로 진행하였습니다. 1개의.. 2018. 4. 8.
Arachni를 이용한 Directory listing 스캔 및 검증 이번에도 이어서 Arachni를 이용하여 스캐닝을 하고 그에 대한 검증까지 해보는 시간을 갖도록 하겠습니다. 1. Directory listing 취약점의 개념일단 스캐닝을 하기 앞서 간단하게 Directory listing 취약점의 개념을 이해하고 가도록 하겠습니다. Directory listing이란 웹 서버 설정오류 및 기본페이지가 설정되어 있지 않는 경우 디렉터리 정보가 노출되는 취약점을 의미합니다. 디렉터리 노출, 디렉터리 브라우징이라고 불리기도 합니다. 2. Arachni를 이용한 스캐닝저는 http://demo.testfire.net을 대상으로 진행하였습니다. 1개의 페이지에 대하여 Directory listing 취약점이 발견되었습니다. 3. 검증스캐닝 결과 발견한 1개의 페이지에 대해서 .. 2018. 4. 7.
Arachni를 이용한 Unencrypted password 취약점 스캔 및 검증 이번에도 이어서 Arachni를 이용하여 스캐닝을 하고 그에 대한 검증까지 해보는 시간을 갖도록 하겠습니다. 1. Unencrypted password 취약점의 개념일단 스캐닝을 하기 앞서 간단하게 Unencrypted password 취약점의 개념을 이해하고 가도록 하겠습니다. Unencrypted password 취약점은 컨설팅시 반드시 점검해야 하는 것 중 하나로써 패스워드가 평문 전달되는 취약점을 말합니다. 2. Arachni를 이용한 스캐닝저는 http://demo.testfire.net을 대상으로 진행하였습니다. 1개의 페이지에 대하여 Unencrypted password 취약점이 발견되었습니다. 3. 검증스캐닝 결과 발견한 1개의 페이지에 대해서 정탐인지 검증해보도록 하겠습니다. http:/.. 2018. 4. 7.
Arachni를 이용한 Common directory 스캔 및 검증 이번에도 이어서 Arachni를 이용하여 스캐닝을 하고 그에 대한 검증까지 해보는 시간을 갖도록 하겠습니다. 1. Common directory 취약점Common directory는 알려진 디렉터리 이름 (/admin, /master, /bbs, /etc 등)을 호출하여 노출 되는 경우, 접속 가능한지 확인해보면 됩니다. 2. Arachni를 이용한 스캐닝저는 http://demo.testfire.net을 대상으로 진행하였습니다. 취약점 스캔은 여러가지 디렉터리 패턴을 던짐으로써 진행하게 됩니다. 그중에서 200 OK될 때 취약점이 있다고 가정합니다.1개의 페이지에 대하여 Common directory 취약점이 발견되었습니다. 3. 검증검증할 때는 직접 들어가 확인해보면 됩니다. http://demo.t.. 2018. 4. 7.
SQLMap 설치 및 사용법 이번 시간에는 SQL Injection만을 집중적으로 점검하는 툴인 SQLMap 설치 및 사용법을 알아보도록 하겠습니다.다. windows10환경에서 진행하였습니다. 1. SQLMap 설치1-1. python 설치SQLMap은 파이썬으로 만들어졌기 때문에 실행하기 위해서는 python이 설치되어있어야 합니다.python의 버전은 2.6이상 3.0미만 이어야 합니다.https://www.python.org/downloads/windows/ 2018. 4. 7.