본문 바로가기

Hacking & Security

(52)
웹 취약점 진단 관련 끄적임 웹 취약점 진단 관련한 끄적임 1. 단순 정보 노출 단순 정보 노출 취약점은 말 그대로 민감한 정보가 노출되는 것으로 개발 과정의 코멘트 (소스 코드 내 주석) 또는 에러 메시지 등에서 의도하지 않은 정보가 노출되는 취약점을 의미한다. 판단기준은 아래와 같다. 에러 페이지에 웹 서버 또는 WAS 버전 정보, 절대경로, 에러메시지 노출 HTML 소스보기를 통해 확인시, 주석 형태로 남아있는 테스트용 아이디/패스워드, 관리자 페이지 URL 정보 존재할 경우 HTTP 헤더를 통한 서버관련 정보 노출 등과 같은 기준으로 취약 상태를 판단하며 파악할 수 있다. 실제 존재하는 페이지에서 어플리케이션명을 없애고 폴더명만 기재하여 접속해보고, 어플리케이션명에 1을 적고 접속해보면 403, 404 등의 HTTP Stat..
SQLI - Statement & PreStatement SQLI - statement & prepared statement 구분 내용 Statement 외부 입력값이 쿼리값에 직접 삽입되는 구조 -> 취약 String data1 = "외부 입력값1" String data2 = "외부 입력값2" String sql = "insert into member values('"+data1+"', '"+data2+"); Prepared Statement 위와는 다르게 직접적으로 변수를 지정하지 않고, ?로 표시하는 바인드 형태의 변수를 사용한다. 또한, 입력값은 setXXX형태로 설정하여 입력을 처리하기 때문에 쿼리구조가 사전 컴파일된다. 즉, 외부의 악의적 입력값에도 쿼리구조는 변경되지 않기 때문에 statement방식에 비하여 안전한다. Pre..
웹 취약점 점검기준 - Broken Access Control 웹 취약점 점검기준 - 3 A4 - Broken Access Control A4, Broken Access control과 관련된 취약점들은 다음과 같다. 유형 설명 파일 다운로드 파라미터 변조를 통해 시스템파일 및 소스코드에 접근하는 것을 의미한다. 파일 업로드 실행 가능한 파일 업로드를 통해 시스템권한을 획득하는 것을 의미한다. URL 파라미터 조작 게시판에서 사용되는 파라미터 조작을 통해 타인의 글을 위/변조하는 것을 의미한다. 자바스크립트 우회 자바스크립트로 구성한 접근제한 메커니즘을 우회하는 것을 의미한다. 1. 파일 다운로드 파라미터를 조작(상위 디렉터리 요청)하여 시스템 관련 파일등에 접근하여 해당 파일을 다운로드하는 공격기법을 의미한다. 이를 위해서 운영체제별 상위 디렉터리를 요청하는 패턴..
웹 취약점 점검기준 - Broken Authentication and Session Management 웹 취약점 점검기준 - 2 A2 - Broken Authentication and Session Management 인증 및 세션관리 취약점 유형으로는 다음과 같은 것들이 대표적인 예시이다. 유형 설명 쿠키 변조 쿠키값을 변조하여 타사용자로 로그인 시도 세션 쿠키 타임아웃 사용자세션 타임아웃 미지정시 사용자의 미활동에도 불구하고 공격자가 해당 PC를 사용할 수 있음. 다중세션 사용 여러대의 PC 혹은 브라우저에서 동일 계정과 암호로 로그인이 되는 것 또한 취약점으로 간주할 수 있다. 이는 공격자가 현재 로그인된 사용자의 자격 정보(쿠키..etc)를 가로채어 로그인 할 수 있는 위협이 존재하기 때문이다. 쿠키 변조 쿠키 변조는 사용자의 쿠키를 가로채어 사용자의 계정 없이도 권한을 획득할 수 있는 기법이며,..
웹 취약점 점검기준 - Injection 웹 취약점 점검기준 - 1 이번에는 웹 취약점을 실제로 분석하기 위해 반드시 알고 있어야 할 점검 기준 및 사례를 공부한다. 우선 OWASP Top 10 2017 항목의 주요 포인트에 대해 살펴보도록 한다. A1 - Injection Injection에 관련된 취약점 유형은 다음과 같다. 유형 설명 SQL Injection 쿼리 등에 SQL 쿼리를 삽입하여 DB 조회,변조 및 삭제 등의 공격을 의미한다. CRLF Injection CRLF(%0d%0a) 패턴 삽입을 통한 악의적 공격을 의미한다. Command Injection 쿼리 등에 운영체제 명령어를 삽입하여, 명령어 실해애 및 시스템 권한 획득 공격을 의미한다. 1. SQL Injection 1) Error based SQL Injection GE..
SQL Injection - 1 SQL Injection -1 1. SQL injection 외부 입력 값이 직접 쿼리에 삽입되는 Statement 방식의 경우, 공격 문자열에 의해 SQL 쿼리가 변조되기 때문에 'SQL Inejction'에 취약할 수 있다. 즉, SQL 쿼리에 상요되는 파라미터가 변경될 떄 마다 전체를 다른 쿼리로 인식하기 때문에 공격 문자열도 함께 인식되는 취약점이 있다. 아래 예시는 'HTTP request header' 필드 값 중 X-Forwarded-For 라는 값에 공격 문자열을 삽입하는 경우이다. cf) X-Forwarded-For란? XFF는 HTTP Header 필드 중 하나로 HTTP Server에 요청한 Client의 IP를 식별하기 위한 표준이다. 이전에 HackCT..
소스코드 점검기준 & 취약점 - 2 소스코드 점검기준 & 취약점 - 2 Incorrect Permission assignment for Critical Resource 특정 리소스(파일, 디렉터리)에 대한 권한을 기본값으로 할당하는 경우 임의의 사용자가 파일 읽기, 쓰기, 실행 등을 통해 수정 및 삭제의 문제를 가질 수 있다. 아래의 경우에는 시스템의 기본 설정 값으로 umask 0값을 사용하는 경우 생성하는 /home 디렉터리의 권한은 777(rwxrwxrwx)로 할당이 된다. 즉, 누구든지 읽고 편집하고 삭제할 수 있기에 취약점을 갖는다. ... function createUserDir($username) { $path = '/home/'.$username; if(!mkdir($path)) { return false; }..
소스코드 점검기준 & 취약점 - 1 소스코드 점검기준 & 취약점 - 1 웹 취약점 및 시큐어코딩의 점검기준은 보안관련 기관에서 제공되는 정보를 바탕으로 국내의 환경에 따라 재정의하여 사용되고 있다. 국내의 경우, CWE에서 제공되는 점검기준 일부를 발췌하여 소프트웨어 보안약점 47개로 재활용되고 있다. 항목 보안 약점 개수 입력 데이터 검증 및 표현 프로그램 입력 값에 대한 부적절한 검증 등으로 인해 발생할 수 있는 보얀약점 15 보안 기능 인증, 접근제어, 권한 관리 등을 부적절하게 구현할 경우 발생할 수 있는 보안약점 16 시간 및 상태 멀티 프로세스 동작환경에서 부적절한 시간 및 상태관리로 발생할 수 있는 보안약점 2 에러 처리 불충분한 에러 처리로 중요 정가 에러 정보에 포함되어 발생할 수 있는 보안약점 3 코드 오류 개발자가 범할..