보안 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

Ghostcat : Tomcat-Ajp (CVE-2020-1938)

프로젝트 중 통칭 Ghostcat 취약점을 사용할 수 있는 버전의 Tomcat 버전이 나와서 시도해봤더니 성공했다. 공격 python 코드는 Github에 올라온 POC 코드를 사용했고 그 이외에는 정말 기본적인 대상 정보만 알면 대상 webapp 이하의 소스코드 및 데이터를 내려받을 수 있는 취약점이였다. 연초에 핫한 취약점이여서 대충 들여다만 봤었는데 오늘 해보니 제대로 이해할 필요가 있어서 정리해 본다. 발생 원인 그럼 우선 근본적으로 취약점이 발생하는 AJP 프로토콜이 무엇인가, 왜 쓰이는가? AJP 프로토콜이란 Apache JServ Protocol로 Web 서버에서 전달받은 요청을 WAS로 전달해주는 프로토콜이다. 해당 프로토콜은 Apache HTTP Server, Apahce Tomcat, ..

정보보안/Web 2020.07.22

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

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

정보보안/Web 2020.06.02