XSS 3

XSS - Backtick(`)

Tab 키 위에 존재하는 이 Backtick은 ` javascript에서는 템플릿 리터럴에 활용된다. Backquote, backtick, grave accent 으로도 불리며 거의 접할 이유가 없는 문자이기도 하다. 그러면 왜 XSS에 Backtick을 언급한 이유가 무엇이냐 하면 보통 XSS를 발생시키기 위해 Javascript에서 기존 안의 구문에서 벗어나기 위해 "> 와 같은 입력값으로 개발자의 의도와 다른 방식으로 입력을 한다. 따라서 보통은 " , ' , , % 와 같은 특수문자들을 HTML Encoding하거나 필터링하여 입력을 방지한다. 필터링을 하거나 Encoding하여 방지하면 이 Backtick은 의미가 없지만 간혹 개발자 중 php에서 magic_quotes_gpc를 활성화 시키고 ..

정보보안/Web 2020.10.21

XSS로 HTTP ONLY 우회하여 세션 탈취하기

보통 일반적으로 XSS를 시도하다 보면 헤더에 HttpOnly 플래그가 설정된 경우를 찾을 수 있다. HttpOnly는 document.cookie API에 접근을 차단하여 세션 및 쿠키 탈취를 방지하기 위한 설정이다. Set-Cookie: id=ABCE123123r3ABCDf1234; Secure; HttpOnly; 이와 같은 설정 값으로 이러한 설정이 활성화 되어 있으면 내가 알고 있는 방법으로는 XSS를 이용하여 세션을 탈취하기란 거의 불가능에 가깝다. 특수문자 및 스크립트 필터링이 미흡해도 세션이나 쿠키값을 탈취할 수 없기 때문에 포기하고 피싱사이트쪽으로 시나리오를 생각하는 경우가 많다. 다만 HttpOnly가 설정되어 있는 경우라도 세션을 탈취하는 방법이 존재한다. 점검 대상의 사이트 중 필요에..

정보보안/Web 2020.06.02

XSS 진단 및 Cheat Sheet

프로젝트를 진행하면서 항상 듣는 말이 자신만의 비밀 사전이 필요하다는 말이다. 그래서 언젠가는 만들어야지? 생각하다가 그냥 지금 글에 계속 덧붙여서 만들기로 했다. 주관적인 생각으로 작성되었고 나만의 방법론이기 때문에 틀릴 수도, 비 효율적일 수도 있다. ※ 일반 사이트에 해당 구문 사용을 절대 권장하지 않는다. 스크립트를 발생시키는 이유는 해당 사이트에 의도하지 않는 스크립트 구문을 삽입하여 작동시킴으로 다양한 공격을 발생시키기 위함이다. 예를 들어 쿠키값 획득 + CSRF + 리다이렉션 이외에도 수많은 공격 목적이 존재한다. 단순히 이 발생하는 사이트는 거의 존재하지 않는다. 대부분은 입력값을 검증하여 >,

정보보안/Web 2020.01.13