๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ Miscellaneous (Misc)/Dreamhack

[Dreamhack] baby-linux ๋“œ๋ฆผํ•ต ์›Œ๊ฒŒ์ž„ ๋ฌธ์ œ ํ’€์ด

by A Lim Han 2023. 11. 23.

๐Ÿคฑ baby-linux ๋“œ๋ฆผํ•ต ์›Œ๊ฒŒ์ž„ ๋ฌธ์ œ ํ’€์ด

1.  ๋ฌธ์ œ ์„ค๋ช… ํ™•์ธ ํ›„ ์„œ๋ฒ„ ์ƒ์„ฑ

2.  ์ƒ์„ฑํ•œ ์„œ๋ฒ„๋กœ ์ ‘์†  -->  ls ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ˜„์กดํ•˜๋Š” ํŒŒ์ผ ๋ชฉ๋ก ์ถœ๋ ฅ

3.  cat ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด requirements.txt ํŒŒ์ผ ์˜คํ”ˆ  -->  ๋ณ„๋‹ค๋ฅธ ํžŒํŠธ๋ฅผ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•จ

 

4. cat ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด hint.txt ํŒŒ์ผ ์˜คํ”ˆ  -->  FLAG์˜ ๊ฒฝ๋กœ ๋ฐœ๊ฒฌ

 

5.  ๋‹ค์‹œ cat ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด hello ํŒŒ์ผ์— ์ ‘๊ทผ ์‹œ๋„  -->  No! ๋ฌธ์ž์—ด๊ณผ ํ•จ๊ป˜ ์ ‘๊ทผ ๊ฑฐ๋ถ€

echo $(cat ./dream/hack/hello/flag.txt)

6.  app.py ํŒŒ์ผ์„ ์—ด์–ด ์†Œ์Šค์ฝ”๋“œ ํ™•์ธ

7.  app.py ์ฝ”๋“œ ํ™•์ธ  -->  Line 13์—์„œ 'flag' ์šฉ์–ด ํ•„ํ„ฐ๋ง ์š”์†Œ ๋ฐœ๊ฒฌ

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

APP = Flask(__name__)

@APP.route('/', methods=['GET', 'POST'])
def index():
ใ…คใ…คif request.method == 'POST':
ใ…คใ…คใ…คใ…คuser_input = request.form.get('user_input')
ใ…คใ…คใ…คใ…คcmd = f'echo $({user_input})'

ใ…คใ…คใ…คใ…คif 'flag' in cmd:
ใ…คใ…คใ…คใ…คใ…คใ…คreturn render_template('index.html', result='No!')

ใ…คใ…คใ…คใ…คtry:
ใ…คใ…คใ…คใ…คใ…คใ…คoutput = subprocess.check_output(['/bin/sh', '-c', cmd], timeout=5)
ใ…คใ…คใ…คใ…คใ…คใ…คreturn render_template('index.html', result=output.decode('utf-8'))
ใ…คใ…คใ…คใ…คexcept subprocess.TimeoutExpired:
ใ…คใ…คใ…คใ…คใ…คใ…คreturn render_template('index.html', result='Timeout')
ใ…คใ…คใ…คใ…คexcept subprocess.CalledProcessError:
ใ…คใ…คใ…คใ…คใ…คใ…คreturn render_template('index.html', result='Error')

ใ…คใ…คreturn render_template('index.html')

if __name__ == '__main__':
ใ…คใ…คAPP.run(host='0.0.0.0', port=8000)

8.  ํ•„ํ„ฐ๋ง ์šฐํšŒ๋ฅผ ์œ„ํ•œ ์ •๊ทœํ‘œํ˜„์‹ ์ž‘์„ฑ

# ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ •๊ทœ์‹
: cat ./dream/hack/hello/f*ag.txt
: cat ./dream/hack/hello/fl*g.txt

 

++  ์ •๊ทœํ‘œํ˜„์‹ ์ž‘์„ฑ ๋ฐ ๊ฒ€ํ†  ์‚ฌ์ดํŠธ

-->  https://regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com

9.  ๋‹ค์‹œ ๋ฌธ์ œ๋กœ ๋Œ์•„์™€ ์ž‘์„ฑํ•œ ์ •๊ทœํ‘œํ˜„์‹ ์ž…๋ ฅ  -->  FLAG ๋ฐœ๊ฒฌ