1. 파일 다운로드 취약점
설명
파일 다운로드 취약점은 웹 애플리케이션이 사용자에게 파일을 다운로드할 때, 공격자가 악성 파일을 다운로드할 수 있는 취약점이다. 이는 파일 다운로드 기능이 적절히 보호되지 않거나 사용자의 입력을 제대로 검증하지 않을 경우 발생한다. 예를 들어, 공격자가 URL 매개변수를 조작하여 서버에서 중요한 시스템 파일을 다운로드할 수 있는 경우다.
취약점 실습
공격자는 파일 다운로드 기능의 URL 매개변수를 조작하여 서버의 민감한 파일에 접근할 수 있다.
예제 (리눅스 시스템)
http://example.com/download?file=../../../../etc/passwd
예제 (윈도우 시스템)
http://example.com/download?file=../../../../winnt/win.ini
이러한 요청을 통해 시스템의 중요 파일을 다운로드할 수 있다.
작동 원리
- 상대 경로(../)를 이용해 상위 디렉터리로 이동한 후, 민감한 파일에 접근한다.
- 서버가 사용자의 입력값을 제대로 검증하지 않으면, 공격자가 원하지 않는 경로를 지정하여 파일을 다운로드할 수 있다.
- 일부 경우, URL 인코딩(%2e%2e%2f)을 활용하여 필터링을 우회할 수도 있다.
- https://cafe.naver.com/crehacktive/203(해당 블로그에 자세히 설명 되어 있다)

대응 방안
- 파일 경로 검증: 파일 다운로드 시 사용자로부터 입력된 경로를 그대로 사용하지 않고, 파일 경로를 안전하게 처리한다. 경로를 정해진 범위 내로 제한한다.
- 파일 확장자 제한: 다운로드할 수 있는 파일 형식을 제한하여 악성 파일을 다운로드할 수 없도록 합니다.
- 파일 다운로드 로그: 파일 다운로드 시 로그를 기록하여 악의적인 접근을 추적할 수 있도록 한다.
2. 파일 업로드 취약점
설명
파일 업로드 취약점은 공격자가 악성 파일을 서버에 업로드하여 시스템을 공격하는 취약점이다. 예를 들어, 서버에서 업로드된 파일을 실행하거나 특정 경로에 저장하면서 보안 취약점이 발생할 수 있다.

취약점 캡처

- 공격자는 악성 스크립트를 포함한 파일을 업로드할 수 있다. 예를 들어, .php, .exe와 같은 파일을 업로드하여 웹 서버에서 실행하게 할 수 있다.
- 이를 통해 시스템에 악성 코드가 실행되거나, 데이터가 유출될 수 있다.
- 사이트 검색해 본 결과 게시판 업로드 창에 제한 없이 아무 파일이나 올릴 수 있게 보안이 미흡한 웹 사이트들도 종종 보였다.
대응 방안
- 파일 형식 검증: 업로드 가능한 파일의 확장자 및 MIME 타입을 엄격히 검증이 필요하다.
- 업로드 경로 제한: 업로드된 파일이 실행되지 않도록 서버 측에서 파일 저장 위치를 제한하고, 업로드된 파일에 대한 실행 권한을 제거한다.
- 파일 크기 제한: 업로드할 수 있는 파일의 크기를 제한하여 서비스 거부 공격(DoS)을 방지한다.
- 파일 이름 변경: 파일 이름에 특수문자나 경로 조작을 방지하기 위해 파일 이름을 변경하여 저장한다.
3. 소스코드 내 중요정보 노출 취약점
설명
소스코드 내 중요정보 노출 취약점은 소스 코드 파일에 중요한 정보(예: DB 비밀번호, API 키 등)가 포함되어 있어 공격자가 이를 쉽게 접근하거나 추출할 수 있는 취약점이다. 개발자 실수로 코드나 설정 파일에 민감한 정보를 포함시킨 경우 발생한다.
취약점 캡처
- 예를 들어, GitHub와 같은 저장소에 비밀번호가 포함된 코드를 푸시한 경우 공격자는 해당 코드를 쉽게 검색하여 비밀번호를 얻을 수 있다.
- 코드 내에 API 키나 데이터베이스 자격 증명이 노출된 경우 이를 추출할 수 있다.
- 브라우저의 개발자 도구를 활용해서 html 내용을 본 결과 주석으로 활성화 되지 않은 경로를 추출했고 주소창에 url을 쳐 보니 숨겨진 페이지 창을 볼 수 있었다.


대응 방안
- 민감 정보 외부 저장: 비밀번호와 같은 민감한 정보는 코드에 하드코딩하지 않고, 환경 변수나 안전한 설정 파일에 저장한다.
- Gitignore 파일 사용: Git과 같은 버전 관리 시스템을 사용할 때 민감한 정보를 포함한 파일을 .gitignore에 추가하여 공개되지 않도록 한다.
- 암호화: 민감 정보를 저장할 때 반드시 암호화를 적용하여, 만약 정보가 유출되더라도 안전하게 보호한다.
4. 공개용 웹 게시판 취약점
설명
공개용 웹 게시판 취약점은 유지보수 부족으로 인해 발생하며, 공격자는 알려진 보안 취약점을 악용하여 웹사이트를 변조하거나, 민감한 정보를 유출할 수 있다. 대표적인 취약점으로는 파일 업로드 취약점, SQL 인젝션, XSS(크로스 사이트 스크립팅), 권한 관리 취약점 등이 있다.
취약점 캡처
- 그누보드가 사용된 웹사이트를 확인할 수 있었다.
- inurl:board intitle:게시판, inurl:bbs intitle:게시판 등을 활용하여 특정 게시판이 사용된 웹사이트를 찾을 수 있다.
- 파일 업로드 취약점: 공격자가 악성 PHP 파일을 업로드하여 원격 명령을 실행할 수 있음.
- SQL 인젝션: 데이터베이스 질의문을 변조하여 관리자 계정을 탈취하거나 정보를 유출할 수 있음.
- XSS(크로스 사이트 스크립팅): 악성 스크립트를 삽입하여 사용자 세션을 가로채거나 피싱 공격을 수행할 수 있음.
- 권한 관리 취약점: 게시판 관리자 페이지가 보호되지 않아 비인가 사용자가 접근할 수 있음.


대응 방안
- 최신 버전 유지: 보안 패치 및 업데이트를 정기적으로 수행한다.
- 보안 설정 강화: 업로드 파일 확장자 제한, SQL 인젝션 필터링 적용, 관리자 페이지 접근 제한 설정을 적용한다.
- 정기 점검 및 모니터링: 취약점 스캐닝을 수행하고, 웹 방화벽(WAF)을 적용하여 실시간 탐지 및 대응을 강화한다.
'Security > CERT' 카테고리의 다른 글
웹 보안 취약점(2) (0) | 2025.03.20 |
---|---|
웹 보안 취약점(1) (0) | 2025.03.15 |
Shodan을 통한 IoT 기기 검색과 특징 (0) | 2025.03.01 |
사물인터넷(IoT)과 Shodan (0) | 2025.02.19 |
구글해킹을 통한 취약 • 노출정보 검색 (0) | 2025.02.15 |