blind-command

minii_
|2024. 10. 1. 01:35
반응형

https://dreamhack.io/wargame/challenges/73

 

blind-command

Read the flag file XD Reference Web Hacking

dreamhack.io

 

문제 설명

Read the flag file XD

 

서버에 들어갔을 때의 화면이다. 

 

#!/usr/bin/env python3
from flask import Flask, request
import os

app = Flask(__name__)

@app.route('/' , methods=['GET'])
def index():
    cmd = request.args.get('cmd', '')
    if not cmd:
        return "?cmd=[cmd]"

    if request.method == 'GET':
        ''
    else:
        os.system(cmd)
    return cmd

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

먼저 문제 코드를 살펴봤다.

cmd 쿼리 파라미터를 통해 명령어를 실행할 수 있도록 작성되어 있다.

그리고 request.method가 GET이 아닐 경우에 입력받은 값으로 cmd를 실행하게 된다.

 

일단 url로 값을 입력했는데 입력한 값이 그대로 출력되었다..

 

burp suite로 확인해 보면 Get Method로 전송되고 있는 것을 확인할 수 있다.

Get 요청이 아닐 경우 cmd가 실행될 수 있기 때문에 burp suite로 Request를 수정해야 한다고 생각했다.

 

 

Repeater로 Head 요청을 보냈는데 이후 과정을 모르겠어서 구글링을 해서 문제풀이를 진행했다.

 

 

https://tools.dreamhack.games/

 

dreamhack-tools

 

tools.dreamhack.games

드림핵에서 제공하는 툴을 사용한다.

서버를 하나 열고 "curl -d"를 사용하면 값을 확인할 수 있다.

 

여기서 생성한 링크를 복사하고

다음과 같이 POST 요청을 보낸다.

 

cat flag.py가 실행되어 flag가 정상적으로 출력이 되었다.

반응형

'Dreamhack > Web' 카테고리의 다른 글

CSP Bypass Advanced  (0) 2024.11.06
XSS Filtering Bypass Advanced  (0) 2024.10.28
web-ssrf  (0) 2024.09.19
php-1  (0) 2024.03.27
[wargame.kr] strcmp  (0) 2024.03.25