침투 시나리오를 활용한 웹, 모바일 환경 모의 해킹 실습 4일차

bbbbbhyun·2024년 10월 18일
0

CSRF(Cross-Site Request Forgery)

정상적인 요청과 조작된 요청을 서버가 구분하지 못 할 경우 발생하는 취약점으로, 애플리케이션을 이용하는 사용자로 하여금 조작된 요청을 웹 어플리케이션에 전송하도록 유도하여 피해를 발생시킴

예제
1. 공격자는 조작된 요청 게시물 등록
2. 희생자는 공격자가 등록한 게시물 열람하고, 희생자 브라우저는 서버로 요청 패킷을 전송
3. 서버는 조작된 요청에 대한 응답 패킷 전송
4. 브라우저는 조작된 요청에 대한 응답값을 수행

공격 방법

  1. 글 등록, 정보 수정 등 사용자가 서버에 일정한 데이터를 요청하는 모든 기능
  2. 그 외 취약한 서버에서 사용자들이 사용 가능한 모든 기능에 잠재적인 위험성 내포

보안 대책

  1. GET, POST의 구분
  • GET 방식 보다 POST방식으로 데이터를 전송
  • 완벽한 대응은 아니며 1차적인 방법
  1. Submit button 등을 이용하여 관리자 요청 검증
  • Submit button 등을 이용하여 관리자가 보내는 요청인지 검증하는 수단을 만듬
  • 검증을 할 인증값이 고정된 값이라면 우회가 가능함
  1. XSS 취약점 제거
  • 조작된 요청 생성에 사용되는 ?,&,<,>등의 특수문자 필터링
  • CSRF공격이 XSS 취약점이 존재하는 다른 페이지를 통해 발생할 경우 진단 대상의 XSS 취약점 존재여부와 별개로 공격이 가능함
  1. 보안 토큰 사용
  • 중요한 기능 동작 시 발급 받은 보안토큰을 포함시켜 전송하도록 하여 보안토큰의 값이 일치하지 않거나 없을 경우 기능을 동작시키지 않도록 구현
  1. 2차 인증 - 캡차 등
  • 중요한 기능의 경우 2차, 3차의 재인증을 강제로 수행하도록 구현
  • Reqeust 메소드 구분, 토큰 방식 등은 우회 가능하므로 중요 기능의 경우 반드시 추가 인증을 수행하도록 권고 해야 함

CSRF 공격 대상은 서버 ,XSS 공격 대상은 클라이언트

SSRF(Server Side Request Forgery)

Server Side에서 이루어지는 요청을 변조하여 공격자가 의도한 서버로 임의의 요청을 할 수 있는 공격

공격 방법

  1. 로컬 서버 파일 접근
  • 로컬에 존재하는 임의의 파일에 접근하기 위해 SSRF 공격 이용
  1. 내부 웹 서버의 정보 획득
  • 내부 웹 서버의 자원에 임의 접근하기 위해 SSRF 공격 이용
  1. 조작된 HTTP Request를 특정 내부 서버로 전송
  • 취약한 웹 서버 등에 악의적인 Payload를 전송하기 위해 SSRF공격 이용
  1. 내부 네트워크 스캐닝
  • 내부 네트워크에 존재하는 호스트들을 스캔하기 위해 SSRF 공격 이용
  1. 관리자 페이지 접근
  • 외부에서 접근이 제한된 관리자 페이지에 접근하기 위해 SSRF 공격 이용

보안 대책

  1. White List 방식 검증
  • 허용할 URI들을 정의해 둔 뒤 입력 받은 URI가 허용 URI인지 검증하는 방식
  1. Black List 방식 검증
  • 금지할 URI,Scheme 등을 정의해두고 입력 받은 URI에 금지된 URI,Scheme 가 있는지 검증하는 방식

Example

문제3 : 관리자 페이지에 접근하고 로그인하시오.
1.소스보기에 관리자 url 찾기
http://localhost:8080/admin.php

  1. 관리자 페이지의 소스보기 했을때 아이디 비번 탈취
    adminID/adminPW

  2. 로그인 시도시 파라미터 셋팅보기
    /ssrf_3/admin.php?login_id=adminID&login_pwd=adinPW

  3. 관리자 url 로 보내기
    http://normalskinfosec3.com:8090/admin.php?login_id=adminID&login_pwd=adminPW

File Download

공격자가 파일 다운로드 기능을 이용하여 웹 사이트에 포함된 주요 파일을 다운로드 할 수 있는 취약점으로, 홈페이지 상에서 파일을 다운받는 기능이 포함된 jsp,php,asp 등의 페이지에서 입력되는 경로를 체크하지 않는 경우 임의의 문자나 주요 파일명의 입력을 통해 웹서버의 홈 디렉토리를 벗어나 임의의 위치에 있는 파일을 염람하거나 다운받을 수 있음
파일다운로드 경로를 적절히 검증하지 않아 공격자가 파일명 혹은 경로명에 '../'와 같은 문자나 주요 파일명의 입력을 통해 중요 시스템 파일이나 지정하지 않은 다른 파일을 다운로드 할 수 있음

공격 방법

  1. burp suite 에서 파일 경로 그대로 바꿔서 보내기
  2. burp suite에서 ../붙인 파일경로 바꿔서 보내기
  3. 업로드 된 파일의 속성 정보를 확인하여 해당 파일의 경로 노출 여부를 확인
  4. 사용되는 Parameter 중 변조에 의해 다른 파일에 접근이 가능한 부분이 있는지 확인
  5. 파일명으로 다운로드 하는것을 확인 후 상위경로로 이동하는 명령어(../) 삽입
  6. 다운 받은 주요파일을 바탕으로 시스템 정보 수집

보안 대책

  1. 완벽하게 파일 다운로드 취약저에 대처하기 위해서는 3가지 대책을 반영
  • 파일명과 경로명을 DB에서 관리
  • 경로 관련 필터링 로직 구현
  • 다운로드 시 권한 체크
  1. 파일 다운로드 취약점은 업로드, 다운로드 모두 조치해야하고 DBxㅔ이블을 수정해야함
  2. 웹 애플리케이션을 통해 Web root 상위로 접근되지 않도록 권한 설정
  3. ../ ./ ..\과 같은 경로 관련 문자열 탐지 시 삭제처리
  4. 경로를 의미하는 Parameter를 사용하지 않음으로써 임의의 경로에 대한 접근을 차단
  5. 업로드 디렉토리 이외에는 접근되지 않도록 차단
  6. 파일 업로드 시 첨부파일에 대한 SEQ번호 부여 후 다운로드 시 SEQ 번호를 기준으로 파일 접근

Eample

localhost:8080/board/filedownload.jsp?filename=../../../../../1월고지서.pdf

File Upload

  • 웹 사이트의 파일 업로드 기능을 이용하여 인가 받지 않은 파일을 서버에 임의로 업로드 하는 공격
  • 웹쉡 형태의 파일을 업로드 후 실행하면 서버의 자원을 장악할 수 있음
  • 페이지를 변조하여 접속하는 클라이언트들에게 악성코드 배포할 수 있음

공격 방법

  1. 공격자는 악의적 파일을 업로드 시키고 업로드 경로를 확인하여 악의적인 스크립트를 실행

보안 대책

  • 클라이언트
    블랙리스트, 화이트 리스트를 파일 확장자 기준으로 javascript를 이용한 확장자 필터링
  • 서버
  1. 블랙리스트를 파일확장자 기준으로 서버 사이드 파일인 asp,jsp,php등을 업로드 하지 못하게 함
  2. 화이트 리스트를 업로드 가능한 content-type만 업로드함
  3. 화이트 리스트를 업로드 가능한 확장자 파일만 업로드함
  4. 서버측에서 업로드 파일에 특수문자가 포함되는지 검증하는 로직 구현
  5. 파일 경로와 파일명을 데이터베이스에서 관리
  • 업로드시 파일 rename : 업로드시 파일 이름을 해커가 추적할 수 없는 파일 이름으로 rename 하여 해커가 파일을 실행할 수 없게함
  1. 업로드 디렉토리의 실행권한 제거
  • 로드 파일의 실행권한을 제거하여 웹서버에서 실행할 수 없게 함
profile
BackEnd develope

0개의 댓글