1. 파일 업로드 취약점 공격
- 웹 서비스 첨부 파일, 환경 설정 미흡을 이용하여 악의적인 스크립트가
포함된 파일을 업로드한 후에 웹 서버에 침투하는 공격 - 공격자는 서버 사이드 스크립트(PHP, JSP, .NET 등)를 이용하여 웹쉘(Webshell)을 제작
- 웹쉘(Webshell)은 원격에서 웹 서버를 제어하기 위한 목적으로 만들어졌으나,
지금은 웹쉘 = 악성코드라고 분류하여 안티 바이러스에서 탐지함 - 게시판 첨부 파일, 이력서 첨부 파일, 이미지 첨부 파일, 웹 채팅방 파일 공유 기능 등에서 발생
- 웹쉘을 직접 만들어 사용 할 수도 있으나, 깃허브에서 쉽게 구할 수 있음
2. 파일 업로드 취약점 공격 목적
- 데이터베이스에 직접 공격을 할 수 없기 때문에,
웹 서버를 침투한 후 소스코드 내 데이터베이스 연결 정보를 통해 개인 정보 쿼리(Query) - 웹 서버를 통해 데이터베이스의 2차 공격 진행도 가능함
- 내부 포탈 서버, 로그 서버 등 내부 시스템을 대상으로 포트포워딩(Port Forwarding),
터널링 기법을 통해 공격자와 직접 연결함
3. 파일 업로드 취약점 실습
Beebox - Unrestricted File Upload
Kali에 기본으로 내장하고 있는 웹쉘을 사용한다.
여러 가지가 있지만 그중에 simple-backdoor.php를 업로드해본다.
바로 업로드되고 어디에 업로드되어 있는지 절대 경로도 노출된다.
웹쉘에 주석에 나온 설명대로 URL에 ?cmd=cat+/etc/passwd로 cmd창을 이용해 본다.
백도어가 정상적으로 작동함을 볼 수 있다.
수준을 Medium으로 올리면 아래 확장자들이 블랙리스트로 차단되는 것을 볼 수 있다.
파일 확장자를 php3로 바꾸고 업로드 → 성공
파일 확장자를 pHp로 바꾸고 업로드 → 실패
확장자를 수정하면서 블랙리스트 스크리닝 기법을 우회하여 업로드가 가능한 지 볼 수 있다.
simple-backdoor가 아닌 php-backdoor을 업로드하고 들어가 보면
이러한 UI로 구성된 화면을 볼 수 있다.
cmd 명령 입력도 가능하며, 도구 업로드, 그리고 데이터베이스 쿼리도 입력 가능하다.
기존 가지고 있던 정보로 입력하고 쿼리 질의를 하면
이와 같이 DB 정보들을 확인할 수 있다.
'Security Project' 카테고리의 다른 글
44. 파일 업로드 취약점 대응 (시큐어코딩, 보안설정, 웹쉘차단 솔루션) (0) | 2023.01.23 |
---|---|
43. 파일 업로드 취약점 조건 및 우회 (0) | 2023.01.23 |
41. Error based SQL Injection 실습 (0) | 2023.01.11 |
40. sqlmap 활용한 자동 진단 (0) | 2023.01.10 |
39. SQL Injection 이해 (0) | 2023.01.09 |
댓글