웹 공부

File Upload/Download 취약점

insetto:) 2023. 10. 1. 19:46
반응형

File Upload/Download 취약점

개념

  • 웹 서비스 첨부파일, 환경설정 미흡을 이용하여 악의적인 스크립트가 포함된 파일을 업로드 한 후에 웹 서버에 침투를 하는 공격 (첨부, 경로 파악, 공격 모두 가능해야함)
  • 공격자는 서버 사이드 스크립트(php, jsp, .net 등)을 이용해서 웹쉘을 제작한다.
  • 웹쉘은 원격에서 웹 서버를 제어하기 위해 만들어졌지만 지금은 웹쉘=악성코드로 분류해서 안티 바이러스에서 탐지한다.
  • 게시판 첨부파일, 이력서 첨부파일, 이미지 첨부파일, 웹 채팅방 파일 공유 기능 등에서 발생

공격 조건

  • 파일 업로드가 가능해야 함
  • 파일이 업로드된 디렉터리의 경로를 알아야 함
  • 파일이 업로드된 디렉터리의 실행 권한이 있어야 함

문제

드림핵 file-download-1 문제

일단 코드에서 유의할 점을 찾아보자.

우선 위 코드는 ..을 필터링 하여 입력창에서 ..을 입력하는 순간 bad characters라는 문구를 띄워버린다는 의미이다.

그렇다면 직접 입력해볼까?

역시나 오류 메시지를 띄우게 된다.

 

그럼 일단 아무 이름으로 저장해보면 이렇게 된다.

..만 적지 않으면 일단 저장은 된다. 여기서 flag라는 메모를 들어가보면

위에 있는 url을 잘 살펴봐야한다. 왜냐하면 name = flag로 저장된 걸로 보아, name의 파라미터 안에 flag라는 값이 그대로 저장되었기 때문이다. 이렇게 된다면 url에 ../flag.py를 입력하여 필터링을 무시할 수 있게 된다.

WebShell

개념

  • 웹셸은 공격자가 원격에서 웹서버에 명령을 수행하도록 하는 스크립트
    • 셸(shell)은 사용자에게 받은 지시를 해석하여 하드웨어 지시어로 바꿈으로써 운영체제의 커널과 사용자 사이를 이어주는 것이다.
  • 웹셸 공격은 일반적인 웹 사이트 사용자들과 동일한 웹 서비스 포트(http(80, 8080), https(443))를 통해 이루어지기 때문에 탐지가 매우 어려워, 해킹 사고가 터지지 않는 이상 인지하기가 어렵다.
  • 웹셸을 통해 관리자 권한을 휙득 후 웹 페이지의 소스코드를 열람하거나, 서버 내의 자료를 유출, 백도어 프로그램 설치 등의 다양한 공격이 가능하다.
반응형

'웹 공부' 카테고리의 다른 글

URI/URL  (0) 2023.10.12
Domain/DNS & Robots.txt  (0) 2023.10.12
Path Traversal  (0) 2023.10.01
IDOR&Command Injection&Directory Listing  (0) 2023.09.24
HTTP request/response & Get/Post  (0) 2023.09.19