파일 업로드 취약점은 파일을 업로드하는 기능에 적절한 보안 대책이 적용되어 있지 않을 때, 발생한다.
취약점이 있을 경우, 웹 쉘이라고 하는 웹을 통해 시스템 명령어를 실행할 수 있는 웹 페이지를 통해 공격이 가능하다
위와 같이 웹 쉘은 공격자가 입력 폼에 입력하면 cmd 파라미터를 통해 전달되어 system() 함수를 이용하여 명령어를 실행한다.
웹 페이지에서 웹 쉘을 업로드한다.
위와 같이 업로드된 경로에 접속한다.
cat /etc/passwd와 같은 명령어를 실행해 정보를 획득한다.
꼭 필요한 형식만 업로드되도록 파일의 확장자와 내용을 검사한다. 파일의 확장자만 검사하는 경우, 파일의 실제 내용을 확장자와 다르게 전송하여 우회할 수 있으니 파일의 내용까지 일부 검사하여 파일의 종류를 확실하게 검사한다.
업로드된 파일을 사용자가 접근 불가능한 경로에 저장한다. 파일 업로드를 위한 별도의 서버를 구축하고 웹 애플리케이션을 서비스하는 서버와 완전히 분리하는 것도 좋다.
파일이 업로드되는 디렉터리 실행 권한을 제거한다.
업로드된 파일을 다른 확장자로 변경한다. 이렇게 되면 php코드가 실행되지 않게 된다.
업로드된 파일의 이름을 랜덤하게 재생성하여 저장한다. 공격자가 자신이 업로드한 파일의 경로를 추측하지 못하도록 한다.
위 글은 '화이트 해커를 위한 웹 해킹의 기술 최봉환 저'를 공부하며 쓴 글입니다.
Step10. 접근 통제 취약점 공격 (0) | 2021.03.08 |
---|---|
Step9. 민감한 데이터 노출 (0) | 2021.03.07 |
Step7. 파일 인클루전 공격 (0) | 2021.02.27 |
Step6. 크로스 사이트 요청 변조(CSRF) 공격 (0) | 2021.02.26 |
Step5. 크로스 사이트 스크립팅 공격 (0) | 2021.02.25 |
댓글 영역