아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
레딧 favicon레딧

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

by DD
2026-01-09
6개월 전
조회수 31

웹 애플리케이션 해킹의 주요 공격 벡터인 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
중급
Security
SQL
PHP
JavaScript
Backend
Frontend
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

Vanilla PHP & JavaScript로 실시간 거래 플랫폼 구축, 프레임워크 없이도 가능!

데브투 로고

40년 기술 변천사, 추억 속으로

랍스타즈 로고

GitHub Copilot과 함께 3개월 만에 전자상거래 플랫폼 구축!

데브투 로고

워드프레스 보안, M-Dash로 해결!

파이어쉽 로고

파이프 연산자, 코드 가독성을 높이는 새로운 방법?

레딧 로고

소프트웨어 혁신의 역사, 어떤 기술이 세상을 바꿨을까?

랍스타즈 로고
레딧 favicon레딧
중급
Security
SQL
PHP
JavaScript
Backend
Frontend

관련 추천 글

Vanilla PHP & JavaScript로 실시간 거래 플랫폼 구축, 프레임워크 없이도 가능!

데브투 로고

40년 기술 변천사, 추억 속으로

랍스타즈 로고

GitHub Copilot과 함께 3개월 만에 전자상거래 플랫폼 구축!

데브투 로고