DVWA File Inclusion——Writeup

文件包含:
即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到自己的目的。
文件包含漏洞:
攻击者利用了包含的特性,再加上了应用本身对文件控制不严,对include进来的文件不可控,最终造成了攻击者进行任意文件包含。包含进来的文件都以当前脚本文件解析,比如,我们当前测试系统是Apache加php环境,那么被include进来的文件,不管是什么类型,比如说图片,文本文档,这些文件被包含以后,都会被当做php脚本来解析。

LOW

源码:
在这里插入图片描述

测试:本地文件包含,在目录中加一个test.txt
在这里插入图片描述

在这里插入图片描述
执行成功:
在这里插入图片描述

注意:无论文件后缀名是什么,只要文件内容为php脚本都会正确解析并且执行

漏洞利用:
实际利用需要利用文件上传漏洞,上传木马,
fputs函数:为php函数,功能和fwrite函数一样,表示创建一个新文件,这样上传成功以后就会在当前平台文件所在目录下面创建一个含有木马的dvwainclusion.php文件


蚁剑连接,这个就很恐怖了,可以打开我电脑下所有文件
在这里插入图片描述

medium:

源码
在这里插入图片描述
str_replace函数将 “http://” “https:\” “…/” “…” 替换成空
绕过 :
所有 “http://” 用 “htthttp://p://” 代替
"…/“用”…/./"代替
以此类推

远程文件包含:
在这里插入图片描述
后面的漏洞利用就与low操作相同了

high:

在这里插入图片描述
High级别的代码使用了fnmatch函数检查page参数,要求page参数的开头必须是file,服务器才会去包含相应的文件。
High级别的代码规定只能包含file开头的文件,看似安全,不幸的是我们依然可以利用file协议绕过防护策略。
使用file:///协议可以成功访问,其余的步骤就和前面一样了

impossible

在这里插入图片描述
可以看到,Impossible级别的代码使用了白名单机制进行防护,简单粗暴,page参数必须为“include.php”、“file1.php”、“file2.php”、“file3.php”之一,彻底杜绝了文件包含漏洞。

强行总结

防御从低到高依次:
无防护无过滤
str_replace函数过滤 “http://” “https:\” “…/” “…”(str_replace 函数具有危险性,比较容易绕过,例如双写)
fnmatch函数检查参数开头
白名单限制(简单有效)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

b1gpig安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值