파일 업로드 보안 테스트 파일 생성 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인프라/DevOps/보안
대상자
- 보안 테스터, 개발자, 펜테스터
- 중급~고급 난이도 (파일 타입, 마직바이트, exiftool 등 도구 사용 기술 필요)
핵심 요약
- EICAR 파일은 악성코드로 잘못 인식되지만 실제 해가 없는 보안 테스트용 파일로,
.txt
,.xlsx
,.docx
등 다양한 형식으로 생성 가능 - PHP 쉘 파일은
코드를 사용해 생성되며,
.png
,.jpeg
,.pdf
등 다른 파일 형식으로 마직바이트를 조작해 탐지 회피 가능 - 마직바이트(매직 바이트)는 파일 식별을 위해 사용되며,
FF D8 FF DB
(JPEG),25 50 44 46 2D
(PDF) 등으로 파일 형식을 변경 가능 - exiftool을 사용해 PNG 이미지의 메타데이터에 PHP 쉘 코드를 삽입해 파일 탐지 회피 가능
섹션별 세부 요약
1. 일반 파일 생성
.xlsx
,.pdf
,.png
,.txt
,.docx
등은 각각의 프로그램(Excel, Word 등)을 사용해 기본 텍스트 및 계산식을 삽입- PDF는 Word 문서에서 내보내기하여 생성
.png
파일은 간단한 이미지 파일 사용
2. EICAR 파일 생성
- EICAR 파일은
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
문자열로 생성 - 주의: EICAR 파일은 악성코드로 인식될 수 있으므로 VM 환경 또는 안티바이러스 스캔 제외 폴더에서 생성 권장
3. PHP 쉘 파일 생성
echo '' >> php-shell.php
명령어로 생성.png
,.jpeg
,.pdf
등 다른 파일 형식으로 마직바이트 조작하여 생성 가능- 예시:
echo '' >> regular-png-file.png && mv regular-png-file.png php-shell-added-to-end-png-magic-bytes.php
4. 마직바이트 조작
FF D8 FF DB
(JPEG),25 50 44 46 2D
(PDF) 등으로 파일 형식을 변경hexedit
도구로 파일의 시작 부분을 수정,xxd
로 변경 확인 가능
5. exiftool 활용
exiftool -comment='' png-file-with-php-payload-in-comment-metadata.png
명령어로 PNG 메타데이터에 PHP 쉘 삽입.png
파일을.php
확장자로 리네임해 마직바이트는 PNG, 파일명은 PHP로 설정 가능
결론
- EICAR 파일은 VM 환경에서만 생성하고, 마직바이트 조작 시 파일 내용이 손상되지 않도록 주의
- exiftool을 사용해 메타데이터에 쉘 코드 삽입 시, 파일 형식과 확장자가 일치하도록 설정해야 함
- 테스트 환경에 맞게 PHP 쉘의 payload를 수정해 사용해야 함