DVWA | 文件包含

admin 2022年10月2日05:40:37评论39 views字数 1315阅读4分23秒阅读模式


文件包含是在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露甚至恶意的代码注入。



LOW


首先使用文件上传漏洞上传一个php文件或者可以在文件目录dvwa/hackable/uploads下创建,内容为
<?php phpinfo()?>
上传的时候注意要在low的安全等级下上传,medium和high的安全等级下会对php后缀的进行校验,无法上传成功。当页面回显路径即为上传成功!如下图:

DVWA | 文件包含


上传成功后将后缀改为png,同样上传到服务器中。回到文件包含漏洞,依次点击三个文件后发现url中page参数的值随着文件名而改变,将page参数修改为文件上传后回显的路径。
../../hackable/uploads/phpinfo.php
结果如下图:

DVWA | 文件包含


之后将参数修改为如下进行尝试,发现也可以成功。因为在php文件包含漏洞中,无论是什么类型的文件都会按照php的格式进行解析。
../../hackable/uploads/phpinfo.png

同时也可以修改参数为本地路径和远程路径进行文件包含,即本地文件包含和远程文件包含。

本地文件包含:

file://D:PhpStudyWWWdvwahackableuploadsphpinfo.phpfile://D:PhpStudyWWWdvwahackableuploadsphpinfo.png


远程文件包含:

http://192.168.100.148/dvwa/hackable/uploads/phpinfo.phphttp://192.168.100.148/dvwa/hackable/uploads/phpinfo.png


 


Medium


尝试输入绝对路径进行包含,结果页面报错,与绝对路径进行对比后发现服务器端过滤了../字符。

DVWA | 文件包含


尝试修改参数进行本地文件包含,成功打开页面。继续尝试远程文件包含,页面返回的报错信息如下图,可知http://也被过滤。

DVWA | 文件包含


    查看代码,服务器将参数中的http:// 、https:// 、../、 ..都替换为空,如图:

DVWA | 文件包含


解决办法:

1.使用本地文件包含

file://D:PhpStudyWWWdvwahackableuploadsphpinfo.php

2.通过双写或者大小写进行绕过。


大小写绕过:

HTTP://192.168.100.148/dvwa/hackable/uploads/phpinfo.php

双写绕过:

hthttp://tp://192.168.100.148/dvwa/hackable/uploads/phpinfo.php..././..././hackable/uploads/phpinfo.php




High


按照如上的步骤进行测试后发现只有本地包含可以成功,其他两种都不能打开,查看代码:

DVWA | 文件包含


服务器仅匹配file开头的文件名,不为file时输出错误信息。因此只可以通过file进行文件包含。

 


Impossible


服务器通过白名单的方式仅允许文件名为file1.php、file2.php和file3.php的文件,避免了文件包含,无法绕过。

DVWA | 文件包含




原文始发于微信公众号(仙友道):DVWA | 文件包含

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月2日05:40:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DVWA | 文件包含http://cn-sec.com/archives/921399.html

发表评论

匿名网友 填写信息