웹 보안, IDOR, SQL 인젝션, 파일 업로드 공격 방어 전략

by DD
4개월 전
조회수 19

웹 애플리케이션 해킹의 주요 공격 벡터인 IDOR, 파일 업로드, SQL 인젝션 취약점을 소개

TryHackMe의 실습 환경을 활용하여 취약점 공격 방법대응 방안 제시

SQL 인젝션 방지를 위한 데이터 타입 검증Prepared Statement 사용법 설명

정규 표현식(Regular Expression)을 이용한 입력값 검증 방법을 소개하며 보안 코딩의 중요성 강조

IDOR(Insecure Direct Object Reference) 취약점 분석

게시글에서는 IDOR(Insecure Direct Object Reference) 취약점을 설명하며, 웹 애플리케이션이 사용자 요청에 대한 권한 검증(Authentication) 없이 객체에 직접 접근하도록 허용하는 경우 발생한다고 지적한다. 실제 사례로, 사용자 프로필 정보를 접근할 때 URL의 파라미터 조작을 통해 다른 사용자의 정보를 열람하는 공격을 시연한다. 이는 데이터 격리(Data Isolation) 실패로 인한 심각한 정보 유출 위험을 보여준다.

파일 업로드 취약점과 방어 전략

게시글은 파일 업로드 취약점을 악용한 공격을 소개하며, 악성 코드를 포함한 파일을 업로드하여 시스템을 장악하는 방법을 설명한다. 특히, msfvenom을 사용하여 생성된 악성 실행 파일을 업로드하고, Metasploit를 통해 원격 쉘을 획득하는 과정을 보여준다. 이러한 공격을 방지하기 위해, 파일 형식 검증(File Type Validation), 파일 확장자 검증(File Extension Validation), 파일 크기 제한(File Size Limitation), 파일 이름 변경(File Renaming), 그리고 안티 바이러스 솔루션(Anti-Virus Solution)을 활용한 검사 등 다양한 방어 기법을 제시한다.

SQL 인젝션 공격과 방어 기법

게시글은 SQL 인젝션(SQL Injection) 공격을 상세히 설명하며, 공격자가 SQL 쿼리에 악성 코드를 삽입하여 데이터베이스를 조작하는 방법을 보여준다. 특히, `toys.php` 스크립트의 취약점을 분석하고, `id` 파라미터에 악성 SQL 구문을 삽입하여 데이터베이스 정보를 탈취하는 과정을 시연한다. 이러한 공격을 방어하기 위해, 데이터 타입 검증(Data Type Validation)을 통해 입력값을 정수형으로 제한하고, Prepared Statement를 사용하여 SQL 쿼리를 안전하게 처리하는 방법을 제시한다.

정규 표현식(Regular Expression)을 활용한 입력값 검증

게시글은 정규 표현식(Regular Expression)을 사용하여 사용자 입력값을 검증하는 방법을 소개한다. 특히, 사용자 이름, 이메일 주소, URL과 같은 특정 형식의 문자열을 필터링하는 예제를 제시하며, 입력값 검증(Input Validation)의 중요성을 강조한다. 정규 표현식을 통해 악성 스크립트 삽입을 방지하고, 시스템의 보안을 강화할 수 있다. 하지만, 정규 표현식은 복잡하고 오류 발생 가능성이 높으므로, 신중하게 설계하고 테스트해야 한다.

A very short introduction to secure coding - with lab examples on fixing IDOR, insecure file uploading, and SQL injections