반응형
HackHiJack
HHJ
HackHiJack
전체 방문자
오늘
어제
  • 분류 전체보기 (99)
    • chatGPT (2)
    • pwn (2)
    • 워게임 (32)
    • Reversing (0)
    • Cryptography (12)
    • Web (6)
    • CTFs (16)
    • TryHackMe (6)
    • Go (5)
    • Forensics (18)

블로그 메뉴

  • 홈

공지사항

  • Welcome To HHJ's Blog

인기 글

태그

  • package
  • 해킹 #TryHackMe #WriteUp #ignite
  • linkfile
  • webhacking.kr
  • Import
  • startup
  • rootme
  • forensic
  • function
  • 포렌식
  • go
  • func
  • main.go
  • main
  • hacking
  • pwnable.kr
  • analyis
  • shellctf
  • ㅣ
  • 암호 #AES #드림핵

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HackHiJack

HHJ

Dreamhack - simple-ssti(Write-up)
Web

Dreamhack - simple-ssti(Write-up)

2021. 12. 29. 22:10
728x90
반응형

오늘은 드림핵의 simple-ssti라는 문제를 풀어볼 것이다.

문제는 2단계인데 굉장히 쉬운 문제이다.

정말 ssti의 기초만 알아도 풀수 있는 문제이다.

 

먼저 python코드를 살펴보자.

#!/usr/bin/python3
from flask import Flask, request, render_template, render_template_string, make_response, redirect, url_for
import socket

app = Flask(__name__)

try:
    FLAG = open('./flag.txt', 'r').read()
except:
    FLAG = '[**FLAG**]'

app.secret_key = FLAG


@app.route('/')
def index():
    return render_template('index.html')

@app.errorhandler(404)
def Error404(e):
    template = '''
    <div class="center">
        <h1>Page Not Found.</h1>
        <h3>%s</h3>
    </div>
''' % (request.path)
    return render_template_string(template), 404

app.run(host='0.0.0.0', port=8000)

먼저 코드를 살펴보면, 아래와 같은 부분에서 ssti의 취약점이 발생하는걸 확인할 수 있다.

def Error404(e):
    template = '''
    <div class="center">
        <h1>Page Not Found.</h1>
        <h3>%s</h3>
    </div>
''' % (request.path)

이는 python Flask에서 나타나는 취약점인데, flask는 jinja2라는 템플릿을 이용하여 취약점이 발생한다.

 

여기서 {{ }} 형식으로 넣으면, 웹 템플릿이라고 인식을 하여 정보를 출력하거나, 연산, 심지어 RCE까지 이어지는 위험한 취약점이 발생한다.

 

그러면 이제 웹사이트를 살펴보자.

걍 어디를 들어가던 404에러가 발생된다.

그런데 만약 / 뒤에 웹 템플릿 구문을 넣으면 실행이 될 것이다.

 

flask는 대부분의 중요한 정보다 config라는 class로 들어간다.

그러면 아래처럼 주소를 넣으면 config파일을 불러올수 있을 것이다.

http://host1.dreamhack.games:<your port>/{{config}}
반응형

위를 넣으면 아래처럼 flag를 확인할 수 있다.

728x90
반응형

'Web' 카테고리의 다른 글

SQL injection이란? (with Dreamhack)  (0) 2022.02.28
Dreamhack - Flask-Dev (write-up)  (0) 2022.01.01
Dreamhack - file-csp-1 (write-up)  (0) 2022.01.01
Dreamhack(Wargame.kr) - Login filtering  (0) 2022.01.01
JavaScript - HTML과 JS  (0) 2021.10.17
    'Web' 카테고리의 다른 글
    • Dreamhack - Flask-Dev (write-up)
    • Dreamhack - file-csp-1 (write-up)
    • Dreamhack(Wargame.kr) - Login filtering
    • JavaScript - HTML과 JS
    HackHiJack
    HackHiJack
    $ whoami HHJ

    티스토리툴바