본문 바로가기

보안지식/File Upload

파일 업로드 취약점(File upload)

안녕하세요

 

웹 해킹 중에 중요한 파일 업로드 취약점을 정리하겠습니다.

파일 업로드로 서버의 쉘 이용하여 명령을 내릴 수 있는 매우 위험한 해킹입니다.

 

먼저 저희는 쉘을 먼저 알면 좋겠죠?

 

 

-쉘이란?

사용자에게 받은 지시를 하드웨어 지식으로 변경하여 운영체제의 커널과 사용자를 이어줍니다.

 

 

 

간단히 말해 커널과 유저를 연결해 주는 다리역할을 보시면 됩니다.

그리고 리눅스나 윈도우에서 이용하는 cmd인 창이 쉘을 이용하는 환경입니다!

 

 

 

 

-웹 쉘

그리고 웹 쉘이 나오죠. 웹 사이트에 쉘을 여는 공격입니다. 이 쉘 통해 서버에 명령을 수행하는 악성 코드가 담긴 파일 업로드를 많이 사용됩니다!

 

 

 

이 파일 업로드 공격은 서버에 아무 파일을 올릴 수 있을 때 문제가 발생합니다.

간단하게 보시자면 파일 업로드 공격은 php문을 올려서 공격자가 원하는 쉘 명령을 내리는 페이지를 만드는 겁니다.

 

그럼 서버 측은 그 파일이 php문이라 페이지가 열리고 GET으로 명령을 받으면 자기 자신에게 명령을 내리는 거나 마찬가지니 아무 의심 없이 명령을 실행하게 됩니다.

 

 

이번 포스팅에는 이렇게 정리만 하고 다음 포스팅에 실습으로 할게요!

 

1. 파일을 올려서 다운로드 경로를 알아낸다.

2. 파일을 올릴 때 php 형식으로 올린다.

3. 만약 막힌다면 여러 우회 방법을 써서 올려본다.

 

 

 

-우회 방법

 

-- Content-Type
이 헤더는 그저 이 파일은 이런 형식이라고만 설명입니다.

버프 스위트로 변경하면 된다

 

-- 업로드되는 디렉터리 실행 X
상위 디렉터리에 저장을 해본다. ex) ../hello.php

 

-- 블랙리스트 기반 필터링 우회.
php5, js, sh 등등 이용하면 된다.

 

-- 확장자 우회.
ex) test.png.php

 

-- File 시그니쳐
-> 이미지 파일.
-> 맨 뒤에 웹 쉘 코드를 넣으면 된다.

 

 

다음 포스팅에 실습을 하면서 또 설명 드리겠습니다. 감사합니다!

'보안지식 > File Upload' 카테고리의 다른 글

file download 취약점  (0) 2023.06.15
file upload 공격 - 시나리오  (0) 2023.06.05
file upload 공격 - 실습 페이지 만들기  (0) 2023.06.04
File Upload - 실습 2번 풀이  (0) 2023.06.03
File Upload - 실습 1번 풀이  (0) 2023.06.02