ctfshow-菜狗杯-抽老婆-創(chuàng)新互聯(lián)

任意文件讀取 抽老婆

打開首先發(fā)現(xiàn)是一個圖片下載(老婆們都很不錯( ̄▽ ̄)*),感覺也沒什么其他的東西,先F12看一下代碼,發(fā)現(xiàn)有一處標(biāo)注,感覺跟任意文件下載有關(guān):

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了岳陽免費(fèi)建站歡迎大家使用!

(一開始的錯誤思路:)

想著先掃一遍看看能不能發(fā)現(xiàn)啥,于是用dirsearch掃了一下,
在這里插入圖片描述發(fā)現(xiàn)了/console,訪問顯示需要PIN,
在這里插入圖片描述
也沒有什么提示不知道能不能爆破出來,先抓個包看看,發(fā)現(xiàn)返回的響應(yīng)包中有,改一下值,改為true,
在這里插入圖片描述

發(fā)現(xiàn)驗(yàn)證就通過了:
在這里插入圖片描述
但是我不會了。。。。后來看了一下wp,發(fā)現(xiàn)這個思路是錯的,還是應(yīng)該從文件讀取入手。

(正確思路:)

于是先試一試讀取flag:
在這里插入圖片描述
被過濾了🤪,不過不要?dú)怵H,多試試,再嘗試隨便讀一個111.jpg:
發(fā)現(xiàn)沒有過濾了,出現(xiàn)了報(bào)錯:
在這里插入圖片描述
里面暴露了一些路徑,猜測app.py是網(wǎng)站源文件,下載下來先看看(但是這個路徑,我不太了解為什么就是返回兩層,是開發(fā)經(jīng)驗(yàn)嗎):

# !/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":"你怎么知道這個路徑的?不過還好我有身份驗(yàn)證"})



if __name__ == '__main__':
    app.run(host='0.0.0.0',port=80,debug=True)

有個/secret_path_U_never_know路徑,但是從代碼里可以看出還需要繞過身份驗(yàn)證:
在這里插入圖片描述

flask中的session偽造

看代碼只需要讓session中的isadmin為真就可,這個用的應(yīng)該是JWT方式認(rèn)證,里面簽名要用到SECRET_KEY;于是我們將isadmin的值更改后,使用密鑰SECRET_KEY重新加密生成一個session。有一個開源腳本可以幫我們自動生成:github—flask-session-cookie-manager下載鏈接
下載之后,使用腳本進(jìn)行重新加密:
在這里插入圖片描述

生成以后我們在burp攔截的請求包中用此session替換之前的session,發(fā)現(xiàn)flag出現(xiàn):
在這里插入圖片描述

總結(jié):
了解到了flask框架,以及flask框架中會使用的登錄認(rèn)證:
現(xiàn)在流行兩種方式登錄認(rèn)證方式:Session和JWT,無論是哪種方式其原理都是保存憑證:session,JWT,token的區(qū)別

  1. 前端發(fā)起登錄認(rèn)證請求
  2. 后端登錄驗(yàn)證通過,返回給前端一個憑證
  3. 前端發(fā)起新的請求時(shí)攜帶憑證
    只不過session的重點(diǎn)是會在服務(wù)端存儲憑證;而JWT不會在服務(wù)端存儲憑證,而是會將返回的憑證根據(jù)簽名和加密方式來校驗(yàn)其是否被篡改。
    JWT的格式及加密形式(JWT的介紹及使用);

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

標(biāo)題名稱:ctfshow-菜狗杯-抽老婆-創(chuàng)新互聯(lián)
文章出自:http://bm7419.com/article46/diohhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、服務(wù)器托管、企業(yè)網(wǎng)站制作、搜索引擎優(yōu)化面包屑導(dǎo)航、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化