File Upload
File Upload : 공격자가 원하는 임의의 파일을 올릴 수 있는 공격
파일업로드 공격으로 웹 서버의 자원 고갈 공격이 가능하고,
웹 셸을 올려서 서버 시스템의 명령어로 코드를 탈취 할수도있고, 웹 서버를 장악할수도 있다
Web Shell : 웹 페이지에서 공격할 웹서버 의 시스템 명령어를 실행할 수 있는 코드(프로그램)
(WEB + Shell)
파일 업로드 취약점 찾기
파일 업로드 취약점을 찾기 위해서는
[1] 웹 서버에서 실행할 수 있는 파일이 웹 페이지에 올라가야한다
[2] 올라간 파일이 실행 할 수 있어야한다
[3] 파일을 실행하기 위해서 파일이 업로드된 경로를 알아내야한다
[3-1] 올린 파일을 다운로드를 하면서 프록시툴로 경로를 알아낸다
[3-2] 올린 파일 다운로드 버튼 or 이미지를 오른쪽 클릭 주소 복사를 해서 경로를 알아낸다
공격 순서
[1] 공격 취약점 찾기
[1-1] 이미지 파일, 일반적인 파일을 올려서 업로드 되는 경로 찾기
[1-2] 웹 쉘을 올려서 취약점 확인
[2] 리버스 쉘을 사용하여 서버 장악
[2-1] netcat과 리버스 쉘코드를 이용하여 리버스 쉘을 획득한다
※ 리버스 쉘 : 공격자가 포트를 열어서 서버가 공격자 포트에 접속하게 만들어 생성하는 쉘
[2-2] 리버스 쉘을 이용하여 공격자의 권한을 상승 시킨다
[3] 중요한 정보 탈취
[4] 백도어 만들기
공격 우회
[1] Content-Type 이 있는 경우
[1-1] 프록시 툴의 기능 중 Intercept 기능을 이용하여 content-Type 값을 변경시킨다
ex) content-Type: text/php -> content-Type: image/png
[2] 업로드 되는 디렉토리안에서 실행이 되지 않는 경우
[2-1] 디렉토리 트레버셜(Directory Traversal) 이용하여 파일이름을 변경해서 업로드한다
※Directory Traversal : 디렉토리 접근 공격, 상위 디렉토리로 접근(../)
ex) test.php -> ../test.php
[3] 블랙리스트 기반 필터링이 되어 있는 경우
[3-1] 대소문자를 번갈아가며 파일명을 수정한다 ex) test.PhP , test.pHp
[3-2] 파일명을 중복해서 수정한다 ex) test.phphpp
[3-3] 확장자명을 변경한다
ex) 서버가 php로 구성될 경우 -> php3, php5, php4, phtml
ex) 서버가 jsp로 구성될 경우 -> jspx, jsw, jsv
[4] 확장자가 우회되어 있는 경우
[4-1] 이중 확장자로 변경한다
ex) test.png.php, test.jpeg.php
[4-2] 확장자에 널값을 사용하여 변경한다
ex) test.php.%00.png
[5] FIle 시그니쳐가 있는 경우
[5-1] 프록시 툴을 이용하여 이미지 파일 코드 중 마지막에 웹 쉘 코드를 삽입한다
[6] PUT Method(가장 조심!!!!)
[6-1] webDAV로 되어 있을 경우 PUT /경로/ ... 파라미터에 파일 명 넣기
★ 파일 경로를 잘못입력하면 웹서버에 문제가 생긴다(웹페이지에 덮어져서 날라갈 수 있다)
[아이콘 저작권]
디지털 아이콘 제작자: Muhammad_Usman - Flaticon
Ui 아이콘 제작자: Ilham Fitrotul Hayat - Flaticon
지원 아이콘 제작자: Freepik - Flaticon
스마트 폰 아이콘 제작자: Freepik - Flaticon
섬기는 사람 아이콘 제작자: Those Icons - Flaticon
'모의해킹 공부 > 모의해킹 스터디' 카테고리의 다른 글
[0525 Day09] CSRF & SSRF (0) | 2023.05.29 |
---|---|
[0518 Day08] XSS & CSRF (0) | 2023.05.19 |
[0511 Day07] XSS(Cross Site Scripting)-02 (0) | 2023.05.12 |
[0504 Day06] XSS(Cross Site Scripting)-01 (0) | 2023.05.05 |
[0427 Day05] SQL Injection-03 (1) | 2023.04.28 |