개요
파일 업로드 취약점이란 웹에서 서버로 파일을 업로드할 때 시스템 명령어를 실행할 수 있는 악성 스크립트를 업로드 하는 것으로 성공하게 된다면 시스템 권한을 획득하거나 정보 탈취 등의 문제가 발생할 수 있습니다.
악성 스크립트 파일들을 주로 웹쉘이라고도 하며 주로 웹서버에서 명령을 수행하도록 만들어진 스크립트 파일입니다. 그렇다보니 웹서버의 피해 공격 중 상당수에서 웹쉘들이 사용되었다고 하며 이후 클라이언트 공격에도 취약해지는 등 다양한 문제가 야기될 수 있습니다.
https://www.dailysecu.com/news/articleView.html?idxno=126259
비정상 광고 삽입, 그냥 넘어가다간 대형 보안사고로 이어져 - 데일리시큐
웹서버 관리자가 퇴근하면 발생하는 무단광고노출 사고가 빈번하게 발생하고 있다. 피해가 없다고 간과하다간 대형 보안사고로 이어질 수 있다는 것을 명심해야 한다.2021년 상반기 발생한 광고
www.dailysecu.com
공격 방식
1. file parser나 처리 모듈의 취약점들을 악용
- 파일 업로드 시 확장자 제한이 없거나 이미 업로드된 파일에 접근 및 실행이 가능한지
2. Proxy 툴을 이용해 확장자 검사 우회 파일 업로드
- 파일타입 변조 검사를 우회공격을 통해 피해서 접근하는 방식
대표적으로 업로드시 파일의 유형 정보를 알려주는 헤더 중, Content-type 속성을 프록시를 활용해 우회하여 공격가능
3. SQL Injection을 활용한 파일 업로드
- MYSQL의 into outfile() 함수를 활용하여 웹서버에 파일을 생성하거나 MYSQL 저장 프로시저(xp_cmdshell)을 활용하여 echo와 명령어를 통해 특정 파일을 삽입하는 방식
방어 방식
1. 확장 검증
- 정규식을 쉽게 우회하는 이중 확장자 혹은 Null bite 같이 유효성 검사시 우회하는 것들을 막기 위한 적절한 필터가 설정되어 있는지 확인 ( 올바르게 분석되지 않으면 잘못된 결과가 생길 수 있다)
2. 특정 파일 콘텐츠 유효성 검사 라이브러리 사용
- 이미지의 경우 Image rewriting techniques 혹은 MS 문서의 경우 Apache POI를 사용하는 것 등이 도움될 수 있다
3. 파일 저장 위치
- 서비스를 제공하는 애플리케이션과 파일 업로드 및 저장을 처리하는 업무를 분리하고 적절한 제어(승인된 사용자)를 활용하여 처리 ( 규모가 상당히 커지고 관리하기 어려워질 수 있다)
참고자료
https://lyk00331.tistory.com/83
파일 업로드 취약점 | 악성코드 배포 | 보안 방법
파일 업로드(File Upload) 취약점이란? 파일 업로드 기능이 존재하는 웹 사이트의 확장자 필터링이 미흡할 경우, 공격자가 악성 파일을 업로드하여 시스템을 장악할 수 있는 취약점이다. 악성 스크
lyk00331.tistory.com
https://velog.io/@munang/%EC%9B%B9-%EC%89%98
웹 쉘 Web shell
웹쉘이란?웹쉘은 공격자가 원격에서 웹서버에 명령을 수행하도록 올린 스크립트 파일이다. 웹서버의 피해 공격 중 90% 가량이 웹쉘이 발견된다. 웹쉘을 통해 관리자 권한을 획득 후 웹 페이지의
velog.io
https://m.blog.naver.com/nms200299/221727086492
웹해킹 이론 : 파일 업로드 취약점 (웹쉘)
취약점 개요 웹 사이트에서 파일을 업로드할 때, 서버 측의 부주의로(확장자 체크, 바이너리 체크 미흡) 발...
blog.naver.com
https://owin2828.github.io/devlog/2020/01/09/etc-2.html
[보안] 파일 업로드 취약점 - 낮코밤코
1. 파일 업로드 취약점이란 주로 게시판 등에서 파일 업로드 기능을 악용하여 시스템 권한을 획득할 수 있는 취약점을 의미한다. 나처럼 보안에 대한 지식이 얕은 사람은 위의 문장이 생소하게
owin2828.github.io
'TIL > 개념정리' 카테고리의 다른 글
@keyframes - animation 사용법 (0) | 2022.07.14 |
---|---|
styled-components 문법 정리 (0) | 2022.07.13 |
CSRF와 방어 방법이 무엇인지 (0) | 2022.07.09 |
XSS - 크로스 사이트 스크립팅 (0) | 2022.07.05 |
중첩 라우팅 / router hook (0) | 2022.07.04 |