JJANG-JOON
article thumbnail
반응형

 

 

버그바운티 다양한 공격 심층 분석 및 취약점 예방 가이드

 

 

 

 

 

 

 

 

 

 

1. XSSI 공격 심층 분석

 

 

  • 정의: XSSI(Cross-Site Scripting Inclusion)는 공격자가 웹 페이지에 악의적인 스크립트를 삽입하여 사용자에게 피해를 입히는 공격 방식
  • 공격 유형:
    • Regular XSSI: 웹 페이지에 직접 악의적인 스크립트를 삽입하는 방식
    • Dynamic-JavaScript-based XSSI: JSONP 응답이나 Ajax 요청을 통해 악의적인 스크립트를 삽입하는 방식
    • Authenticated-JavaScript-XSSI: 인증된 사용자만 접근할 수 있는 페이지에 악의적인 스크립트를 삽입하는 방식
    • Non-Script-XSSI: 스크립트 태그가 아닌 다른 방식으로 악의적인 스크립트를 실행하는 방식
  • 공격 예시:
    • 사용자의 개인 정보를 탈취하는 악의적인 스크립트를 삽입
    • 사용자의 행위를 조작하는 악의적인 스크립트를 삽입
    • 웹 사이트를 변조하는 악의적인 스크립트를 삽입
  • 예방 방법:
    • 웹 사이트의 취약점을 파악하고 개선
    • XSS 필터링 기술 사용
    • Content Security Policy (CSP) 사용
    • Cross-Origin Resource Sharing (CORS) 적절하게 설정
    • 사용자에게 XSS 공격 교육 실시

 

 

 

 

 

2. 추가 취약점 분석 및 예방 가이드

 

 

 

 

2.1. HTTP 응답 분할 공격

  • 정의: HTTP 응답 분할 공격은 공격자가 단일 요청에 대해 두 개의 HTTP 응답을 반환하도록 유도하여 피해자에게 악성 콘텐츠를 전달하는 공격 방식
  • 공격 시나리오:
    • 공격자가 악성 URL을 피해자에게 전달
    • 피해자가 악성 URL을 클릭
    • 취약한 웹 사이트는 두 개의 HTTP 응답을 반환
    • 첫 번째 응답은 피해자를 정상 페이지로 리디렉션
    • 두 번째 응답은 피해자에게 악성 콘텐츠를 전달
  • 예방 방법:
    • 입력 데이터(CR 및 LF)의 유효성 검사
    • 하나의 헤더 필드에 HTTP 헤더 중첩 금지

 

 

 

 

 

2.2. 구분 기호 삽입 공격

  • 정의: 구분 기호 삽입 공격은 공격자가 웹 애플리케이션의 매개변수를 조작하여 예상치 못한 동작을 발생시키는 공격 방식
  • 공격 시나리오:
    • 공격자가 특정 매개변수에 구분 기호를 삽입
    • 취약한 웹 애플리케이션은 예상치 못한 방식으로 매개변수를 해석
    • 공격자가 원하는 동작을 수행
  • 예방 방법:
    • 입력 유효성 검사 올바르게 구현
    • 허용되는 문자의 허용 목록 사용

 

 

 

 

 

 

2.3. SMTP 헤더 삽입 공격

  • 정의: SMTP 헤더 삽입 공격은 공격자가 이메일 헤더에 악의적인 값을 삽입하여 피해자에게 가짜 이메일을 보내는 공격 방식
  • 공격 시나리오:
    • 공격자가 이메일 템플릿에 악의적인 값을 삽입
    • 취약한 웹 애플리케이션은 악의적인 값을 포함하는 이메일을 전송
    • 피해자는 가짜 이메일을 수신
  • 예방 방법:
    • 사용자 입력이 이메일 헤더에 배치되기 전에 안전한 문자의 허용 목록을 준수하는지 확인
    • 이메일 라이브러리 사용

 

 

 

 

 

2.4. 지나치게 제한적인 계정 잠금 정책

  • 정의: 지나치게 제한적인 계정 잠금 정책은 공격자가 무차별 대입 공격을 통해 사용자 계정을 잠금시키는 공격 방식
  • 테스트 방법
    1. Wi-Fi 연결을 사용하여 사이트에 로그인 시도를 50회 이상 실패시킨다.
    2. 사용자 이름이 vflexo라고 가정하고 50개의 잘못된 비밀번호가 포함된 단어 목록을 사용한다.
    3. 계정이 잠겼다는 오류가 표시되면 인터넷 연결을 Wi-Fi에서 모바일 핫스팟으로 변경한다.
    4. 동일한 사용자 vflexo에 대한 로그인 요청을 보낸다.
    취약점 분석공격 시나리오
    1. 공격자는 Wi-Fi 연결을 사용하여 피해자 user8@gmail.com의 로그인 시도를 여러 번 실패시켜 계정을 잠금한다.
    2. 피해자는 인터넷 연결을 모바일 핫스팟으로 변경한다.
    3. 피해자는 Wi-Fi 연결을 사용하여 로그인 시도를 하지만 여전히 잠금 오류가 표시된다.
    4. 피해자는 모바일 핫스팟 연결을 사용하여 로그인 시도를 하지만 여전히 잠금 오류가 표시된다.
    5. 공격자는 IP Rotator를 사용하여 피해자에 대한 무차별 대입 공격을 수행한다.
    해결 방법
    1. 로그인 이름 외에 IP 주소를 고려하는 등 보다 지능적인 비밀번호 조절 메커니즘을 구현한다.
    2. 사용자 컴퓨터에 퍼즐 해결과 같은 계산 작업을 요구하는 암호 무차별 대입 공격에 대한 대안적인 계정 잠금 방식을 고려한다.
    추가 고려 사항
    • 로그인 실패 횟수 제한은 적절하게 설정해야 한다.
    • 로그인 실패 후 일정 시간이 지나면 자동으로 계정 잠금 해제 기능을 구현하는 것이 좋다.
    • 사용자에게 로그인 실패 횟수 및 남은 시도 횟수를 알려주는 것이 좋다.
    • 로그인 시도 기록을 저장하여 공격자의 IP 주소를 추적할 수 있도록 한다.
  •  
  • 인터넷 연결을 변경한 후에도 잠금 오류가 지속된다면 잠금 정책은 로그인 시도를 잠그기 위해 사용자 이름만 고려한다는 의미다. 이는 공격자가 사이트의 모든 사용자에 대해 무차별 대입 공격을 수행하여 사용자들이 로그인할 수 없도록 서비스 거부 공격을 할 수 있다는 것을 의미한다.

 

 

 


 

 

 

 

 

 

 

 

 

https://medium.com/@vflexo/hunting-for-vulnerabilities-that-are-ignored-by-most-of-the-bug-bounty-hunters-part-1-187b35508e56

 

Hunting for Vulnerabilities that are ignored by most of the Bug Bounty Hunters — Part 1

Hey Guys! Hope y’all doing well.

medium.com

 

https://tsunote.tistory.com/m/113

 

XSSI (Cross-Site Script Inclusion)

XSSI 기법에 대해 알아보기 전에 기본적인 보안 정책에 대해 간단하게 정리하겠다. SOP (Same-origin policy) 동일 출처 정책은 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 보안 방식이

tsunote.tistory.com

 

반응형
profile

JJANG-JOON

@JJANG-JOON

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...