网络安全笔记

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

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

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),可能获取敏感信息或通过配置特性进一步利用。

相关推荐
BenSmith1 小时前
从零上手嵌入式 RTOS:以 Raspberry Pi Pico 2 WH 为例的烧录、定制构建与多系统对比指南
安全
汇智信科2 小时前
训练安全管理系统:赋能军消装备训练,实现全流程智能化管控
安全·训练安全管理·装备训练智能化·军事训练保障·消防训练管理
其实防守也摸鱼5 小时前
CTF密码学综合教学指南--第三章
开发语言·网络·python·安全·网络安全·密码学
其实防守也摸鱼5 小时前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf
DevilSeagull5 小时前
电脑上安装的服务会自动消失? 推荐项目: localhostSCmanager. 更好管理你的服务!
测试工具·安全·react·vite·localhost·hono·trpc
@insist1236 小时前
信息安全-防火墙技术演进全景:从代理NAT 到下一代及专项防火墙
网络·安全·web安全·软考·信息安全工程师·软件水平考试
不会编程的懒洋洋8 小时前
C# P/Invoke 基础
开发语言·c++·笔记·安全·机器学习·c#·p/invoke
时空系9 小时前
第10篇:归属权与借用——Rust的安全保障 Rust中文编程
开发语言·安全·rust
Chockmans9 小时前
春秋云境CVE-2017-3506
安全·web安全·网络安全·系统安全·安全威胁分析·春秋云境·cve-2017-3506
开开心心就好9 小时前
近200个工具的电脑故障修复合集
安全·智能手机·pdf·电脑·consul·memcache·1024程序员节