웹 애플리케이션(web application)
웹 애플리케이션 또는 웹 앱은 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어를 말함 [위키백과]
서버(Server)
정보나 서비스를 제공하는 컴퓨터 시스템을 말함
클라이언트(Client)
서버에게 정보나 서비스의 사용을 요구하는 사용자가 사용하는 시스템을 말함
CSS(Cascading Style Sheets)
문서의 전반적인 스타일을 미리 저장해 둔 스타일 시트
XSS의 기본원리
악성코드를 메일이나 웹 애플리케이션에 포함시켜 이를 실행하는 사용자의 정보를 유출시키는 방법이다.
쿠키
XSS(Cross Site Scripting)
게시판, 웹 메일 등에 삽입된 악의적인 스크립트에 의해 페이지가 깨지거나 다른 사용자의 사용을 방해하거나 쿠키 및 기타 개인 정보를 특정 사이트로 전송시키는 공격
픽셀(pixel)
컴퓨터 디스플레이 또는 컴퓨터 이미지를 구성하고 있는 최소 단위의 점
XSS 실습1-stored XSS 실습
XSS 실습2-reflected XSS 실습
CSRF 실습3
피해자가 인지하지 못하는 상태에서 피해자의 브라우저가 특정 사이트에 강제적인 Request를 보내도록 하는 기법
확장자
- 파일 종류를 구별하기 위하여 파일명의 마침표 뒤에 붙이는 문자
- 예를 들어, 파일명 'aaa.hwp'에서 'hwp'
jsp(java server page)- 자바로 구성된 서버 페이지
- 서버에서 수행된 jsp 결과는 사용자의 컴퓨터로 html으로 수행됨
소스코드(Source Code)- 프로그램을 구성하고 있는 논리적인 흐름을 프로그래밍 언어로 작성한 문자열의 집합
- 이 소스코드를 해당 언어의 번역기로 번역하여 만든 것이 프로그램
소스 코드 취약점 분석 방법
Black Box Testing : 웹 애플리케이션 외부 인터페이스나 구조 분석으로 취약점 발견하는 방식
White Box Testing : 개발된 소스 코드를 분석하여 코딩 상의 취약점을 찾는 방식
Gray Box Testing : Black Box Testing과 White Box Testing의 장점을 혼합
소스 코드 취약점 실습
행정안전부의 소프트웨어 개발 보안 가이드와 OWASP Top 10의 비교 :
소프트웨어 개발 보안 가이드의 ‘입력 데이터 검증 및 표현’, ‘보안 기능’에 매핑
입력 값 검증 취약점으로 가능한 공격들 :
SQL 삽입, 크로스 사이트 스크립트, 위험한 형식의 파일 업로드, 디렉토리 경로 조작 등
실습 : SQL 인젝션, XSS, 위험한 형식의 파일 업로드