攻破 DVWA File Inclusion 模块(Low-Medium-High)
DVWA(Damn Vulnerable Web Application)是一个用于安全测试和学习的 Web 应用程序,包含多个漏洞模块。其中 File Inclusion 模块常用于测试文件包含攻击。本篇记录在 Low、Medium、High 三个等级下测试。
一、Low
文件包含漏洞可以通过构造恶意的文件路径参数来包含本地或远程文件。
在模块下打开file1,URL为 /vulnerabilities/fi/?page=file1.php
可以通过修改URL中的参数来尝试包含其他文件,如 ?page=file4.php
使用?page=php://filter/convert.base64-encode/resource=../../config/config.inc.php可获取配置文件
php://filter/convert.base64-encode/resource=...:PHP的过滤器协议,可以对文件内容进行编码处理,这里使用base64编码来获取文件内容而非执行../../config/config.inc.php是配置文件路径,通常在html目录外,通过"../../"相对路径访问
解码后可以获取数据库连接账号密码等敏感信息。
二、Medium
Medium难度相较于Low难度增加了输入验证,禁用“http://”、“https://”的远程文件包含,和“../”、“..\”的相对路径遍历
由于验证方式为将目标字符串替换为空,因此可以使用“....//”来代替“../”,因为代码将中间的“../”替换为空,最终等效于“../”
因此可以输入 ....//....//....//....//....//etc/passwd 来获取密码信息。
三、High
High难度使用白名单机制,只有开头为“file”的文件和存在于include.php中的文件才能被包含
可使用file伪协议file://来绕过限制,需要构造合适的路径参数
因此可以输入 ?page=file:///etc/passwd 来获取/etc/passwd的密码信息。