Web靶场学习笔记(PHP常用函数详解 )
一、前言本次通过 Pikachu、XSS-Labs、Upload-Labs 靶场练习总结 Web 安全中最常用、最容易出漏洞的 PHP 函数。本文全程大白话、零基础可看懂搭配真实代码示例区分漏洞代码为什么会被攻击和安全代码如何防御。所有 Web 漏洞本质只有一句话网站无条件相信用户传过来的数据。二、文件上传模块常用 PHP 函数Upload-Labs$_FILES —— 接收用户上传的文件大白话理解用户上传文件后网站通过这个函数拿到文件所有信息。包含文件名、文件类型、临时保存路径。漏洞核心文件类型是浏览器自己上报的可以用 Burp 随便改完全不可信。漏洞代码示例Pass-02 原题漏洞?php // 直接读取浏览器传来的文件类型 $type $_FILES[upload_file][type]; ​ if($type image/jpeg){ move_uploaded_file($_FILES[upload_file][tmp_name],upload/.$_FILES[upload_file][name]); echo 上传成功; }else{ echo 只能上传图片; } ?攻击方式上传 php 木马 → Burp 抓包把类型改成image/jpeg→ 直接绕过。move_uploaded_file() —— 真正完成文件上传大白话把服务器临时文件移动到公开文件夹文件才算真正上传成功。示例?php $tmp $_FILES[file][tmp_name]; // 服务器临时文件 $name $_FILES[file][name]; // 用户上传的文件名 ​ // 移动到网站目录上传成功 move_uploaded_file($tmp,upload/.$name); ?如果不做过滤用户上传shell.php木马直接拿下服务器。pathinfo() —— 获取文件后缀大白话专门抓后缀 jpg、php、png用来判断文件类型。漏洞代码黑名单绕过?php $ext pathinfo($_FILES[file][name],PATHINFO_EXTENSION); ​ // 只禁止 php黑名单不安全 if($ext ! php){ move_uploaded_file($tmp,upload/.$_FILES[file][name]); } ?漏洞原因攻击者可以传.phtml .php5照样执行木马。安全写法白名单唯一推荐?php $allow [jpg,png,gif]; $ext pathinfo($_FILES[file][name],PATHINFO_EXTENSION); ​ if(in_array($ext,$allow)){ move_uploaded_file($tmp,upload/.$_FILES[file][name]); } ?getimagesize() —— 判断是不是图片大白话读取图片长宽判断是不是真图片。绕过方式图片马图片头部php木马能骗过这个函数。三、XSS 模块常用 PHP 函数Pikachu / XSS-Labsecho —— 输出内容到网页大白话把用户输入的东西直接打印在页面上。漏洞代码反射型XSS?php $name $_GET[name]; echo 你的名字.$name; ?用户输入scriptalert(1)/script网站直接输出 → 浏览器识别代码 → 弹窗 XSS 成功。htmlspecialchars() —— XSS 终极防御函数大白话把所有尖括号、引号全部变成“普通文字”浏览器不会执行代码。安全修复代码?php $name $_GET[name]; echo htmlspecialchars($name,ENT_QUOTES); ?效果scriptalert(1)/script只会当成文字显示不会执行。strip_tags() —— 删除HTML标签大白话删掉 script、html 标签。缺点有漏洞删不掉事件类 payload比如img onerroralert(1)依旧可以触发 XSS。四、SQL注入常用函数PikachuGET/POST —— 获取用户参数大白话接收网址、表单的数据完全可控。mysqli_query() —— 执行数据库语句漏洞代码经典注入?php $id $_GET[id]; $sql select * from user where id$id; $result mysqli_query($conn,$sql); ?用户传入?id1 or 11 --直接查询出所有账号密码SQL注入成功。addslashes() —— 简单转义函数大白话给单引号加斜杠试图防注入。缺陷可以被宽字节注入绕过不安全。五、三大漏洞 原理 完整防御方案文件上传漏洞漏洞原因网站校验太敷衍信任前端数据导致木马被上传并执行。防御方式优先使用后缀白名单只允许 jpg/png/gif不相信$_FILES[type]可抓包篡改校验文件真实内容不只看后缀上传文件随机重命名上传目录禁止解析 PHP 脚本XSS 跨站脚本漏洞漏洞原因用户输入恶意 JS 代码网站直接输出到页面被浏览器执行。防御方式输出页面统一使用htmlspecialchars()转义Cookie 设置 HttpOnly防止偷取会话前端避免使用 innerHTML 拼接用户数据SQL 注入漏洞漏洞原因直接把用户输入拼接到 SQL 语句导致数据库被篡改、泄露。防御方式使用预编译预处理语句最有效禁止直接拼接用户参数到 SQL数据库账号最小权限关闭网页 SQL 错误回显六、实验总结所有 Web 漏洞的根源都是信任了不可信的用户数据。PHP 函数本身没有问题开发者不正确使用函数、不做过滤才导致漏洞产生。安全开发核心思想一切用户输入默认全部恶意。

相关新闻

SSM+Vue考研学习系统开发与全栈技术实践

SSM+Vue考研学习系统开发与全栈技术实践

1. 项目背景与核心需求考研学习类应用在近几年成为高校毕业设计的热门选题方向,这源于几个现实因素:首先,全国考研报名人数连续多年突破400万,催生了庞大的备考工具需求;其次,移动互联网技术成熟使得个性化…

2026/10/5 8:13:08 阅读更多 →
选择多功能厅舞台音响功放厂商要看哪些核心适配标准?

选择多功能厅舞台音响功放厂商要看哪些核心适配标准?

本文仅输出多功能厅舞台音响功放厂商的通用选型方法,不涉及任何品牌推荐,所有评判维度均遵循行业统一标准,用户可根据自身需求自行匹配。通用选型核心标准(参考《专业音频工程设计规范》GB 50371-2006、中国音像与数字出版协会音视…

2026/10/5 8:46:28 阅读更多 →
终极指南:5步让《暗黑破坏神2》在现代电脑上焕然新生

终极指南:5步让《暗黑破坏神2》在现代电脑上焕然新生

终极指南:5步让《暗黑破坏神2》在现代电脑上焕然新生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在为经典…

2026/10/5 9:25:09 阅读更多 →

最新新闻

AI Agent失控如何自救:看门狗与熔断器构建生产级刹车系统

AI Agent失控如何自救:看门狗与熔断器构建生产级刹车系统

凌晨四点,手机屏幕亮起来,弹出一条银行扣款短信。我刚从椅子上惊醒,看到那串数字的第一反应是"是不是被盗刷了",第二反应是"不对,是我自己的服务器在刷"。我部署的那个Agent,在深夜没人…

2026/10/5 9:24:55 阅读更多 →
OpenAI兼容格式接入GLM实战:统一入口与适配层设计

OpenAI兼容格式接入GLM实战:统一入口与适配层设计

1. 为什么我会盯上 Ace Data Cloud 这条接入路径国内做大模型应用开发的人,最近一年普遍会遇到一个很别扭的局面:项目里已经写好了 OpenAI 格式的调用代码,函数签名、消息结构、流式解析、重试逻辑全都跑通了,结果要换成国产模型时…

2026/10/5 9:24:55 阅读更多 →
Arduino直流电机控制从原理到实战:PWM调速与驱动模块选型指南

Arduino直流电机控制从原理到实战:PWM调速与驱动模块选型指南

前阵子帮一个刚开始玩Arduino的朋友排查小车不转的问题,他按照教程把直流电机直接接到了UNO的5V和GND上,结果电机纹丝不动,板子还偶尔重启。这个场景其实特别典型——很多初学者一听到"直流电机控制",第一反应就是"…

2026/10/5 9:24:55 阅读更多 →
hitstop、屏幕震动、缓动曲线:用threejs-gameplay-systems为Three.js游戏注入手感

hitstop、屏幕震动、缓动曲线:用threejs-gameplay-systems为Three.js游戏注入手感

hitstop、屏幕震动、缓动曲线:用threejs-gameplay-systems为Three.js游戏注入手感 【免费下载链接】threejs-game-skills Agent skills for building playable, polished Three.js browser games with gameplay, AAA-style graphics, UI, QA, and optional AI-gener…

2026/10/5 9:24:55 阅读更多 →
IObit Uninstaller Pro 最新版下载安装教程(附使用说明)

IObit Uninstaller Pro 最新版下载安装教程(附使用说明)

IObit Uninstaller Pro 最新版下载安装教程(附使用说明)https://pan.baidu.com/s/1zwJ1l4h0LdRnIG8v7HRhOg?pwd5hch 点击获取资源: 【名称与分类】本资源IObit Uninstaller Pro 特别版内容充实、实用性强,涵盖了相关主题的方方…

2026/10/5 9:24:55 阅读更多 →
Java零基础入门:周末大总结

Java零基础入门:周末大总结

import java.util.Scanner; public class SummaryTry { public static void main(String[] args) { 综合编程题 11:简易学生成绩管理系统(控制台版)】 结合本周所有知识点,完成以下需求: 使用 Scanner 输入3名学生的姓…

2026/10/5 9:23:55 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →