Oopsie【hack the box】

Oopsie

解題流程
文件上傳

首先開啟機器后,我們先使用 nmap -sC -SV來掃描一下IP地址:

-sC:使用 Nmap 的默認腳本掃描(通常是 NSE 腳本,Nmap Scripting Engine)。這個選項會自動執行一系列常見的腳本,進行更為詳細的探測,比如檢查服務版本、漏洞掃描、系統信息等。

-sV:探測服務版本。這會使 Nmap 在掃描時嘗試識別目標主機上運行的服務及其版本信息。

image-20250108134914420

可以看到開放了兩個端口:22和80端口,既然開放了80端口,說明我們可以使用web瀏覽器進行訪問。

那么我們此時使用kali自帶的火狐瀏覽器進行訪問,訪問對應的IP地址,顯示頁面如下:

image-20250108135513872

頁面繼續往下劃,我們看到了這樣的一段話,我們需要登錄才能訪問這個訪問:

image-20250108135643408

那么此時我們就可以猜到這個頁面應該應該是存在子目錄能夠進行登錄操作的,那么此時我們就需要找到這個子目錄。此時我們我們使用burpsuit自帶的抓包功能進行看一下頁面的子目錄有哪些,由于burpsuit是kali自帶的,操作起來也方便。為了方便操作,這里我直接打開burpsuit自帶的瀏覽器:

image-20250108140437674

輸入目標IP之后,burpsuit可以不進行攔截操作,因為burpsuit會自動收集打開過程中的數據包,就在旁邊的 HTTP history中,抓到的數據包如下所示:

image-20250108140751653

image-20250108141717291

此時我們看到有個 cdn-cgi/login的目錄,很像我們需要的登錄目錄,那么此時我們訪問一下這個目錄,顯示頁面如下,果真就是我們想要的登錄窗口:

image-20250108141246160

嘗試了一些弱口令爆破之后,沒有成功,發現下方還有一個 Login as Guest的選項,我們可以當做游客進行登錄:

image-20250108141948550

進入之后,我們就可以看到游客界面的導航欄了

image-20250108142115771

查看導航欄,發現有一個 uploads的欄目,難道可以進行文件上傳嗎?我們點進去看看,發現需要超級管理員用戶才可以訪問:

image-20250108142456089

那么我們就需要想辦法來提升用戶的權限,有一個方法就是右鍵頁面,然后打開檢查元素:

image-20250108145000214

然后我們就可以查看用戶的cookie信息,我們觀察到,有role=guest 和 user=2233。我們可以假設,如果我們以某種方式知道超級用戶的數量admin 作為 user 變量,我們也許能夠訪問上傳頁面:

image-20250108145134467

然后返回剛才的 Account欄目信息,根據上面的url信息,發現此時發id=2,那么我們嘗試一下id=1會發生什么?

image-20250108145658983

修改id=1,我們成功知道了adminid值,此時我們就可以嘗試修改一下cookie值來嘗試提高用戶的權限:

image-20250108150114631

此時我們修改了cookie的值,然后刷新一下頁面,發現我們已經擁有了上傳文件的權限:

image-20250108150303723

現在我們已經可以訪問上傳表單了,我們可以嘗試上傳 PHP 反向 shell。對于本題,我們將使用 /webshells/php/php-reverse-shell.php,這里提供了下載地址,然后將該PHP文件上傳:

image-20250108185051739

好了到了這一步,現在我們需要找到剛剛上傳的php文件所在的目錄,我們可以自己猜測目錄位置,這里我使用gobuster來暴力破解一下目錄名:

image-20250108190230114

gobuster一下子就找到了 uploads目錄,然后嘗試看一下該目錄的內容,發現我們沒有查看該目錄的權限,但是我們可以嘗試訪問一下我們上傳到該目錄的文件:

image-20250108190402053

反彈shell

首先,我們建立一個 netcat的連接,如下圖所示:

image-20250108190654616

然后我們在網頁中訪問我們上傳的文件的地址:

image-20250109173920415

然后就可以發現我們成功監聽到了(這里需要注意的是,我們在此過程的每個頁面訪問到需要修改cookie值,包括上傳和重新訪問,否則監聽不到嗚嗚嗚,所以推薦上傳的過程中每次都使用burpsuit修改一下cookie值):

image-20250109173836977

好,現在我們我們成功拿到shell了,現在為了使頁面看起來更加美觀,我們使用下述命令:

python3 -c 'import pty;pty.spawn("/bin/bash")'

image-20250109174755643

提升權限

接下來,我們查看一下 .php的文件后綴,看是否有敏感信息泄露,輸入命令 find / -type f -name *.php 2>/dev/null

image-20250109175410979

作為用戶 www-data,該角色對系統的訪問受到限制。由于網站正在使用 PHP 和 SQL,我們可以進一步枚舉可能泄露的 Web 目錄
或配置錯誤。經過一番搜索,我們可以在 /var/www/html/cdn-cgi/login目錄下找到一些 php 文件。我們可以手動查看所有頁面的源代碼,也可以嘗試搜索使用 grep 工具可以得到有趣的字符串。輸入命令:cat * | grep -i passw*

image-20250109180211360

我們確實得到了密碼:MEGACORP_4dm1n!! 。我們可以通過以下方式檢查系統上的可用用戶讀取 /etc/passwd 文件,以便我們可以嘗試重用此密碼,輸入 cat /etc/passwd

image-20250109180510975

發現一個可用用戶robert,此時我們切換到robert用戶,結果發現登錄不上…:

怎么判斷用戶是否可用?

格式:用戶名:密碼:用戶ID:組ID:描述信息:家目錄:登錄Shell

檢查 UID 是否大于等于 1000。

檢查登錄Shell 是否有效(非 /sbin/nologin/bin/false)。

檢查用戶的家目錄是否存在。

image-20250109181642729

那我們再找找,發現在db.php中找到了密碼:

image-20250109181817936

趕緊使用這個密碼試一下,沒有問題,這個密碼是正確的:

image-20250109181940628

然后我們在該用戶的主目錄找到了一個user.txt文件,我們查看一下,發現了第一個flag:

好了現在還有一個flag應該是在root用戶中,我們嘗試提權來查看一下。

在運行任何權限提升或枚舉腳本之前,讓我們檢查一下用于提升權限的基本命令sudoid 等權限:

image-20250109182857304

我們觀察到用戶 robertbugtracker 組的一部分。讓我們嘗試看看里面是否有任何二進制文件,輸入命令:find / -group bugtracker 2>/dev/null

image-20250109183221930

我們發現一個名為 bugtracker 的文件。我們檢查它的權限和文件類型ls -la /usr/bin/bugtracker && file /usr/bin/bugtracker

image-20250109183527856

該二進制文件上設置了一個 suid,這是一個很有用的利用路徑。

SUID 是一個強大的工具,它允許文件以文件所有者(通常是 root)身份執行,從而使某些需要特權的程序能夠由普通用戶執行。

當一個文件具有 SUID 權限時,無論哪個用戶執行該文件,該文件將以文件所有者的身份運行,而不是以執行文件的用戶身份運行。

如果文件的所有者是 root 用戶,那么任何人執行該文件時,都會以 root 用戶的身份來執行。

然后我們運行該應用程序觀察其行為:

image-20250109184736056

該工具接受用戶輸入作為將使用 cat 命令讀取的文件名,但是,它沒有指定文件 cat 的完整路徑,因此我們可以利用它。
我們將導航到 /tmp 目錄并創建一個名為 cat 的文件,其中包含以下內容:

/bin/sh

然后我們設置改文件的執行權限:

chmod +x cat

為了利用這一點,我們可以將 /tmp 目錄添加到 PATH 環境變量中,/tmp 目錄將被添加到 PATH 變量的最前面:

export PATH=/tmp:$PATH

然后我們檢查一下環境變量:

echo $PATH

image-20250109185853751

然后我們再次執行一下該二進制文件,提權成功:

image-20250109190031353

然后我們找到 /root目錄下的 root.txt,由于cat查看不了,那我們使用more來查看一下:

image-20250109190454590

最后成功獲取root用戶的flag。

題目答案
task 1

With what kind of tool can intercept web traffic?(用什么工具可以攔截網絡流量?)

答案:proxy

task 2

What is the path to the directory on the webserver that returns a login page?(返回登錄頁面的網絡服務器上的目錄路徑是什么?)

答案:/cdn-cgi/login

task 3

What can be modified in Firefox to get access to the upload page?(可以在 Firefox 中修改哪些內容才能訪問上傳頁面?)

答案:cookie

task 4

What is the access ID of the admin user?(管理員用戶的訪問 ID 是什么?)

答案:34322

task 5

On uploading a file, what directory does that file appear in on the server?(上傳文件時,該文件出現在服務器上的哪個目錄中?)

答案:/uploads

task 6

What is the file that contains the password that is shared with the robert user?(包含與 robert 用戶共享的密碼的文件是什么?)

答案:db.php

task 7

What executible is run with the option “-group bugtracker” to identify all files owned by the bugtracker group?(使用選項“-group bugtracker”運行什么可執行文件來識別 bugtracker 組擁有的所有文件?)

答案:find

task 8

Regardless of which user starts running the bugtracker executable, what’s user privileges will use to run?(無論哪個用戶開始運行 bugtracker 可執行文件,都將使用什么用戶權限來運行?)

答案:root

task 9

What SUID stands for?(SUID 代表什么?)

答案:Set owner User ID

task 10

What is the name of the executable being called in an insecure manner?(以不安全方式調用的可執行文件的名稱是什么?)

答案:cat

task 11

Submit user flag(提交用戶flag)

答案:f2c74ee8db7983851ab2a96a44eb7981

task 12

Submit root flag(提交root的flag)

答案:af13b0bee69f8a877c3faf667f7beacf

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

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

相關文章

單片機-定時器中斷

1、相關知識 振蕩周期1/12us; //振蕩周期又稱 S周期或時鐘周期(晶振周期或外加振蕩周期)。 狀態周期1/6us; 機器周期1us; 指令周期1~4us; ①51單片機有兩組定時器/計數器,因為既可以定時,又可以計數,故稱之為定時器…

【藍牙】win11 筆記本電腦連接 hc-06

文章目錄 前言步驟 前言 使用電腦通過藍牙添加串口 步驟 設置 -> 藍牙和其他設備 點擊 顯示更多設備 更多藍牙設置 COM 端口 -> 添加 有可能出現卡頓,等待一會 傳出 -> 瀏覽 點擊添加 hc-06,如果沒有則點擊 再次搜索 確定 添加成…

Android切換語言不退出App

1.需求 實現用戶選擇語言(未點擊下一步),更新當前界面UI,點擊下一步后,更新App的語言,并進行保存。 實現目標: 1.設置App的語言,本地進行保存 2.updateResources更新本地語言配置…

一鍵獲取Linux主機配置信息shell腳本,含網卡詳情,網卡綁定等

cat > /tmp/get_os_info.sh <<"EOF"#!/bin/bashexport LANG=en_US.UTF-8# 如果 cat /proc/1/cgroup | grep docker | wc -l 大于0 或 systemd-detect-virt 返回 docker,則為 docker容器,# 如果 virt-what 返回 kvm或vmware或hyperv或xen、xen-hvm、lxc 或…

2 XDMA IP中斷

三種中斷 1. Legacy 定義&#xff1a;Legacy 中斷是傳統的中斷處理方式&#xff0c;使用物理中斷線&#xff08;例如 IRQ&#xff09;來傳遞中斷信號。缺點&#xff1a; 中斷線數量有限&#xff0c;通常為 16 條&#xff0c;限制了可連接設備的數量。中斷處理可能會導致中斷風…

【算法】時間復雜度以及O(N^2)的排序

目錄 1.常數時間的操作 2.時間復雜度 2.1.以選擇排序為例 2.2.O(n^2)從何而來 2.3.冒泡排序 2.3.1.抑或運算 2.4.插入排序 3.二分法 3.1.局部最小 4.遞歸 4.1.遞歸行為時間復雜度的估計 1.常數時間的操作 一個操作如果和樣本的數據量無關&#xff0c;每次都是固定時…

2021 年 3 月青少年軟編等考 C 語言五級真題解析

目錄 T1. 紅與黑思路分析T2. 密室逃脫思路分析T3. 求逆序對數思路分析T4. 最小新整數思路分析T1. 紅與黑 有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰的黑色瓷磚移動。請寫一個程序,計算你總共能夠到達多少塊黑色的…

C# 或 .NetCore 如何使用 NPOI 導出圖片到 Excel 文件

今天在本文中&#xff0c;我們將嘗試使用NPOI庫將圖像插入到 Excel 文件的特定位置。請將以下邏輯添加到您的寫作方法中&#xff0c;在 Excel 文件中添加圖像&#xff08;JPEG、PNG&#xff09;,我已經有一個示例 jpeg 文件 - Read-write-excel-npoi.jpg &#xff0c;我們將嘗試…

【學習筆記】理解深度學習的基礎:機器學習

1. 機器學習基礎 1.1 機器學習的定義與重要性 定義&#xff1a;深度學習是機器學習的一種特定形式。為了深入理解深度學習&#xff0c;必須牢固掌握機器學習的基本原理。機器學習算法是一種能夠從數據中學習的算法&#xff0c;通過經驗E在任務T上提高性能度量P&#xff08;Mi…

Observability:將 OpenTelemetry 添加到你的 Flask 應用程序

作者&#xff1a;來自 Elastic jessgarson 待辦事項列表可以幫助管理與假期計劃相關的所有購物和任務。使用 Flask&#xff0c;你可以輕松創建待辦事項列表應用程序&#xff0c;并使用 Elastic 作為遙測后端&#xff0c;通過 OpenTelemetry 對其進行監控。 Flask 是一個輕量級…

使用Matplotlib顯示中文的方法

1 問題提出 使用圖1所示的代碼進行matplotlib繪圖時&#xff0c;因為其默認不支持中文&#xff0c;此時無法顯示正確內容&#xff0c;如圖2所示。 圖1 matplotlib繪圖繪圖代碼 圖2 matplotlib無法顯示中文 2 問題解決 2.1 設置全局字體 在圖1所示的代碼中&#xff0c;第13…

詳解opencv resize之INTER_LINEAR和INTER_AREA

一。先簡單介紹一下resize的用法 src&#xff1a;輸入圖&#xff0c; dst&#xff1a;輸出圖 dsize&#xff1a;輸出圖的寬高&#xff0c;如果dsize不為空&#xff08;即寬高都不是0&#xff09;&#xff0c;則以dsize為準進行resize。 fx, fy是放大縮小的比例&#xff0c;是…

UnityDemo-TheBrave-制作筆記

這是我跟著b站up主MStudio的視頻學習制作的&#xff0c;大體上沒有去做一些更新的東西&#xff0c;這里只是一個總的總結。在文章的最后&#xff0c;我會放上可以游玩該游戲的鏈接和exe可執行文件&#xff0c;不過沒有對游戲內容進行什么加工&#xff0c;只有基本的功能實現罷了…

使用LSTM預測股票收盤價

在金融數據預測中&#xff0c;LSTM&#xff08;長短期記憶網絡&#xff09;憑借其在時間序列數據建模中的優勢&#xff0c;成為了分析股票價格趨勢的熱門選擇。本篇博客將以完整的代碼實現為例&#xff0c;展示如何利用LSTM網絡對股票收盤價進行預測&#xff0c;并從數據處理到…

模擬SpringIOCAOP

一、IOC容器 Ioc負責創建&#xff0c;管理實例&#xff0c;向使用者提供實例&#xff0c;ioc就像一個工廠一樣&#xff0c;稱之為Bean工廠 1.1 Bean工廠的作用 先分析一下Bean工廠應具備的行為 1、需要一個獲取實例的方法&#xff0c;根據一個參數獲取對應的實例 getBean(…

預編譯SQL

預編譯SQL 預編譯SQL是指在數據庫應用程序中&#xff0c;SQL語句在執行之前已經通過某種機制&#xff08;如預編譯器&#xff09;進行了解析、優化和準備&#xff0c;使得實際執行時可以直接使用優化后的執行計劃&#xff0c;而不需要每次都重新解析和編譯。這么說可能有一些抽…

Centos9 + Docker 安裝 MySQL8.4.0 + 定時備份數據庫到本地

Centos9 + Docker 安裝 MySQL8.4.0 + 定時備份數據庫到本地 創建目錄,創建配置文件啟動容器命令定時備份MySQL執行腳本Linux每日定時任務命令文件內參數其他時間參數AT一次性定時任務創建目錄,創建配置文件 $ mkdir -p /opt/mysql/conf$ vim /opt/mysql/conf/my.cnf[mysql] #…

軟件測試預備知識⑥—搭建Web服務器

在軟件測試的廣闊領域中&#xff0c;搭建Web服務器是一項極為關鍵的技能。它不僅有助于模擬真實的應用環境&#xff0c;方便我們對Web應用進行全面且深入的測試&#xff0c;還能讓測試人員更好地掌控測試場景&#xff0c;提升測試效率與質量。接下來&#xff0c;讓我們一同深入…

計算機視覺算法實戰——打電話行為檢測

?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連? ??????? ??????????????? ?????? ? 1. 引言?? 隨著智能手機的普及&#xff0c;打電話行為檢測成為了計算機視…

事務的隔離級別和MDL

文章目錄 說明不同隔離級別可能發生的現象關鍵現象解釋MDL&#xff08;元數據鎖&#xff0c;Metadata Lock&#xff09;MDL 的作用MDL 的工作原理MDL 鎖的常見場景如何避免 MDL 阻塞 說明 本文章由大模型對話整理而來&#xff0c;如果有錯誤之處&#xff0c;請在評論區留言指正…