Post

File Upload공격 (web shell)

세상은 왜 나의 정의로움을 몰라줄까?

정말 선의의 마음으로 취약점을 찾는것은 모두 불법이다. (정보통신망 이용촉진 및 정보보호 등에 관한 법률 제 71조)

  1. 다음 각 호의 어느 하나에 대당하는 자는 5년 이하의 징역 또는 5천만원 이하의 벌금에 처한다.
    • 제 48조 제1항으 위반하여 정보통신망에 침입한 자
    • 제 48조 제3항을 위반하여 정보통신망에 장애가 발생하게 한 자

위법성의 조각사유

위법성이 있지만 그럴 수 밖에 없는 상황이였기에 봐주겠다는 것.

  • 정당방위
  • 긴급피난
  • 자구행위
  • 피해자의 승낙
  • 정당행위(계약에 의한 행위)

VMware Network Setting

survnet IP 10.10.10.0

침해사고 경로 (서버)

File Upload 공격

  • 웹 어플리케이션(게시판 등) 자체의 취약점을 이용한 해킹 기법
  • 웹 어플리케이션 개발에 사용된 언어와 동일한 언어로 개발된 파일 업로드
  • 웹브라우져를 통한 시스템 명령어 실행 권한(웹서버 권한)을 획득
  • 해킹 피해를 입은 웹 서버의 대부분에서 웹쉘 발견

발생 가능한 피해

  • 시스템 명령어 실행, 주요 정보 유출, 악성코드 유포, 공격 경유지 악용

OS부팅 -> Kernel -> Initd(root -> ···각종 프로세스들 실행) => System

web = Homepage

  • Apache
  • Ngnix

Apache

Apache -> root x 1(부모 프로세스), nobody x 5(자식 프로세스) (접속자들이 늘어날수록 프로세스가 하나씩 추가가 되면서 nobody권한이 1나씩 추가된다.) 웹쉘을 획득하면 nobody권한을 얻는다

Process, Thread. 차이점

Process하위개념 Thread Process: 운영체제로부터 독립적인 메모리 공간을 할당받는다. Thread: 자신만의 독립적인 메모리를 할당받는것이 아닌 Thread끼리 메모리공간을 공유함.

Shell

‘동시 통역사?’ - 사람과 OS간의 대화를 통역해주는 역할

악성으로 사용되기 힘든 확장자

  • txt
  • jpg
  • gif
  • nwp
  • docx
  • ···

악성으로 활용될 수 있는 확장자

  • php
  • asp
  • jsp
  • exe
  • html

File Upload취약점 공격을 위한 조건

  1. 파일을 업로드 할 수 있는 기능이 제공되어야 함
  2. 업로드된 파일이 저장되는 웹서버의 경로에 실행권한이 부여되어야 함
  3. 해당 웹서버의 경로에 웹브라우져를 통해 접근이 가능하여야 함

  4. 업로드 파일이 어떤 경로에 저장이 되는지 확인

Blask List => 업로드를 할 수 없는 확장자를 정해놓은 것 White List => 업로드를 할 수 있는 확장자를 정해놓은 것

.php.kr

apache => .kr .cn .jp .us(php를 실행시킬 수 있는 확장자로 취급)

현재 쇼핑몰은 Black List형식이며 확장자를 검사할 때 뒤에서부터 검사를 해 php.kr은 php파일로 인식하지 않지만 kr.php는 php파일로 업로드를 막는다.

This post is licensed under CC BY 4.0 by the author.