打開首先發現是一個圖片下載(老婆們都很不錯( ̄▽ ̄)*),感覺也沒什么其他的東西,先F12看一下代碼,發現有一處標注,感覺跟任意文件下載有關:
(一開始的錯誤思路:)
想著先掃一遍看看能不能發現啥,于是用dirsearch掃了一下,
發現了/console,訪問顯示需要PIN,
也沒有什么提示不知道能不能爆破出來,先抓個包看看,發現返回的響應包中有,改一下值,改為true,
發現驗證就通過了:
但是我不會了。。。。后來看了一下wp,發現這個思路是錯的,還是應該從文件讀取入手。
于是先試一試讀取flag:
被過濾了🤪,不過不要氣餒,多試試,再嘗試隨便讀一個111.jpg:
發現沒有過濾了,出現了報錯:
里面暴露了一些路徑,猜測app.py是網站源文件,下載下來先看看(但是這個路徑,我不太了解為什么就是返回兩層,是開發經驗嗎):
# !/usr/bin/env python
# -*-coding:utf-8 -*-
"""
# File : app.py
# Time :2022/11/07 09:16
# Author :g4_simon
# version :python 3.9.7
# Description:抽老婆,哇偶~
"""
from flask import *
import os
import random
from flag import flag
#初始化全局變量
app = Flask(__name__)
app.config['SECRET_KEY'] = 'tanji_is_A_boy_Yooooooooooooooooooooo!'
@app.route('/', methods=['GET'])
def index():
return render_template('index.html')
@app.route('/getwifi', methods=['GET'])
def getwifi():
session['isadmin']=False
wifi=random.choice(os.listdir('static/img'))
session['current_wifi']=wifi
return render_template('getwifi.html',wifi=wifi)
@app.route('/download', methods=['GET'])
def source():
filename=request.args.get('file')
if 'flag' in filename:
return jsonify({"msg":"你想干什么?"})
else:
return send_file('static/img/'+filename,as_attachment=True)
@app.route('/secret_path_U_never_know',methods=['GET'])
def getflag():
if session['isadmin']:
return jsonify({"msg":flag})
else:
return jsonify({"msg":"你怎么知道這個路徑的?不過還好我有身份驗證"})
if __name__ == '__main__':
app.run(host='0.0.0.0',port=80,debug=True)
有個/secret_path_U_never_know路徑,但是從代碼里可以看出還需要繞過身份驗證:
看代碼只需要讓session中的isadmin為真就可,這個用的應該是JWT方式認證,里面簽名要用到SECRET_KEY;于是我們將isadmin的值更改后,使用密鑰SECRET_KEY重新加密生成一個session。有一個開源腳本可以幫我們自動生成:github—flask-session-cookie-manager下載鏈接
下載之后,使用腳本進行重新加密:
生成以后我們在burp攔截的請求包中用此session替換之前的session,發現flag出現:
總結:
了解到了flask框架,以及flask框架中會使用的登錄認證:
現在流行兩種方式登錄認證方式:Session和JWT,無論是哪種方式其原理都是保存憑證:session,JWT,token的區別
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
標題名稱:ctfshow-菜狗杯-抽老婆-創新互聯
文章出自:http://vcdvsql.cn/article46/diohhg.html
成都網站建設公司_創新互聯,為您提供微信公眾號、服務器托管、企業網站制作、搜索引擎優化、面包屑導航、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯