Vulnerability Assessment 7

Blind SQL Injection Cheatsheet (블라인드 SQL 인젝션 Cheatsheet)

정보통신기반 보호법에 의거하여 정당한 접근권한이 없거나 허용된 접근권한의 범위를 초과하여 정보통신망에 침해하는 행위 등은 관련 법률에 따라 처벌 받을 수 있습니다. 허가 받지 않은곳에서 테스트를 절대 금지하며, 악의적인 목적으로 이용할 시 발생할 수 있는 법적 책임은 사용자 자신에게 있음을 알립니다. 이는 해당 글을 열람할 때 동의하였다는 것을 의미합니다. SQL Injection 이란 무엇인가? SQL Injection은 응용 프로그램이 데이터베이스에 대해 수행하는 쿼리를 공격자가 방해할 수 있는 웹 애플리케이션 취약점이다. SQL Injection 취약점으로 인한 여 공격자는 일반적으로 검색할 수 없는 데이터를 볼 수 있으며, 여기에는 다른 사용자에게 속한 데이터 또는 응용 프로그램 자체에서 액세스 ..

[계정관리] ROOT 계정 원격 접속 제한

사용된 OS 정보 : CentOS 6.10 x64 서버를 운영하다가 보면 서버실에 들어가서 콘솔(Console)로 작업하는 것보다 사무실 책상에서 Telnet*, SSH**를 이용하여 원격 연결 후 작업하는 경우 대부분이다. 원격 로그인을 할 때 편의상 root 계정으로 바로 로그인을 허용하고 사용하는 경우가 많으며 이는 보안상 문제가 발생할 수 있다. 그 이유는 공격자(해커 등)들은 기본적으로 먼저 서버에 Open 되어 있는 Port를 확인 후 Telnet나 SSH로 원격 접속이 가능한 경우 무작위 대입 공격(Brute Force Attack)***, 사전 대입 공격(Dictionary Attack)****등을 이용하여 root 계정으로 로그인을 시도한다. 해당 공격들이 성공하면 서버는 공격자(해커 등..

HTTP Methods 확인

Steps. 1. 개요 2. 테스트 방법 1. 개요 HTTP는 웹 서버의 동작하는 데 사용할 수있는 몇개의 메소드를 제공하며, 대부분은 배포 및 HTTP 응용 프로그램을 테스트하는 개발자를 지원하기 위해 설계 되었다. HTTP Method는 아래와 같다. ① GET Method : GET 요청 방식은 URI(URL)가 가진 정보를 검색하기 위해 서버 측에 요청하는형태이다. ② POST Method : POST 요청 방식은 요청 URI(URL)에 폼 입력을 처리하기 위해 구성한 서버 측 스크립트(ASP, PHP, JSP 등) 혹은 CGI 프로그램으로 구성되고 Form Action과 함께 전송되는데, 이때 헤더 정보에 포함되지 않고 데이터 부분에 요청 정보가 들어가게 된다. ③ HEAD Method : HE..

관리자 인터페이스 (페이지) 확인

Steps. 1. 개요 2. 테스트 방법 1. 개요 관리자 인터페이스는 어플리케이션 프로그램 또는 특정 사용자가 사이트에 특별한 활동을 할 수 있도록 어플리케이션 프로그램 서버에 존재 한다. 관리자 인터페이스는 아무나 접근해서는 안된다. 만약 관리자 인터페이스가 노출되어 공격자가 접근 할 수 있다면, 인증 우회, 무차별 대입 공격등을 이용하여, 관리자로 로그인이 가능하게 된다. 이러한 관리자 인터페이스는 인증되지 않은 접근으로로부터 보호하기 위한 충분한 제어를하지 않는 경우 많다. 2. 테스트 방법 관리자 인터페이스는 존재하지만, 테스터의 눈에는 보이지 않을 수 있다. 이런 경우 아래와 같은 방법으로 관리자 인터페이스를 찾아본다. 1. 가장 기본적으로 /admin, /administrator, /mana..

웹 서버 정보 확인 (Web server fingerprinting)

Steps. 1. 개요 2. 테스트 방법 1. 개요 웹 서버 핑거프린팅 (Web server fingerprinting)는 침투테스트에서 중요한 작업이다. 실행중인 웹 서버의 버전 및 종류를 알고 있으면, 알려진 취약점을 선택하여 적절한 공격을 진행 할 수 있다. Web 서버의 종류를 안다는 것은 테스트 프로세스에 도움이 되며 테스트 과정을 변경할 수 있다. 웹 서버의 소프트웨어의 각 버전을 확인하는 방법은 특정 명령을 전송하여, 명령에 의한 응답값을 분석하여 도출 할 수 있다. 하지만 특정 명령을 전송하였을 때, 동일한 반응을 하지 않는다. 그렇기 때문에 여러 명령을 전송하여 응답값을 비교하여 정확도를 높여야 한다. 2. 테스트 방법 웹 서버를 식별하는 간단하고 가장 기본적인 형태는 HTTP 응답 헤더..

웹페이지 소스코드에 중요 정보 노출 확인

Steps. 1. 개요 2. 테스트 방법 1. 개요 개발자가 소스코드에 대한 상세한 설명 및 메타 데이터를 포함하는 것은 매우 흔한 일이다. 그러나 HTML 코드에 포함된 의견이나 메타 데이터는 잠재적인 공격자에게 제공되어서는 안되는 내부 정보가 포함되어 있을 수 있다. 의견이나 메타데이터 리뷰는 어떤 정보가 노출되어 있는지 확인하기 위해 반드시 수행되어야 한다. 2. 테스트 방법 웹 페이지 개발 당시 개발자는 어플리케이션 프로그램에 대한 디버깅 정보를 HTML 주석을 이용해서 많이 작성한다. 개발자는 이러한 주석을 개발이 완료된 후 서비스 오픈 하기 전에 모두 삭제 해야 하지만 그렇지 않고 종료하는 경우가 빈번히 발생한다. 공격자는 어플리케이션 프로그램에 대한 자세한 정보를 얻기 위해 웹 브라우저에서 ..

검색 엔진을 이용하여 노출된 정보 확인

Steps. 1. 개요 2. 테스트 방법 1. 개요 검색엔진을 이용하여 노출된 정보를 확인하는 방법은 간접적인 방법과 직접적인 방법이 있다. 직접 방법은 인덱스와 캐시에서 관련 콘텐츠를 검색하는 것이며, 간접 방법은 검색 포럼, 뉴스 그룹 등에서 민감한 정보를 수집하는 것이다. 검색 엔진 로봇이 크롤링을 완료하면, 관련 검색 결과를 리턴하기 위해 태그 및 와 같은 속성을 기초하여 웹 페이지를 인덱싱 한다. 검색 엔진 로봇이 수집하는 데이터는 서버에 캐시상태로 저장하기 때문에, 해당 사이트가 삭제된 후 오랜 시간이 지나기 전엔 검색결과에노출된다. 그렇기 때문에 이전 페이지가 그대로 노출 될 수 있으며, 이 데이터를 모으면 손쉽게 취약점을 찾을 수 있다. 2. 테스트 방법 검색 엔진을 사용하여 네트워크 다이..