Try to be the expert.

Ainsetin's Hacking & PS & Math

jinja2 2

1인 1프로젝트 : 9일차 (웹해킹 문제 설계, 웹개발 계획 설계)

나는 server template으로써 작동하는 Jinja2에서 유저가 입력한 내용을 그대로 템플릿에서 실행할 때 발생하는 Server Side Template Injection (SSTI)를 실습할 수 있는 웹해킹 문제를 만들어 볼 것이다. SSTI는 다음과 같이 발생하게 된다. 위 그림에서는 각 단계가 초록색 화살표(injection O), 빨간색 화살표(injection X) 로 분기되어 있다. 그 이유는 무엇일까? 만약 웹 서비스에서 SSTI 취약점이 발생한다면, 어떤 환경인지에 따라 유저가 위와 같은 구문을 집어넣었을 때 결과값이 내가 넣은 문자가 그대로 나오거나 연산 결과를 출력한다. 이는 어떤 template engine을 사용하였는지에 따라 달라진다. 예를 들면, 나는 Jinja2 기반 서..

2021 1人 1 Project 2021.06.17

1인 1프로젝트 : 8일차 (python Flask & Jinja2 template)

Flask는 파이썬으로 작성된 마이크로 웹 프레임워크의 하나로, Werkzeug 툴킷과 Jinja2 템플릿 엔진에 기반을 두고 있다. Flask로 누구나 손쉽게 웹 서버를 열 수 있으며, 동작하고 있는 서버 상에서는 debug mode를 통해 어떻게 http 요청이 진행되고 있는지를 알 수 있어 간편하고 깔끔한 웹 프레임워크로 현재까지도 자리잡고 있다. flask로 로컬에서 웹서버를 만드는 과정은 다음과 같다. 1. python3의 pip로 flask 설치 2. flask 설치 후 가장 기본적인 파일인 app.py를 수정하여 원하는 페이지에 접근할 수 있도록 기본 뼈대 작성. 3. python3 app.py 실행 -> localhost:5000에 잘 붙었는지 확인. (기본 포트는 5000) 4. Jinj..

2021 1人 1 Project 2021.06.15