고려사항
고려사항 | 내용 |
파일크기 | |
파일명 길이 |
windows 기준 260자 너무 길 경우, SQL Injection / XSS 공격에 취약. |
파일 확장자 |
악성 스크립트(.asp .jsp .php) or 실행파일(exe)를 업로드하여 시스템 구조 확인/시스템 명령 실행이 가능. 우회 방법으로는 test.asp.kr / test.asp. / test.aSp [대응방법] 파일명은 전체 검사를 원칙으로 함. 확장자를 분리할 경우 ( . ) 조건문자 마지막 확장자를 검사한다. whitelist를 관리하여 허용하는 확장자 외 모두 차단한다. blacklist로 관리할 경우 확장자명을 소문자로 치환후 검사한다. |
파일명 |
보안 취약점 XSS Filename injection SQL Filename injection [대응방법] 영문/한글/숫자 가능 특수문자 제한 : 특수문자는 파일업로드 시 보안적인 이슈로 보수적으로 잡기위해 : whitelist로 "-", "_" 만 사용 가능하도록 함. : windows기준( < > \ | : * ? " ) |
파일명 중복 업로드 시 |
영문 대소문자 구분없이 중복체크.(ex) Test.jpg = test.jpg) [중복 시 대응] 복사파일생성 : 파일명에 index 추가.(ex) test.jsp 존재 시, test(1).jsp) override : 기존 파일 삭제 후 저장. overwrite : 기존 파일 존재할 경우 덮어쓰기. |
히스토리 관리여부 |
관리하지 않음. |
특수문자 제한이유
- ";(세미콜론)" : 윈도우에서 세미콜론은 종단문자로써 확장자명을 우회하여 실행가능.(ex)test.asp;.jpg)
- "<, >, /" : XSS 공격가능. (ex) <script>alert("테스트");</script>.jpg)
- "*, ?" : SQL Injection 공격가능. (ex) SELECT * FROM TALBE WHERE ID = ?.jpg )
- "%" : 리눅스에서 %00, %zz는 종단문자로써 확장자명을 우회하여 실행가능.(ex)test.jsp%00.jpg)
'web' 카테고리의 다른 글
Was 앞단에 Web 서버를 두는 이유 (0) | 2020.03.06 |
---|---|
Http Header 분석하기 (1) | 2020.02.28 |
웹서비스는 왜 443, 80포트를 기본으로 사용하는가 (0) | 2020.02.27 |
[웹 개발 프로세스] 개 요 (0) | 2020.02.10 |
REST API (0) | 2020.01.26 |