python

    [WEB] SSTI (Server-Side Template Injection) for Jinja2

    0. Server-Side Template Injection SSTI(Server Side Template Injection)은 공격자가 서버측 템플릿 구문을 통한 악성 페이로드를 페이지에 삽입하여 실행되도록 하는 공격기법이다. 간단한 예시를 통해 이해해보자. ... ... {value} ... ... 위의 코드가 template engine에서 처리 되어 value 파라미터에 "Hello world"가 전달된다면 아래와 같이 치환된다. ... ... Hello world ... ... 이 때, 임의의 실행 가능한 코드를 넘겨준 경우, 서버측에서 실행 과정을 거친 후 결과가 반환된다. 예를 들면 7*7 이라는 식이 49라는 값으로 반환되어 사용자에게 출력된다. {{7*7}} # output: 49 SST..

    [WEB] JWT(JSON Web Token) Attack

    0. Basic 1) JWT란? JWT란, JSON Web Token의 약자로 JSON 문서를 Base64로 인코딩 후 서명하는 방식을 말한다. 대부분 웹사이트 사용자 인증에 사용되고, 쿠키에 주로 포함되어 쓰인다. JWT는 사용자의 정보나 세션 만료 시간 등을 JSON 문서 형식(Dictionary)으로 나타낸다. 2) JWT 구성 JWT의 형태는 다음과 같다. 세 부분으로 나뉘어져 있고, 각각은 .(dot) 으로 구분된다. Frame) Header . Payload . Signature Header alg: 어떤 알고리즘을 이용하여 서명(Sign)을 할 것인가? typ: 미디어타입. 옵션값이며 JWT일 경우 "JWT" Base64({ "alg": "HS256", "typ": "JWT" }) Paylo..