티스토리 뷰

실습 환경 : 그누보드 5.2.9.2

 

실습 환경은 5.2.9.8 버전에서 패치된 pht 파일업로드 취약점을 실습해보기 위해 그누보드 5.2.9.2 버전을 선택했습니다.

실습 환경은 간단하게 게시판만 구축했습니다 ^^!

파일업로드 실습을 위해 확인하던 중 문제점이 2개 발생했습니다.

 

1. 업로드 된 파일의 파일명이 랜덤값으로 변경되어서 저장됨

2. 업로드 경로의 디렉토리 리스팅이 허용되어 있지 않음

 

실습을 위해 1번 파일명이 랜덤값으로 저장되는 부분을 주석처리 해주고 파일명이 원본으로 저장되도록 설정했습니다.

 

/var/www/html/gnuboard/bbs/write_update.php

/* $upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.replace_filename($filename); */

위의 부분 주석

 

$upload[$i]['file'] = urlencode($filename);

코드 추가 

 

이렇게 변경해주면 업로드 되는 파일의 파일명이 변경없이 그대로 올라갑니다.

 

이제 실습 환경은 구축 완료되었고 본 실습을 들어가보도록 하겠습니다!

 

<실습>

 

 

게시판에 정상적인 이미지 파일을 업로드 해줍니다.

 

 

 

이미지 파일의 경로 확인을 통해 업로드 된 파일이 저장되는 디렉토리의 경로를 확인합니다.

 

 

 

다음으로는 준비해둔 pht 확장자로 만들어진 웹 쉘 파일을 업로드 해줍니다.

 

 

 

확인해둔 경로 뒤의 파일명을 웹쉘 파일명인 attack.pht로 변경해주면 위와 같이 쉘이 실행되는 것을 알 수 있습니다.

 

 

 

dir 명령어를 입력해서 현재 디렉토리 안의 내용을 확인해봅니다.

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

Brute Force 공격 & 사전 대입  (0) 2020.08.12
LFI & RFI 취약점  (0) 2019.07.29
디렉토리 노출 취약점 (Directory Listing)  (0) 2019.07.24
파일 다운로드 취약점  (0) 2019.07.24
File Upload 공격, 웹쉘  (0) 2019.07.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday