File Upload
what : 공격자가 임의의 파일을 업로드 할 수 있는 공격
→ 웹 쉘
→ 서버 장악
<?php echo system($_GET['cmd']); ?>
** Point
1. 우리가 웹 서버에서 실행할 수 있는 파일
2. 실행할 수 있어야 한다.
→ 업로드 된 파일의 위치를 알아야 한다.
파일의 위치 아는 법
1. 내가 올린 파일을 다운로드 받아본다. 우클릭 이미지 경로 복사
2. 개발자 도구
3. Burp Suite 확인(img 옵션 체크!)
다운로드 할 수 없다면
1. SQL Injection
2. HTML 소스코드 주석 살펴보기
web shell로 무엇을 하나?
** 소스코드 탈취
→ 취약점 찾기 위해서도 있지만 DB를 탈취하기 위해서
DB 계정 정보가 소스코드 안에 있다.
** Reverse Shell
Bypass Trick
1. Content-Type을 바꾼다.
2. 업로드 되는 디렉토리 실행 X → 다른 디렉토리에 올린다.
3. 블랙 리스트 기반 필터링 우회
php → php5
jsp → jspx
4. 확장자 우회
test.jpg.php → 확장자를 두 개를 쓴다.
test.php%00.png
test.php.png → X
→ 설정 파일을 건든다.
5. File 시그니처
→ 이미지 파일.
→ 맨 뒤에 웹쉘 코드를 넣는다.
PUT Method
webDAV 활성화 되있으면 가능
모의해킹 시 주의해야할 점
게시판 글 쓸때, 수정기능 이용하기.
Repeater 기능 이용하기. logger에 history 남아있다.
<script>console.log();</script>
파일 업로드
(1) 실제 웹 쉘을 일단 올리지 않는다.
<?php
echo "Script Run";
날짜 출력.
?>
→ 담당자에게 연락.
(2) 업로드 테스트 파일 내역.
- upload/test.html
- upload/test.php
**** web shell
web shell 직접 만들어서 해야 안전하다.
→ 다른 사람의 코드를 쓰면 어떤 코드가 있는지 모르기 때문이다.
'Security > Study' 카테고리의 다른 글
| [9주차] CSRF / SSRF / File Upload (0) | 2023.06.02 |
|---|---|
| [8주차] CSRF(Cross Site Request Forgery) (0) | 2023.05.23 |
| [7주차] Reflected XSS / DOM Based XSS (0) | 2023.05.12 |
| [6주차] Stored XSS (0) | 2023.05.04 |
| [5주차] Blind SQL Injection / 대응방안 (0) | 2023.04.28 |