本文最后更新于118 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
一、访问网站,只有一个点击
二、尝试点击
发现flag不在这里
三、查看源码,发现一个疑似src的目录
四、访问该目录
发现是有关python的代码:
import flask
app = flask.Flask(__name__)
@app.route('/', methods=['GET'])
def index():
return flask.send_file('index.html')
@app.route('/src', methods=['GET'])
def source():
return flask.send_file('app.py')
@app.route('/super-secret-route-nobody-will-guess', methods=['PUT'])
def flag():
return open('flag').read()
五、分析代码
import flask
app = flask.Flask(__name__)
导入flask库,并创建flask应用实例。
@app.route('/', methods=['GET'])
def index():
return flask.send_file('index.html')
定义/
路由,该路由只处理GET请求,访问/
是显示index.html
的内容。
@app.route('/src', methods=['GET'])
def source():
return flask.send_file('app.py')
定义/src
的路由,该路由只处理GET请求,访问/src
显示 app.py
的内容。
@app.route('/super-secret-route-nobody-will-guess', methods=['PUT'])
def flag():
return open('flag').read()
定义/super-secret-route-nobody-will-guess
路由,该路由只处理PUT请求,访问/super-secret-route-nobody-will-guess
显示flag。
六、使用burp抓包,修改为PUT请求
成功获得flag
总结
- flask:Python 的 Flask 框架,可以编写的一个简单 Web 应用程序
- 使用flask定义路由,访问xx显示xx.xx的内容
- PUT请求