File Upload공격 (web shell)
세상은 왜 나의 정의로움을 몰라줄까?
정말 선의의 마음으로 취약점을 찾는것은 모두 불법이다. (정보통신망 이용촉진 및 정보보호 등에 관한 법률 제 71조)
- 다음 각 호의 어느 하나에 대당하는 자는 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취약점 공격을 위한 조건
- 파일을 업로드 할 수 있는 기능이 제공되어야 함
- 업로드된 파일이 저장되는 웹서버의 경로에 실행권한이 부여되어야 함
해당 웹서버의 경로에 웹브라우져를 통해 접근이 가능하여야 함
- 업로드 파일이 어떤 경로에 저장이 되는지 확인
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.