php-cgi參數注入攻擊經歷淺談

起因

阿里云服務器再次警告出現挖礦程序。上一次服務器被攻擊后,怕有惡意程序殘留,第一時間重裝了系統,也沒有詳查攻擊入口。不過事后還是做了一些防范,這臺留作公網訪問的服務器上并未保留業務數據,只作為中轉使用。因而這次也就沒什么擔心的,準備詳細研究一下攻擊入口在哪里。

過程

1. 查看檢測出的挖礦程序php_cci.exe。幾乎是第一眼就看到下邊這個cn.php文件。exe文件干了啥我不清楚,但是php是腳本文件,可以放心大膽地打開看看。

????

腳本內容就不貼出來了,以下是deepseek對腳本的部分分析:

????

2. 推測攻擊方式。根據兩個文件的修改時間,我大概判斷php_cci.exe是通過cn.php下載至本地的。那么cn.php是如何來的呢?這臺服務器只對公網開放了遠程連接及web端口,上次被攻擊時阿里云有短信提示遠程連接在異地登錄,這次沒有,而且可疑文件是php腳本,所以幾乎可以斷定就是web漏洞了。

3. 鎖定攻擊入口。確定是web漏洞后,便直接查看apache目錄下的access.log,檢查可疑請求,重點是cn.php文件創建時間左右的POST請求。果不其然,有一條對php-cgi.exe的訪問請求,一看就不是什么正經請求。

完整請求如下:

POST /php-cgi/php-cgi.exe?%ADd+cgi.force_redirect%3D0+%ADd+disable_functions%3D%22%22+%ADd+allow_url_include%3D1+%ADd+auto_prepend_file%3Dphp://input HTTP/1.1" 500 638 "-" "python-requests/2.27.1

這是一條典型的php-cgi參數注入攻擊。雖然服務器返回了500,但仍然可能被感染了。

4. 本地構造請求復現攻擊。我用python構造請求,POST內容為將當前時間寫入桌面上一個文件中:

<?phpfile_put_contents("C:/Users/Administrator/Desktop/error.txt", date('Y-m-d H:i:s'));?>

當然,中間是經歷了一些挫折的,但最終確實攻擊成功了。

5. 修改配置防范此類攻擊。查詢了資料也問了AI,嘗試了幾種方案效果不是很好。最終還是簡單粗暴地對php-cgi.exe的訪問進行了限制,既能防范攻擊也不影響正常業務請求:

結論

我們往往只關注自己了解的領域或者知識,將工作重心放在業務層面。然而,“后勤保障團隊”雖不光鮮亮麗,仍然不可忽略,就像有些程序員不屑于寫注釋和文檔,遲早有一天會為自己的高傲買單,這時的花費可能遠超組建“后勤保障團隊”。

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

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

相關文章

自動駕駛中的實時挑戰:如何優化車輛動力學模型

自動駕駛中的實時優化:自行車模型與雙軌模型的計算復雜度權衡 在自動駕駛領域,車輛動力學建模是實現精準控制和路徑規劃的關鍵。自行車模型和雙軌模型作為兩種主流的建模方法,在實時性需求下如何平衡計算復雜度與精確度,是工程師們必須面對的挑戰。本文將深入探討這兩種模…

Hybrid 架構的概念,以及如何優化Hybrid 通信方案,提升頁面加載速度和渲染性能

1. 什么是 Hybrid 架構&#xff1f; Hybrid&#xff08;混合&#xff09;架構是指 結合 Web 技術和 Native&#xff08;原生&#xff09;技術 的移動應用開發模式&#xff0c;通常由以下部分組成&#xff1a; Web 部分&#xff1a;使用 HTML、CSS、JavaScript&#xff08;或前…

關于類模板STL中vector容器的運用和智能指針的實現

代碼題&#xff1a;使用vector實現一個簡單的本地注冊登錄系統 注冊&#xff1a;將賬號密碼存入vector里面&#xff0c;注意防重復判斷 登錄&#xff1a;判斷登錄的賬號密碼是否正確 #include <iostream> #include <cstring> #include <cstdlib> #in…

OpenCV 從入門到精通(day_04)

1. 繪制圖像輪廓 1.1 什么是輪廓 輪廓是一系列相連的點組成的曲線&#xff0c;代表了物體的基本外形。相對于邊緣&#xff0c;輪廓是連續的&#xff0c;邊緣不一定連續&#xff0c;如下圖所示。其實邊緣主要是作為圖像的特征使用&#xff0c;比如可以用邊緣特征可以區分臉和手…

Python錯誤分析與調試

在Python編程的過程中&#xff0c;我們難免會遇到各種各樣的錯誤&#xff0c;而有效地分析和調試這些錯誤&#xff0c;能讓我們的代碼快速恢復正常運行&#xff0c;今天就來和大家聊聊Python中錯誤分析與調試的相關內容。 錯誤分析 Python中的錯誤大致可以分為語法錯誤和邏…

Browser-use:基于 Python 的智能瀏覽器自動化 AI 工具調研與實戰

Browser-use&#xff1a;基于 Python 的智能瀏覽器自動化 AI 工具調研與實戰 一、概述 Browser-use 是一個旨在將 AI “智能體”&#xff08;Agents&#xff09;與真實瀏覽器進行交互的 Python 庫&#xff0c;可以輕松實現瀏覽器自動化。在配合 LLM&#xff08;如 GPT 系列&a…

網絡空間安全(51)郵件函數漏洞

前言 郵件函數漏洞&#xff0c;特別是在PHP環境中使用mail()函數時&#xff0c;是一個重要的安全問題。 一、概述 在PHP中&#xff0c;mail()函數是一個用于發送電子郵件的內置函數。其函數原型為&#xff1a; bool mail ( string $to , string $subject , string $message [, …

LLaMA-Factory 數據集成從入門到精通

一、框架概述 LLaMA-Factory 框架通過Alpaca/Sharegpt雙格式體系實現多任務適配&#xff0c;其中Alpaca專注結構化指令微調&#xff08;含SFT/DPO/預訓練&#xff09;&#xff0c;Sharegpt支持多角色對話及多模態數據集成。核心配置依托 dataset_info.json 實現數據源映射、格…

如何根據設計稿進行移動端適配:全面詳解

如何根據設計稿進行移動端適配&#xff1a;全面詳解 文章目錄 如何根據設計稿進行移動端適配&#xff1a;全面詳解1. **理解設計稿**1.1 設計稿的尺寸1.2 設計稿的單位 2. **移動端適配的核心技術**2.1 使用 viewport 元標簽2.1.1 代碼示例2.1.2 參數說明 2.2 使用相對單位2.2.…

07-Spring Boot 自動配置原理全解析

Spring Boot 自動配置原理全解析&#xff08;EnableAutoConfiguration 源碼追蹤&#xff09; Spring Boot 之所以能大幅簡化配置&#xff0c;核心就在于它的 自動配置機制&#xff0c;而這一機制背后主要依賴于 EnableAutoConfiguration 注解。本文將從使用、源碼、常見問題及…

前端如何檢測項目中新版本的發布?

前言 你是否也曾遇到過這種情況&#xff0c;每次發完版之后都還會有用戶反饋問題沒有被修復&#xff0c;一頓排查之后發現他用的還是舊的版本。 用戶&#xff1a;在 XX 頁面 XX 字段還是不展示 我&#xff1a;刷新下頁面 用戶&#xff1a;刷新了啊 我&#xff1a;強刷一下&…

Vue 項目使用 pdf.js 及 Elasticpdf 教程

摘要&#xff1a;本文章介紹如何在 Vue 中使用 pdf.js 及基于 pdf.js 的批注開發包 Elasticpdf。簡單 5 步可完成集成部署&#xff0c;包括數據的云端同步&#xff0c;示例代碼完善且簡單&#xff0c;文末有集成代碼分享。 1. 工具庫介紹與 Demo 1.1 代碼包結構 ElasticPDF基…

聊聊Spring AI的ChromaVectorStore

序 本文主要研究一下Spring AI的ChromaVectorStore 示例 pom.xml <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-vector-store-chroma</artifactId></dependency>配置 spring:ai:vectorstore:…

整數編碼 - 華為OD統一考試(A卷、Java)

題目描述 實現一種整數編碼方法,使得待編碼的數字越小,編碼后所占用的字節數越小。 編碼規則如下: 編碼時7位一組,每個字節的低7位用于存儲待編碼數字的補碼。字節的最高位表示后續是否還有字節,置1表示后面還有更多的字節,置0表示當前字節為最后一個字節。采用小端序編…

Linux 遞歸查找并刪除目錄下的文件

在 Linux 中&#xff0c;可以使用 find 命令遞歸查找并刪除目錄下的文件 1、示例命令 find /path/to/directory -type f -name "filename_pattern" -exec rm -f {} 2、參數說明 /path/to/directory&#xff1a;要查找的目標目錄type f&#xff1a;表示查找文件&am…

【筆記】VS中C#類庫項目引用另一個類庫項目的方法

VS中C#類庫項目引用另一個類庫項目的方法 在 C# 開發中&#xff0c;有時我們需要在一個類庫項目中引用另一個類庫項目&#xff0c;但另一個項目可能尚未編譯成 DLL。在這種情況下&#xff0c;我們仍然可以通過 Visual Studio 提供的項目引用功能進行依賴管理。 &#x1f3af; …

第五講(下)| string類的模擬實現

string類的模擬實現 一、Member constants&#xff08;成員常數&#xff09;npos 二、Member functions&#xff08;成員函數&#xff09;constructor&#xff08;構造&#xff09;、destructor&#xff08;析構&#xff09;、c_str遍歷1 &#xff1a;Iterators遍歷2&#xff1…

洛谷題單3-P4956 [COCI 2017 2018 #6] Davor-python-流程圖重構

題目描述 在征服南極之后&#xff0c;Davor 開始了一項新的挑戰。下一步是在西伯利亞、格林蘭、挪威的北極圈遠征。 他將在 2018 年 12 月 31 日開始出發&#xff0c;在這之前需要一共籌集 n 元錢。 他打算在每個星期一籌集 x 元&#xff0c;星期二籌集 xk 元&#xff0c;……

【正點原子】如何設置 ATK-DLMP135 開發板 eth0 的開機默認 IP 地址

開機就想讓 eth0 乖乖用靜態 IP&#xff1f;別再被 DHCP 搶走地址了&#xff01; 三步教你徹底掌控 ATK-DLMP135 的網絡啟動配置&#xff0c;簡單粗暴&#xff0c;實測有效&#xff01; 正點原子STM32MP135開發板Linux核心板嵌入式ARM雙千兆以太網CAN 1. 刪除 dhcpcd 自動獲取…

以UE5第三方插件庫為基礎,編寫自己的第三方庫插件,并且能夠在運行時復制.dll

首先&#xff0c;創建一個空白的C 項目&#xff0c;創建第三方插件庫。如下圖所示 編譯自己的.Dll 和.lib 庫&#xff0c;打開.sln 如下圖 ExampleLibrary.h 的代碼如下 #if defined _WIN32 || defined _WIN64 #define EXAMPLELIBRARY_IMPORT __declspec(dllimport) #elif d…