本文最后更新于223 天前,其中的信息可能已经过时,如有错误请发送邮件到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请求