滲透測試中 phpinfo() 的信息利用分析

在滲透測試中,phpinfo() 是一個非常常見卻極具價值的信息泄露點。這個函數的本意是向開發者展示當前 PHP 環境的詳細配置情況,包括編譯選項、擴展模塊、環境變量、系統信息、目錄路徑等。然而一旦該頁面被暴露到互聯網上,攻擊者便可以借此收集大量目標系統的重要信息,從而為后續的漏洞利用、權限提升、提權橫向等行為打下基礎。

本文將從實戰角度分析 phpinfo() 頁面中各類信息的滲透利用方式。


一、系統與服務器環境信息

phpinfo() 輸出的頂部,可以看到如下關鍵字段:

字段示例值利用意義
SystemLinux kali 5.10.0-kali-amd64 x86_64操作系統類型、內核版本、架構信息,可用于匹配已知提權漏洞
Server APIApache 2.0 Handler / FPM/FastCGI判斷 Web 服務類型,結合特定攻擊向量(如 PHP-FPM RCE)
Build DateFeb 10 2023判斷是否為老舊版本,輔助漏洞判斷
Architecturex86_64匹配 Payload 構造、Shellcode 架構

這些信息可以幫助攻擊者判斷操作系統類型與服務器架構,以便選擇合適的利用模塊或提權工具。


二、PHP 版本信息

  • PHP Version: phpinfo() 明確顯示 PHP 的版本號(如 7.4.38.1.12)。

  • 攻擊者可以據此查找該版本存在的公開漏洞(如:

    • CVE-2019-11043:PHP-FPM 任意代碼執行
    • CVE-2021-21703:路徑解析問題引發信息泄露
    • CVE-2021-32610:反序列化漏洞

對于已知漏洞版本,攻擊者可進行漏洞驗證與構造 RCE 利用鏈。


三、已加載模塊與擴展信息

phpinfo() 輸出中會列出所有當前加載的擴展,如:

  • curl, mbstring, openssl, gd, imap, mysqli, pdo_mysql, phar, xml, zip 等。

利用方式包括:

  • Phar 支持存在時:可能通過文件包含 + phar:// 協議實現反序列化攻擊。
  • IMAP/POP3 擴展開啟時:可構造 SSRF 請求繞過 URL 限制。
  • 數據庫擴展(mysqli/pdo):判斷是否可連接后端數據庫、暴力連接測試。
  • Zip 支持開啟時:輔助構造壓縮包提權場景。

四、文件路徑與目錄布局信息

該部分通常被用于路徑遍歷、文件包含、上傳利用、Session 劫持等攻擊。常見字段如下:

字段示例值利用方式
DOCUMENT_ROOT/var/www/html明確網站根目錄,輔助構造 LFI 路徑
SCRIPT_FILENAME/var/www/html/info.php定位當前文件實際路徑,輔助構造任意文件讀取
include_path.::/usr/share/phpPHP 包含路徑,可能在 LFI 時被利用
upload_tmp_dir/tmp文件上傳后的臨時位置,上傳圖片馬驗證路徑用
extension_dir/usr/lib/php/20220829動態擴展路徑,可嘗試利用 dl() 加載惡意模塊
session.save_path/var/lib/php/sessions可嘗試結合 LFI + Session 注入恢復會話內容
open_basedir/var/www:/tmp判斷是否存在目錄訪問限制,LFI 的一個重要參考項

通過這些路徑,攻擊者可以精確定位文件系統結構,為上傳、讀取或包含本地文件提供關鍵線索。


五、禁用函數與限制項信息

phpinfo() 會顯示當前禁用的函數,字段為:

  • disable_functions: 如 system, exec, shell_exec, popen

攻擊者可以判斷當前環境中能否直接執行命令,如果函數未禁用,即使文件包含成功,也可能導致 RCE。

同時,以下配置項也對滲透測試非常關鍵:

配置項描述利用意義
allow_url_fopen是否允許通過 URL 讀取遠程資源如果開啟,可嘗試遠程包含(RFI)
allow_url_include是否允許通過 URL 包含遠程 PHP 文件可結合 HTTP 服務構造遠程木馬包含
enable_dl是否允許動態加載擴展與擴展目錄配合可加載惡意模塊
display_errors是否輸出錯誤信息如果開啟,可獲得路徑、變量、文件等敏感信息

六、HTTP 請求與網絡信息

phpinfo() 還會展示當前請求的環境變量,如:

  • REMOTE_ADDR:客戶端 IP
  • HTTP_USER_AGENT:請求 UA
  • HTTP_COOKIE:Cookie 值
  • HTTP_HOST / SERVER_NAME:域名信息

在一些測試中,這些變量值可用于驗證 SSRF、Header 注入、或反代 IP 泄露等場景。


七、臨時利用技巧:驗證上傳和路徑控制

  • 在黑盒測試中,可先上傳一張圖片馬,然后訪問 phpinfo() 頁面,觀察 upload_tmp_dir_FILES_POST 等字段,確認上傳是否成功。
  • 某些框架會將 phpinfo() 殘留在 debug.phpinfo.phptest.phpphpinfo.php 等文件中,可以結合目錄掃描工具或 Google Dork 搜索語法發現。

總結

phpinfo() 本質上是一個信息收集的黃金入口,在滲透測試中可提供:

  • 系統指紋識別(PHP 版本、操作系統、架構)
  • 漏洞適配(根據版本選擇利用模塊)
  • 文件系統探索(Web 根、Session 路徑、上傳臨時目錄)
  • 利用路徑構造(LFI、RFI、上傳、反序列化)
  • 函數調用分析(是否禁用了 systemexec

熟練閱讀并分析 phpinfo() 頁面輸出,是攻防兩端都必須具備的一項核心能力。

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

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

相關文章

《如何在 Spring 中實現 MQ 消息的自動重連:監聽與發送雙通道策略》

大家好,我是G探險者!📌 背景場景在高可用分布式系統中,我們經常面臨:MQ 集群重啟 → 消息監聽中斷MQ 網絡短暫抖動 → 發送端連接失敗一端恢復正常,另一端仍處于掛死狀態如果你只配置了“連接工廠層”的重連…

OpenCV 安裝使用教程

一、OpenCV 簡介 OpenCV(Open Source Computer Vision Library)是一個開源計算機視覺和機器學習軟件庫,提供了超過 2500 個優化的算法,用于實時圖像處理、視頻分析、對象識別、人臉檢測、機器學習等任務。 Python 提供了對 Open…

【SNN脈沖神經網絡3】HH神經元軟件仿真

本篇文章主要核心目的在于研究明白HH神經元的數學模型,并且驗證其正確性。因此,在本篇文章中只會使用numpy函數庫用于構建神經元,以及matplotlib用于繪圖。1.導入對應的庫import numpy as np import matplotlib.pyplot as plt import re impo…

「日拱一碼」014 Python常用庫——Pandas

目錄 數據結構 pandas.Series :一維數組,類似于數組,但索引可以是任意類型,而不僅僅是整數 pandas.DataFrame :二維表格型數據結構,類似于 Excel 表格,每列可以是不同的數據類型 數據讀取與寫…

狂命爆肝21天,共51K字的JAVA學習筆記奉上,JAVA從入門到精通一文搞定,一文在手JAVA無憂

背景知識 Java 相關概念 JavaSE (Java Standard Edition): 基礎版,用于開發桌面應用程序。JavaEE (Java Enterprise Edition): 企業版,用于開發企業級應用程序。JavaME (Java Micro Edition): 微型版,用于開發嵌入式系統和移動設備應用程序…

Dijkstra 算法#圖論

Dijkstra 算法 算法前提:在沒有負邊的情況下使用。算法思路:將結點分成已確定最短路長度的點集 S 和未確定最短路長度的點集 T,每次從 T 集合中選取最短路長度最小的結點移到 S 集合中,并對其出邊執行更新操作 從T集合中&#x…

開源與閉源大模型的生態與技術對比:以百度文心4.5開源為視角

技術對比:開源與閉源大模型的優劣勢 性能對比:算力效率與場景適配的博弈 在模型性能的競技場上,開源與閉源大模型呈現出明顯的差異化特征。以百度文心4.5開源系列為例,其47B參數的混合專家(MoE)模型在飛槳…

企業電商解決方案哪家好?ZKmall模塊商城全渠道支持 + 定制化服務更省心

在數字化浪潮席卷各行各業的當下,企業要想拓展市場、提升競爭力,搭建專屬電商平臺已經成了繞不開的選擇。但市場上的電商解決方案五花八門,怎么才能挑到真正適合自己的?其實道理很簡單:能同時搞定全渠道支持和定制化服…

使用哪種語言的人更容易通過面試?

Ruby 和 Swift!似乎語言越大眾面試通過率越低,畢竟崗位數量有限,Java 和 C 程序員所面對的競爭也會更加激烈。使用 Ruby 和 Swift 的程序員比例到底怎么樣?我們可以從 Google Trends 中發現一些蛛絲馬跡。最火熱的 Java 的熱度平均…

Axios 二次封裝高級教程(含請求取消等功能)

Axios 二次封裝高級教程(含請求取消等功能) 整理不易,收藏、點贊、關注哦! 一、總體架構設計 目的:構建一套功能完善、易用且健壯的 HTTP 請求封裝層 核心功能: 請求攔截、響應攔截請求取消(防…

MobileNet V1的Pytorch實現并加載預訓練模型進行驗證

一. 環境 windonws 11RTX5060CUDA 12.8Pytorch 2.9.0dev20250630cu128torchvision 0.23.0dev20250701cu128 二. 代碼 基于Mobilenet-CustomData 的Mobilenet_Pretrain.ipynb 1. 定義Mobile Net V1 import os import time import torch import torch.nn as nn import torch…

HTTP協議利用TCP的特性來實現長連接

在討論網絡協議時,經常會有人提出這樣一個問題:“既然HTTP是基于TCP的,而TCP本身支持長連接,為什么HTTP不支持長連接?”這種說法其實是一種誤解。實際上,HTTP確實可以并且經常使用長連接(也稱為持久連接)。 什么是長連接? 首先,我們需要明確什么是“長連接”。在網…

整流電路Multisim電路仿真實驗匯總——硬件工程師筆記

目錄 1 整流電路基礎 1.1 整流電路基本原理 1.2 整流電路的類型 1.2.1 單相整流電路 1.2.2 三相整流電路 1.3 整流電路的應用 1.3.1 直流電源 1.3.2 電池充電器 1.3.3 變頻調速系統 1.34 電解和電鍍 1.4 整流電路的優缺點 1.4.1 優點 1.4.2 缺點 2 二極管整流電路…

LangChain 全面入門

什么是 LangChain? LangChain 是一個專門為 大語言模型 (LLM) 應用開發設計的開源框架,幫你快速實現: ? 多輪對話 ? 知識庫問答 (RAG) ? 多工具協同調用 (function calling / tool) ? 智能體 Agent 自動決策任務鏈 解耦 LLM 接口、Prom…

RabbitMQ 高級特性之消息確認

1. 簡介 RabbitMQ 的消息發送流程: producer 將消息發送給 broker,consumer 從 broker 中獲取消息并消費 那么在這里就涉及到了兩種消息發送,即 producer 與 broker 之間和 consumer 與 broker 之間。 “消息確認” 討論的是 consumer 與…

【51單片機用數碼管顯示流水燈的種類是按鈕控制數碼管加一和流水燈】2022-6-14

緣由 #include "REG52.h" unsigned char code smgduan[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,64}; //共陰0~F消隱減號 unsigned char Js0, miao0;//中斷計時 秒 分 時 毫秒 sbit k0P3^0; sbit k1P3^1; void smxs(u…

Android15 開機動畫播放結束之后如何直接啟動應用

問題背景 軟件版本:Android15 在一些需求場景里面,需要開機動畫播放結束立馬去啟動一個應用,下面介紹如何實現這種方案。 解決方案 首選我們需要知道開機動畫播放結束之后的流程,這里會調用到wms里面,也就是一些enableScreen之類的函數,知道這個大概流程之后,再去對應…

AI實踐:大模型痛點和解決方案討論

大家好,我是星野,歡迎來到我的CSDN博客。在這個技術日新月異的時代,我們一起學習,共同進步。 今天想和大家分享的是大模型在實際應用中的痛點以及解決方案,特別是RAG(檢索增強生成)技術。 大模…

Web前端工程化

Web前端工程化 前端工程化是指將軟件工程的方法和原則應用到前端開發中,以提高開發效率、保證代碼質量、便于團隊協作和項目維護的一套體系化實踐。以下是前端工程化的主要內容和實踐: 核心組成部分 1. 模塊化開發 JavaScript模塊化:Comm…

Java 原生 HTTP Client

?介紹 Java 原生 HttpClient 是從 Java 11 開始引入的標準庫,用于簡化 HTTP 請求的發送與響應處理。它支持同步和異步請求,并內置對 HTTP/1.1 和 HTTP/2 協議的支持。HttpClient 提供了易用的 API 來設置請求頭、請求體、處理響應以及配置 SSL/TLS 加密…