DC-9靶機滲透實戰(zhàn):從SQL注入到端口敲門的完整攻擊鏈解析
1. 項目概述與核心價值最近在整理自己的滲透測試實戰(zhàn)筆記翻到了DC-9這個靶機。它不像某些靶機那樣上來就給你一個明顯的漏洞入口而是需要你像偵探一樣從零散的信息中拼湊出攻擊路徑。整個過程涉及了Web應(yīng)用安全中非常經(jīng)典的SQL注入漏洞以及一個相對少見的提權(quán)技巧——端口敲門。很多朋友在打這個靶機時要么卡在信息收集不全要么在提權(quán)環(huán)節(jié)找不到頭緒。今天我就把整個通關(guān)流程結(jié)合我踩過的坑和總結(jié)的技巧從頭到尾拆解一遍。無論你是剛接觸滲透測試的新手還是想鞏固Web滲透知識體系的朋友這篇指南都能讓你對“漏洞串聯(lián)”和“權(quán)限提升”有更深刻的理解。DC-9靶機模擬了一個存在多處安全缺陷的網(wǎng)站最終目標是獲取系統(tǒng)的最高權(quán)限。它的核心價值在于它不是一個孤立的漏洞點而是一個完整的攻擊鏈演練。你需要先通過前端的SQL注入拿到后臺訪問權(quán)限然后在后臺發(fā)現(xiàn)新的攻擊面最后利用系統(tǒng)層面的配置缺陷完成提權(quán)。這個過程完美復(fù)現(xiàn)了現(xiàn)實中攻擊者“由外到內(nèi)、層層遞進”的滲透思路。接下來我們就從最基礎(chǔ)的環(huán)境搭建和信息收集開始。2. 環(huán)境準備與初步信息收集2.1 靶機環(huán)境搭建與網(wǎng)絡(luò)配置首先你需要一個虛擬化環(huán)境來運行DC-9。我通常使用VMware WorkstationVirtualBox也是完全可行的。將下載好的DC-9靶機OVA文件導(dǎo)入后最關(guān)鍵的一步是設(shè)置網(wǎng)絡(luò)。務(wù)必將靶機的網(wǎng)絡(luò)適配器設(shè)置為“NAT模式”或“僅主機模式”。我強烈推薦使用“僅主機模式”并在你的攻擊機通常是Kali Linux上也配置一個同網(wǎng)段的僅主機網(wǎng)絡(luò)適配器。這樣做的好處是你和靶機構(gòu)成了一個封閉的、不受外界干擾的測試環(huán)境避免了外部網(wǎng)絡(luò)掃描的干擾也符合安全測試的倫理要求。啟動靶機后它通常不會顯示IP地址。我們需要找到它。在Kali Linux中打開終端使用netdiscover或nmap進行二層或三層發(fā)現(xiàn)。一個更穩(wěn)妥的方法是先進行ARP掃描sudo netdiscover -r 192.168.56.0/24假設(shè)你的僅主機網(wǎng)段是192.168.56.0/24這條命令會列出該網(wǎng)段內(nèi)所有活躍的IP和MAC地址。找到那個不屬于你已知設(shè)備的IP很可能就是DC-9。記下這個IP地址我們后續(xù)所有操作都將針對它。注意有些虛擬化環(huán)境特別是VirtualBox的僅主機網(wǎng)絡(luò)可能需要你手動配置一個靜態(tài)IP給Kali并確保它能ping通靶機網(wǎng)段。如果發(fā)現(xiàn)網(wǎng)絡(luò)不通檢查一下虛擬網(wǎng)絡(luò)的DHCP服務(wù)器是否已啟用或者手動設(shè)置IP地址。2.2 全面的端口與服務(wù)掃描拿到靶機IP假設(shè)為192.168.56.105后下一步就是摸清它的“家底”——開放了哪些端口運行著什么服務(wù)。這里我習(xí)慣分兩步走先快速掃描確認開放端口再針對性地進行深度探測。第一步快速全端口掃描使用Nmap的-p-參數(shù)進行全端口掃描但為了加快速度可以結(jié)合--min-rate。nmap -p- --min-rate 1000 192.168.56.105這個命令會相對快速地掃描所有65535個端口。等待片刻你會發(fā)現(xiàn)DC-9只開放了80端口。這很有意思一個只開Web服務(wù)的靶機往往意味著所有突破口都集中在網(wǎng)站應(yīng)用本身。第二步深度服務(wù)與版本探測針對開放的80端口我們需要進行更細致的掃描獲取Web服務(wù)器類型、版本甚至可能的目錄信息。nmap -sV -sC -p 80 192.168.56.105 -oA dc9_web_scan-sV: 探測服務(wù)版本。-sC: 使用默認的Nmap腳本進行更全面的檢查。-oA: 將結(jié)果以所有格式普通、XML、可讀輸出到文件方便后續(xù)查閱。掃描結(jié)果會顯示運行的是Apache httpd以及一些基本的HTTP頭信息。至此我們確定了唯一的攻擊入口運行在80端口的Web應(yīng)用。3. Web應(yīng)用滲透與SQL注入突破3.1 網(wǎng)站枚舉與功能點分析在瀏覽器中訪問http://192.168.56.105我們會看到一個名為“Jetstream”的酒店搜索頁面。它的功能很簡單通過城市名搜索酒店。作為滲透測試者我們看待每個輸入框的眼光都應(yīng)該是“懷疑的”。這個搜索框就是最典型的用戶輸入點也是SQL注入漏洞的高發(fā)區(qū)。首先進行常規(guī)的目錄枚舉看看有沒有隱藏的管理后臺、配置文件或備份文件??梢允褂胓obuster或dirb工具。gobuster dir -u http://192.168.56.105 -w /usr/share/wordlists/dirb/common.txt -x php,txt,html,bak這個掃描可能會發(fā)現(xiàn)一些如/admin、/config.php之類的目錄或文件但在DC-9中關(guān)鍵信息往往就在明面上。我們回到搜索功能嘗試輸入一個單引號‘進行最基本的注入測試。在搜索框輸入‘并提交觀察頁面反應(yīng)。如果頁面返回了數(shù)據(jù)庫錯誤如MySQL、SQLite的錯誤信息或者頁面布局出現(xiàn)異常沒有結(jié)果、空白頁那么存在SQL注入的可能性就極大。在DC-9中你會看到頁面返回了錯誤這證實了我們的猜想。3.2 SQL注入漏洞的手動利用與信息提取確認存在注入點后我們需要判斷注入類型字符型還是數(shù)字型以及可用的查詢方式。通過輸入1‘ and ‘1’’1和1‘ and ‘1’’2并觀察結(jié)果差異可以判斷這是字符型注入。接下來使用union select語句來提取數(shù)據(jù)。但首先要確定當前查詢的列數(shù)。使用order by語句進行猜測輸入‘ order by 1 -- -頁面正常輸入‘ order by 2 -- -頁面正常輸入‘ order by 3 -- -頁面正常輸入‘ order by 4 -- -頁面報錯這說明原始查詢返回了3列。-- -是SQL注釋符用于注釋掉后續(xù)的SQL代碼確保我們的注入語句語法正確?,F(xiàn)在我們可以構(gòu)造union查詢來獲取數(shù)據(jù)庫信息。首先查看當前數(shù)據(jù)庫和用戶‘ union select 1, database(), user() -- -提交后在頁面的某個位置可能是城市名、酒店名或地址欄你應(yīng)該能看到數(shù)據(jù)庫名和當前用戶。假設(shè)數(shù)據(jù)庫名為Staff。然后我們需要獲取數(shù)據(jù)庫中的表名。在MySQL中信息存儲在information_schema.tables里‘ union select 1, table_name, 3 from information_schema.tables where table_schema‘Staff’ -- -這條語句會列出Staff數(shù)據(jù)庫中的所有表。仔細查看結(jié)果你可能會發(fā)現(xiàn)兩個關(guān)鍵表StaffDetails和Users。Users表顯然更吸引人。接著獲取Users表的列名‘ union select 1, column_name, 3 from information_schema.columns where table_name‘Users’ -- -你會看到諸如id,Username,Password這樣的列名。勝利在望最后提取用戶名和密碼哈?!?union select 1, Username, Password from Users -- -頁面上會顯示所有用戶的用戶名和密碼很可能是MD5哈希。將這些信息復(fù)制保存下來。實操心得在實際手動注入時頁面可能不會把所有數(shù)據(jù)都美觀地顯示出來。有時數(shù)據(jù)會擠在一列或者只顯示第一條。你可以使用group_concat()函數(shù)將多行數(shù)據(jù)合并到一個字段中顯示例如‘ union select 1, group_concat(Username), group_concat(Password) from Users -- -。另外注意觀察頁面源代碼CtrlU有時數(shù)據(jù)會藏在HTML注釋或者某個隱藏的標簽屬性里前端沒有渲染出來而已。3.3 密碼破解與后臺登錄拿到MD5哈希密碼后我們需要破解它們??梢允褂迷诰€破解網(wǎng)站如cmd5.com但如果哈希值加了鹽或者比較復(fù)雜在線網(wǎng)站可能無法破解。更通用的方法是使用john或hashcat在本地進行破解。首先將用戶名和哈希保存到一個文件中格式為用戶名:哈希值例如admin:856f5de590ef37314e7c3bdf6f8a66dc user1:5f4dcc3b5aa765d61d8327deb882cf99 ...然后使用john進行破解john hashes.txt --wordlist/usr/share/wordlists/rockyou.txt --formatraw-md5rockyou.txt是一個常用的密碼字典。運氣好的話john會很快破解出部分弱密碼。在DC-9中你很可能成功破解出admin賬戶的密碼?,F(xiàn)在回想之前目錄掃描的結(jié)果或者嘗試常見的后臺路徑如http://192.168.56.105/admin.php或http://192.168.56.105/login.php。找到后臺登錄頁面使用破解得到的admin憑證登錄。成功進入后臺意味著我們突破了Web應(yīng)用的第一道防線獲得了更高級別的權(quán)限。4. 權(quán)限提升與端口敲門技術(shù)4.1 后臺功能審計與新的攻擊面發(fā)現(xiàn)進入后臺管理界面后不要急于到處點擊。首先系統(tǒng)地瀏覽每一個功能菜單用戶管理、文件管理、系統(tǒng)設(shè)置、日志查看等等。在DC-9的后臺你可能會發(fā)現(xiàn)一個“文件管理”或“查看日志”的功能它允許你讀取服務(wù)器上的文件。這就是一個本地文件包含LFI或路徑遍歷的漏洞點。嘗試讀取系統(tǒng)關(guān)鍵文件例如/etc/passwd。在文件查看的輸入框里嘗試輸入../../../../etc/passwd。如果成功你將看到系統(tǒng)用戶列表。仔細查看/etc/passwd文件除了常規(guī)的root,bin等用戶留意那些有登錄shell如/bin/bash或/bin/sh的用戶。你可能會發(fā)現(xiàn)一個不常見的用戶名例如fredf。同時在讀取其他文件如Web應(yīng)用配置文件、日志文件時可能會發(fā)現(xiàn)一些有趣的字符串或密碼提示。4.2 利用端口敲門技術(shù)開啟隱藏服務(wù)在審計后臺功能或讀取文件時你可能會發(fā)現(xiàn)一個關(guān)鍵的線索一段關(guān)于“端口敲門”的注釋或配置文件。端口敲門是一種通過向一系列特定端口發(fā)送連接請求“敲門”來觸發(fā)服務(wù)器打開另一個隱藏端口的技術(shù)。它本身是一種安全機制但配置不當或秘密泄露就會成為漏洞。假設(shè)你在某個文件里發(fā)現(xiàn)了這樣的序列7469, 8475, 9842。這意味著你需要按順序向靶機的這三個端口發(fā)送數(shù)據(jù)包如TCP SYN包之后一個原本關(guān)閉的端口比如SSH的22端口才會臨時打開。我們可以使用nmap或netcat來完成敲門。使用nmap的-p參數(shù)指定端口并用-Pn跳過主機發(fā)現(xiàn)因為端口是關(guān)閉的默認掃描會認為主機離線。nmap -p 7469,8475,9842 192.168.56.105 -Pn --max-retries 1 -T4這條命令會快速地向這三個端口發(fā)送探測包。或者使用netcatfor port in 7469 8475 9842; do nc -z 192.168.56.105 $port; sleep 1; done-z參數(shù)表示只進行掃描不發(fā)送數(shù)據(jù)。sleep 1是為了在兩次敲門之間稍有間隔符合一些敲門守護程序的預(yù)期。完成敲門序列后立即使用nmap掃描SSH端口22是否開放nmap -p 22 192.168.56.105如果發(fā)現(xiàn)22端口突然從filtered或closed狀態(tài)變?yōu)閛pen那么恭喜你敲門成功現(xiàn)在你獲得了通過SSH連接靶機的機會。4.3 SSH登錄與系統(tǒng)內(nèi)信息收集使用之前在/etc/passwd中發(fā)現(xiàn)的可能有shell的用戶名如fredf以及你在Web滲透階段通過文件包含找到的密碼可能藏在日志或配置里嘗試SSH登錄。ssh fredf192.168.56.105輸入密碼如果成功你就獲得了一個低權(quán)限的交互式shell。登錄后的第一件事是信息收集。查看當前用戶權(quán)限id sudo -lsudo -l命令至關(guān)重要它列出了當前用戶可以用sudo權(quán)限執(zhí)行的命令。在DC-9中你可能會發(fā)現(xiàn)用戶fredf可以以root身份無密碼運行一個文本編輯器命令例如/usr/bin/vi或者/usr/bin/nano。4.4 利用sudo權(quán)限完成最終提權(quán)如果能以root身份運行某些編輯器提權(quán)就變得非常簡單。這是因為像vi、nano、vim、less這類編輯器通??梢栽趦?nèi)部執(zhí)行系統(tǒng)命令。以vi為例執(zhí)行sudo /usr/bin/vi /tmp/test.txt。這會以root權(quán)限打開vi編輯器。在vi的命令模式下輸入:!bash或:sh然后按回車。這時vi會啟動一個新的shell。由于vi是以root權(quán)限運行的這個新啟動的shell也就擁有了root權(quán)限。輸入id命令確認你會看到uid0(root)。恭喜你已經(jīng)拿到了DC-9靶機的最高權(quán)限你可以查看/root目錄下的flag文件通常命名為root.txt或proof.txt作為通關(guān)的最終證明。注意事項利用編輯器提權(quán)是Linux系統(tǒng)提權(quán)中非常經(jīng)典的方法。除了vinano可以通過按下CtrlR然后輸入reset再按CtrlX來嘗試獲取shellless或more在查看文件時可以輸入!bash來執(zhí)行命令。關(guān)鍵在于sudo -l的列表任何允許以root身份運行且能交互或執(zhí)行外部命令的程序都可能成為提權(quán)的跳板。5. 完整攻擊鏈復(fù)盤與防御思考回顧整個DC-9的滲透過程它清晰地展示了一條從外部到內(nèi)部、從Web到系統(tǒng)的完整攻擊鏈信息收集通過網(wǎng)絡(luò)掃描確定唯一入口80端口Web服務(wù)。漏洞發(fā)現(xiàn)與利用對Web搜索功能進行SQL注入測試手動利用注入漏洞提取后臺管理員憑證。橫向移動利用破解的密碼登錄后臺發(fā)現(xiàn)文件讀取功能。信息深度挖掘通過文件包含漏洞讀取系統(tǒng)文件/etc/passwd發(fā)現(xiàn)系統(tǒng)用戶名和端口敲門序列。權(quán)限提升準備利用端口敲門技術(shù)開啟隱藏的SSH服務(wù)。系統(tǒng)權(quán)限獲取使用發(fā)現(xiàn)的用戶名和密碼通過SSH登錄利用配置不當?shù)膕udo規(guī)則如可root運行的vi完成最終提權(quán)。這個鏈條上的每一個環(huán)節(jié)都對應(yīng)著現(xiàn)實世界中一種常見的安全配置錯誤或漏洞SQL注入根本原因在于未對用戶輸入進行過濾和參數(shù)化查詢。弱密碼使用了強度不足或常見的密碼。不安全的文件操作后臺功能未對文件路徑進行嚴格校驗導(dǎo)致路徑遍歷。敏感信息泄露將端口敲門序列等敏感信息明文存儲在Web可訪問的位置。不當?shù)膕udo授權(quán)給普通用戶分配了不必要的、危險的sudo權(quán)限。對于防御者而言針對每個環(huán)節(jié)都有明確的加固措施使用預(yù)編譯語句Prepared Statements防御SQL注入強制實施強密碼策略并定期更換對所有用戶輸入進行嚴格的校驗和過濾避免在代碼或配置中硬編碼敏感信息遵循最小權(quán)限原則謹慎分配sudo權(quán)限并定期審計。6. 常見問題與排查技巧實錄在實戰(zhàn)和教學(xué)過程中我總結(jié)了一些大家容易遇到的問題和解決方法Q1: Nmap掃描不到靶機IP怎么辦A1: 首先確認靶機已啟動完成。檢查虛擬機的網(wǎng)絡(luò)設(shè)置確保攻擊機和靶機在同一網(wǎng)絡(luò)模式如僅主機模式且網(wǎng)段相同。可以嘗試在靶機控制臺手動輸入ip addr或ifconfig查看其IP。在Kali上也可以使用arp-scan -l進行更底層的發(fā)現(xiàn)。Q2: SQL注入時union查詢的數(shù)據(jù)不顯示在頁面上怎么辦A2: 這是非常常見的情況。首先檢查你的注入語句語法是否正確注釋符-- -后面是否有空格。其次嘗試改變union select后各個字段的位置因為頁面可能只渲染其中某一列。最重要的是一定要查看網(wǎng)頁源代碼。數(shù)據(jù)很可能被成功查詢出來但前端腳本沒有將其顯示在可視區(qū)域而是放在了HTML注釋、隱藏的input標簽value屬性或者某個div的>

相關(guān)新聞

089、LVGL基礎(chǔ)控件:按鈕矩陣(Btnmatrix)

089、LVGL基礎(chǔ)控件:按鈕矩陣(Btnmatrix)

LVGL基礎(chǔ)控件:按鈕矩陣(Btnmatrix) 上周調(diào)試一個智能家居面板項目,客戶要求在一屏內(nèi)顯示16個場景快捷鍵,每個按鍵還要支持長按觸發(fā)配置。我第一反應(yīng)是用16個lv_btn堆Grid布局,結(jié)果內(nèi)存直接爆了——STM32H743的RAM被吃掉一大塊,界面還卡頓。后來換成Btnmatrix,一個控件…

2026/7/29 15:47:23 閱讀更多
088、LVGL選項卡切換與內(nèi)容管理

088、LVGL選項卡切換與內(nèi)容管理

LVGL選項卡切換與內(nèi)容管理 從一次詭異的界面卡死說起 上周調(diào)試一塊基于STM32F429的工控屏,客戶反饋說切換選項卡時偶爾會卡死,復(fù)位后又能正常工作。我盯著邏輯分析儀看了半天,發(fā)現(xiàn)每次卡死前都伴隨著一次“快速雙擊”選項卡標簽——用戶手速太快,在動畫還沒結(jié)束時就觸發(fā)了…

2026/7/29 15:47:23 閱讀更多
LeetCode 76題解析:滑動窗口與哈希表實現(xiàn)最小覆蓋子串

LeetCode 76題解析:滑動窗口與哈希表實現(xiàn)最小覆蓋子串

1. 題目解析與核心思路 LeetCode 76題"最小覆蓋子串"是算法面試中的經(jīng)典高頻題目,也是Hot100題庫中的必刷題目。題目要求給定一個字符串S和一個字符串T,在S中找出包含T所有字符的最短連續(xù)子串。這道題完美結(jié)合了滑動窗口和哈希表兩大核心算法思…

2026/7/29 15:37:18 閱讀更多
注銷登報哪家可靠?正規(guī)線上辦理注銷登報流程指南

注銷登報哪家可靠?正規(guī)線上辦理注銷登報流程指南

截至2026年7月,河南登報遺失聲明沒有政府統(tǒng)一定價。當前線上渠道參考價:全國公開發(fā)行報紙120—160元/條,市級以上公開發(fā)行報紙160—200元/條;超出套餐字數(shù)按2—5元/字計費。鄭州、洛陽、開封、南陽等地的總價,主要受報…

2026/7/29 16:37:24 閱讀更多
【單片機課設(shè)畢設(shè)項目】基于 STM32 的流量聲光報警與繼電器控制系統(tǒng)實現(xiàn),基于嵌入式硬件的多模式流量監(jiān)測控制器設(shè)計(010401)

【單片機課設(shè)畢設(shè)項目】基于 STM32 的流量聲光報警與繼電器控制系統(tǒng)實現(xiàn),基于嵌入式硬件的多模式流量監(jiān)測控制器設(shè)計(010401)

博主介紹:??碼農(nóng)一枚 ,專注于大學(xué)生項目實戰(zhàn)開發(fā)、講解和畢業(yè)🚢文撰寫修改等。全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺優(yōu)質(zhì)作者、專注于Java、小程序技術(shù)領(lǐng)域和畢業(yè)項目實戰(zhàn) ??技術(shù)范圍:&am…

2026/7/29 16:37:24 閱讀更多
企業(yè)架構(gòu)管理軟件和畫架構(gòu)圖工具有什么區(qū)別?

企業(yè)架構(gòu)管理軟件和畫架構(gòu)圖工具有什么區(qū)別?

畫架構(gòu)圖工具解決“這張圖怎么畫”,企業(yè)架構(gòu)管理軟件解決“對象、關(guān)系和治理過程怎么長期維護”。一次方案討論用 Visio、ProcessOn 或?qū)I(yè)建模工具通常夠用;當同一對象要跨視圖復(fù)用,多部門共同維護,系統(tǒng)變更還要做影響分析和評審…

2026/7/29 16:27:24 閱讀更多
面試官大笑:“一個任務(wù)拆給 5 個 Subagent 并行跑,不比 1 個快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個任務(wù)拆給 5 個 Subagent 并行跑,不比 1 個快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個月,我在重構(gòu) AlgoMooc 網(wǎng)站過程中,發(fā)現(xiàn)一個問題:在 Claude Code 里把一個任務(wù)拆給 5 個 Subagent 并行跑,結(jié)果可能比 1 個 agent 從頭干到尾還慢? 大多數(shù)人的第一反應(yīng)是反過來的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號與動畫渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號與動畫渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂應(yīng)用,模擬了真實擲骰子的過程。應(yīng)用投擲兩個骰子(六面標準骰),使用 Unicode 骰面符號直觀展示每個骰子的點數(shù),并伴有快速滾動的動畫效果。…

2026/7/29 0:15:24 閱讀更多