网络安全笔记

第一部分:学习准备与环境配置

刚开始接触网络安全实践,搭建一个合适的实验环境是第一步。我主要准备了以下两种环境:

Windows平台测试环境

  • 使用 PHPStudy 集成环境包,快速搭建Apache+PHP+MySQL组合

  • 配合 Xdebug 扩展进行PHP代码调试

  • 使用 VSCode 作为代码编辑器,安装相关安全插件

Linux平台测试环境

  • 安装 Ubuntu 作为基础系统

  • 手动编译安装 NginxPHP-FPM,更贴近生产环境

  • 配置 Python 3.10 环境,用于编写测试脚本

行业现状简析:现在实际渗透测试经验比CTF竞赛技能更受重视,云环境和容器(如Docker)相关安全问题占比很高。传统SQL注入漏洞因预编译技术普及而减少,更多漏洞出现在协议层和逻辑层。

第二部分:PHP文件包含漏洞解析

文件包含漏洞是PHP应用中常见的安全问题,核心在于include、require等函数对用户输入处理不当。

基本漏洞原理

当PHP代码动态包含用户可控的文件路径时,如果没有充分过滤,攻击者可能读取或执行任意文件。

php 复制代码
php

// 存在漏洞的代码示例
$page = $_GET['page'];
include($page . '.php');
复制代码

PHP伪协议利用

PHP提供了多种伪协议,可被用于文件包含漏洞的利用:

  • php://filter:最常用的协议,可读取文件源码

  • php://input :当allow_url_include开启时,可将POST数据作为PHP代码执行

  • data://:直接在URI中嵌入代码执行

  • file://:访问本地文件系统,不受URL包含限制

实际测试发现

即使包含的文件扩展名不是.php(如.txt),只要文件内容包含有效的PHP标签和代码,依然会被执行。这是文件包含漏洞危险性的重要体现。

第三部分:PHAR协议与反序列化

PHAR协议提供了一个将文件包含与反序列化结合的攻击面,值得特别注意。

PHAR文件结构特点

PHAR是PHP的归档文件格式,包含存根(stub)、清单(manifest)、文件内容和签名四部分。其中清单部分使用序列化数据存储元数据。

攻击原理

当使用phar://协议包含文件时,PHP会自动反序列化清单中的元数据。如果其中包含恶意序列化对象,可能触发危险操作。

实际利用场景

攻击者可将恶意PHAR文件伪装成图片(如修改扩展名为.jpg)上传,然后通过文件包含漏洞以phar://协议引用该文件,触发反序列化漏洞,执行任意代码。

这种攻击方式绕过了常见的文件上传检查(仅检查文件扩展名或文件头),在同时存在文件上传和文件包含功能的应用中风险较高。

第四部分:高级利用技巧

在实际测试中,文件包含漏洞的利用方式非常灵活,以下是一些进阶技巧:

Session文件包含

如果知道Session文件存储路径且能控制Session部分内容,可通过包含Session文件执行代码。Session文件通常位于/tmp/sess_[PHPSESSID]或/var/lib/php/sessions/目录。

日志文件注入

通过污染Web服务器日志(如访问日志、错误日志)注入PHP代码,然后包含日志文件执行代码。常见日志路径包括/var/log/apache2/access.log、/var/log/nginx/access.log等。

临时文件竞争包含

PHP处理文件上传时会生成临时文件,处理完成后立即删除。通过精确的时间竞争,可能在删除前包含这些临时文件执行代码。

配置文件包含

尝试包含Web服务器配置文件(如nginx.conf、httpd.conf),可能获取敏感信息或通过配置特性进一步利用。

相关推荐
Bruce_Liuxiaowei3 小时前
基于Regsvr32.exe的渗透测试完整记录
网络·windows·安全·网络安全·内网渗透
小北方城市网3 小时前
SpringBoot 安全认证实战(Spring Security + JWT):打造无状态安全接口体系
数据库·spring boot·后端·安全·spring·mybatis·restful
国科安芯4 小时前
尺寸约束下商业卫星编码器系统的抗辐照MCU性能边界研究
运维·单片机·嵌入式硬件·安全·安全威胁分析
Qaz555666914 小时前
网络安全笔记(第一二天)
笔记·安全·web安全
zhengfei6114 小时前
与人工智能安全相关的优质资源
人工智能·安全
亲爱的非洲野猪4 小时前
如何安全关闭 IIS 的 HTTP 端口
网络·安全·http
hzb666664 小时前
xd_day28js原生开发-day31 day41asp.net
开发语言·前端·javascript·安全·web安全
tan 914 小时前
KaliLinux2025.4 root用户修改显示语言
linux·服务器·前端·安全
渐雨朦胧眼4 小时前
网络安全之防御保护笔记
笔记·安全·web安全