klaus

[week_9] 파일 업로드(File Upload) 취약점 본문

수업/모의해킹

[week_9] 파일 업로드(File Upload) 취약점

klus! 2022. 12. 14. 12:12

0. 들어가기

오버로딩 : 같은 이름의 함수(메서드)를 여러 개 정의하고 매개변수의 유형과 개수를 다르게 설정하여 다양한 유형의 호출 응답을 가질 수 있도록 하는 기술 (== 새로운 메서드 정의)

오버라이딩 : 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용하는 기술(==상속받은 메서드의 내용만 변경)

참고 : 오버로드 및 오버로딩

1. 파일 업로드 취약점

공격자가 웹사이트의 파일 업로드 기능을 악용하여 인가받지 않은 파일을 서버에 임의로 업로드할 수 있는 취약점

 

[-] 발생 가능한 위치

게시판, 서류제출, 프로필 사진 및 업데이트

==> 파일을 선택하고 올릴 수 있는 모든 곳에서 발생 가능

 

[+] 공격 시나리오

1. 웹 서버에 실행 가능한 파일 업로드(웹 셀)

2. deface 공격

<?php echo system($_GET['cmd']);?>

 

링크 경로 확인 방법

1) 마우스 오른쪽 클릭하여 주소 확인

2) 마우스를 업로드한 파일 위에 올려놓을 경우 하단에 표기됨(일부 웹 브라우저에서만 확인 가능)

3) 프로그램(Burp Suote)을 활용하여 경로 확인 가능

4) 크롬의 경우 개발자 도구(option+command+i)

 

 

2. 우회 기법

1) 파일 검증 우회

Content type을 확인해서 확장자 변경

2) 확장자 검증

개발자들이 막아놓은 파일 확장자를 우회!

구글에서 web shell (언어)를 검색

PHp처럼 대소문자 구분도 가능

.php%00.jpg와 같은 특수문자를 사용

(%00,%zz)는 종단 문자(\0,NULL)이며, 파일 서버가 리눅스 시스템일 경우 우회하는 기법으로 사용된다고 합니다.

파일 업로드시 서버에서 확장자 체크를 할 때 종료문자로 인식하여 뒷부분을 날려버림!

즉, 주석처리와 비슷한 방법

참고

 

3) 서버측 파일 오버라이드

.htaccess활용

.htaccess이란?

먼저 , .이 있다는 것은 시스템파일 또는 숨김파일이라고 할 수있다.htaccess는 hypertext acces의 약자

참고

 

4) 파일 시그니쳐

파일마다 헤더 값이 있는데 헥스에디터를 사용하여 확인가능

5) 파일 업로드를 따른 매서드를 이용

 

6. 개발자의 실수 + 클라이언트 측에서 검증할 경우 발생!!!.

 

'수업 > 모의해킹' 카테고리의 다른 글

[week_10] File Include VS File Download 취약점  (0) 2022.12.17
[week_8] CSRF - 2 (feat. 문제풀이)  (0) 2022.12.12
[week_7] CSRF-1  (0) 2022.12.11
[week_6] XSS  (0) 2022.11.25
[week_5] ClientSide : XSS (Cross Site Scripting)  (0) 2022.11.13
Comments