Notice
Recent Posts
Recent Comments
Link
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

Maru's

FileUpload와 FileDownload 본문

WEB

FileUpload와 FileDownload

Maru.Maru 2017. 7. 10. 23:50

File Upload


웹 사이트에서 자료실과 같은 사용자들의 업로드가 가능한 웹 애플리케이션으로 서버 사이드 언어로 작성된 Webshell 업로드를 통한 서버 권한 탈취 할 수 있다.

파일 업로드 취약점은 업로드 파일의 대한 규제가 없을 때 발생하며, 이를 악용한 해커에 의해서 악성 스크립트 코드가 수행 될 수 있으며 .php .jsp .asp 등의 확장자를 가진 스크립트 파일을 업로드 한 후 게시판에서 원격으로 서버의 시스템 명령어를 제어 가능하다.


[그림 1]: 파일 업로드 과정


취약점 체크


  1) 파일 업로드 어플리케이션 사용 유무를 확인한다.

  2) .asp, aspx, jsp, php 와 같은 확장자로 파일 업로드가 가능한지 확인한다.

  3) 클라이언트 검증 인지 서버 검증인지 확인한다.


웹쉘 (WEB SHELL) 확장자 우회방법


  ASP => .cer .cdx .asa

  PHP => .php3 .html .htm

  JSP  => .war


대응책으로는 파일 업로드 시 확장자 체크를 하여 필터링 해주는 화이트 리스트 방식을 적용하거나, 파일 저장을 웹서버가 아닌 데이터베이스에 저장하도록 변경시켜 줄 수 있다. 파일 이름을 알 수 없게 저장시 난수화 하는 방법도 가능하다.(파일 이름이 난수화 된다면 파일을 올리더라도 파일 이름이 변경되어 실행 할 수 가없다.)



File Download


파일 다운로드 취약점은 보안 코드를 작성하지 않아 다운로드 대상 파일이 위치한 디렉토리를 벗어나 다른 경로에 있는 파일 까지 접근 가능한 것을 말한다.


파일 다운로드 취약점은 파일 위치에 대한 보안 코드가 작성되어 있지 않고 노출된다면 그 위치로 접근하여 다른 파일에 접근이 가능하다.

웹 페이지에 파일 다운로드 기능이 없거나 다운로드 스크립트를 통한 파일 다운로드 방식이 아닐 경우 , 파일 다운로드 취약점은 조재하지 않는다.

[그림 2]: 파일 다운로드 우회기법


이 처럼 파일 다운로드 취약점은 파일 위치를 우회하기 때문에 "../"과 같은 문자로 이전 단계로 이동하여 중요한 파일을 (리눅스에서는 passwd파일) 탈취 할 수 있다.


대응 방안으로는 서버에서 사용하는 언어의 확장자로 변경하여 클라이언트가 열람 할 수 없게 하거나. "../"과 같은 문자를 필터링 하는 화이트리스트 방법 등이 있다.




 

'WEB' 카테고리의 다른 글

XSS와 CSRF  (0) 2017.07.10