본문 바로가기

웹 해킹/파일 취약점

파일 업로드 취약점 대응방안

 

파일 업로드 취약점 공격이란?

:  웹 페이지의 파일 업로드 기능을 이용해서 공격자가 원하는 임의의 파일을 업로드하는 공격

 

 

파일 업로드에 대한 자세한 내용은 아래 포스팅에서!

https://studysteadily.tistory.com/41

 

파일 업로드 취약점 공격이란? (정의, 발생 원인, 발생 위치, 공격 핵심, 우회 방법 )

파일 업로드 취약점 공격이란? : 웹 페이지의 파일 업로드 기능을 이용해서 공격자가 원하는 임의의 파일을 업로드하는 공격 공격자는 서버 측 스크립트(php, asp, jsp 등)를 이용해서 웹쉘을 제작

studysteadily.tistory.com

 

 


 

파일 업로드 취약점 대응방안

파일 업로드 취약점에 대응하기 위해서는 근본적으로 파일이 실행되지 못하게 해야한다. 

 

1.  파일명 난독화 (미흡)

저장된 파일의 경로를 감추는 전략으로 다운로드 페이지를 따로 만들어서

http://hackerr.com/download.php?fileID=10  이런 식으로 10번 게시글의 파일을 가져와서 다운로드 하게끔 구현한다.

 

하지만 SQL Injection이나 다른 취약점으로 파일 경로를 알아낼 수 있고,

웹쉘이 업로드되고 실행될 수 있는 여지가 있으므로 추천하지 않는 대응 방법이다.

 

 

2.  확장자 화이트리스트 기반 필터링 (미흡)

허용되는 확장자만 업로드되게끔 한다.

하지만 .php%00.png 등 확장자 우회로 웹쉘을 업로드 할 수 있으니 이 방식 또한 추천하지 않는다.

 

 

3. DB에 파일을 저장

가장 근본적인 방법이다.

파일 자체를 DB에 바이너리로 통째로 저장한다. (BLOB / CLOB)

웹 서버가 아니라 DB 테이블 안에 저장하면 파일이 실행될 여지가 없어서 안전한 대응 방안이다.

 

 

4. NAS 서버 이용

DB 외에 파일 저장 서버를 따로 두고 파일을 저장한다.

이 방법도 파일이 실행될 여지가 없기 때문에 안전하다.