파일 업로드 공격은 웹 애플리케이션 내
프로필 사진을 올린다든지 게시판에 사진이나 파일을 첨부한다든지 하는
모든 파일 업로드 기능이 공격 포인트가 될 수 있고 한번 공격이 성공하면 웹쉘이 업로드되어
서버의 모든 것들이 노출 및 유출될 수 있다.
웹쉘 예시
웹쉘 파일을 업로드 한다
그 파일로 접근을 하게 되면
간단하게 ls 명령을 실행했을 때 실제로 웹서버 경로의 파일리스트들이 출력된다.
이렇게 쉘 명령어를 그대로 실행시킬 수 있어서 위험한 취약점이다.
다양한 쉘코드는 아래 포스팅 참고
2022.02.16 - [웹] - [웹] 파일 업로드 - jsp 웹쉘 오픈소스 코드와 사용법
근데 보통은 확장자 필터링이나 실행 권한을 막는 등 다양한 대응방안으로 대처가 잘 되어있지만
간혹 점검을 하다보면
특정 확장자만 검증을 하거나
업로드 경로가 노출되거나 하는 경우들이 있다.
이런 경우에는 다양한 우회방법으로 웹쉘 업로드가 가능하다.
만약 서버에서
asp,aspx
jsp,jspx
php
이런 대표적인 확장자들에 대해서만 검증을 한다면
ASP : cer, cdx, asa
PHP : php3, html, htm
JSP : war
등의 확장자로 우회가 가능하다
우회 예시
asp나 aspx는 업로드가 불가능한 것을 볼수 있다.
하지만 똑같은 서버사이드 스크립트가 실행이 가능한 cer 파일로 업로드 시도 시 가능하다.
cer 파일 쉘 파일 실행 예시
파일 업로드 취약점은
화이트리스트 검증 방식이 아니고 블랙리스트 검증이거나
업로드경로가 노출되거나 등 어느 한 곳이라도 구멍이 있다면
뎁스있게 파서 업로드할 수 있는 취약점이다
코드단 검증은 다음 포스팅 참고
2022.04.07 - [웹] - [웹] 파일 업로드 - Caidao를 이용한 우회 공격 한줄 웹쉘 활용(One-line Webshell)
'웹' 카테고리의 다른 글
[웹] JWT(JSON Web Token)에 대한 다양한 공격 기법 - 1 (0) | 2022.07.14 |
---|---|
[Web] 불충분한 인증 및 인가(파라미터 변조 취약점)에 대해 (0) | 2022.07.13 |
[웹] XML external entity Injection(XXE) 공격 (0) | 2022.07.06 |
[Web] HTTP Request Smuggling을 이용한 다양한 웹 해킹 기법(활용) (0) | 2022.07.01 |