티스토리 뷰
실습 환경 : 그누보드 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