3주차 수업 복습

Jang Seok Woo·2020년 9월 15일
0

보안

목록 보기
7/19
post-custom-banner

3주차 수업 복습

1. 28가지 웹 취약점에 이어 35가지 취약점으로 약 7가지 취약점이 추가되었다.

해당 문서를 다운받아 보려고 찾았으나 아직 공식문서화 되지 않은 것? 으로 보인다.

35가지 취약점은 다음과 같다.

동적 처리와 정적 처리에 대해 다시 한 번 짚고 넘어가도록 한다.

동적처리

정적처리

2. 이 중 이번 주 배운 XSS는 JavaScript를 먼저 알고 넘어가야 하는 기술이다.

JavaScript란 무엇인가?

• JavaScript는 객체(object) 기반의 스크립트 언어
• HTML로는 웹의 내용을 작성하고, CSS로는 웹을 디자인하며, JavaScript 로 는 웹의 동작을 구현할 수 있음
• JavaScript는 주로 웹 브라우저에서 사용되나, Node.js와 같은 프레임워크를 사용하면 서버 측 프로그래밍에서도 사용할 수 있음
• 현재 컴퓨터나 스마트폰 등에 포함된 대부분의 웹 브라우저에는 JavaScript 인터프리터가 내장되어 있음
• JavaScript는 웹 서버(Server)에서 작성 후 저장되고, 이 JavaScript는 사용 자 웹 브라우저(Client)에서 실행 됨

3. XSS

• Cross-Site Scripting(XSS) – 사이트 간 스크립팅 – CSS는 이미 있어서, XSS !!

• 대부분의 웹 해킹 공격 기법은 웹 서버를 대상으로 공격하지만, XSS는 사용 자를 대상으로 공격

• 악성 코드가 포함된 글을 읽는 순간 악성 프로그램이 설치되거나 쿠키 혹은 세션 정보가 공격자에게 젂송되어 이를 악용
• XSS(크로스사이트 스크립팅) 취약점은 내가 원하는 Javascript 함수를 실행 시키는 취약점이다! - 서버에 저장된 Javascript를 어떻게 바꿀 것인가?

• 일반적인 공격 형태 – “> 를 붙여 사용함

“> <script> alert(“메시지”) </script> 

와 같은 형태 사용

OWASP XSS Filter 우회 기법 정리 (cheatsheet)

– https://owasp.org/www-community/xss-filter-evasion-cheatsheet

XSS 종류

• Reflected XSS
• Stored XSS
• DOM-Based XSS

Reflected XSS

• 서버가 외부에서 입력받은 값을 받아 브라우저(사용자)에 그대로 돌려주면, 악성 스크립트 구문 삽입 시 그대로 반사되어 악성 스크립트 구문이 실행됨
• 공격 시점 : 악성 스크립트 구문이 포함된 링크 클릭 시

https://www.xxxx.com/search.jsp?q=<script>alert(“공격”)</script>

와 같은 형태
• 공격자는 악성 스크립트 구문이 포함된 링크를 배포 후, 해당 링크를 클릭 하는 사용자들로 하여금 악성 스크립트 구문을 실행
• 브라우저 프로그램에서 XSS 필터가 존재하여, 간혹 실행되지 않는 경우가 존재함
• 다른 사람이 보낸 링크를 클릭하는 사람은 많지 않음
• 링크 뒤 파라미터 값에 수상한 구문이 들어가 있어 더 의심스러움 – 인코딩 필수!

Stored XSS

• 악성 스크립트 구문이 저장된 경로에 사용자가 접근 시, 저장된 악성 스크 립트 구문이 실행됨
• 공격 시점 : 악성 스크립트 구문이 저장된 페이지 접근 시

가장 대표적인 예가 게시판
• 악성 스크립트 구문을 저장한 게시글을 작성하면, 해당 게시글을 보기 위해 접근하는 모든 사용자들에게 악성 스크립트 구문을 실행
• 단순히 게시글을 조회 하면 공격이 가능하므로, 공격 성공률이 굉장히 높음

DOM-based XSS

• DOM(Document Object Model) – 프로그램 및 스크립트가 문서의 컨텐츠, 구조 및 형식을 동적으로 접근 및 업데이트할 수 있 도록 하는 언어 중립적인 인터페이스
• 브라우저가 HTML 페이지를 구문 분석할 때, DOM의 일부로 생성되어 실행

Reflected XSS 하고 동일하게 공격하면 됨
– 공격자는 악성 스크립트 구문이 포함된 링크를 배포 후, 해당 링크를 클릭하는 사용자들로 하여금 악성 스크립트 구문을 실행
– 브라우저 프로그램에서 XSS 필터가 존재하여, 간혹 실행되지 않는 경우가 존재함
– 다른 사람이 보낸 링크를 클릭하는 사람은 많지 않음
– 링크 뒤 파라미터 값에 수상한 구문이 들어가 있어 더 의심스러움

4. CSRF

• Cross-Site Request Forgery(CSRF) – 사이트 간 요청 위조
• 사용자가 자싞의 의지와 무관하게 공격자가 의도한 행동을 함 – 수정, 삭제 등
• 사용자 PC를 공격하는 것이 아닌, 서버를 공격
• 일반적인 공격 형태 – 중요한 기능이 2차 인증 없이 실행 가능한 경우, 이 요청을 링크로 특정 대상에게 보내 실행 을 유도함
• 예) 비밀번호 변경 시 – https://www.xxxx.com/change_pw.jsp?new_user_pw=qwer1234 – 피해자가 로그인 한 상태로 위 링크를 클릭 시, 피해자 계정의 비밀번호가 qwer1234로 변경 됨

가장 큰 차이점은 공격 대상이 클라이언트냐 서버냐 이다.

profile
https://github.com/jsw4215
post-custom-banner

0개의 댓글