初探文件包含漏洞——DVWA

造成的原因:

       通过PHP函数引入文件 ,传入的文件名没有经过合理的验证,操作了恶意文件,导致文件泄漏甚至恶意代码注入。

开始之前浅浅了解一下伪协议:

       PHP伪协议是一种用于访问各种资源的特殊协议,其基本格式为 protocol://specific-part。其中,protocol表示伪协议的名称,specific-part则表示具体的参数。

       作用:*  访问文件

                *  HTTP请求与响应

                *  访问文件系统

       file://、php://filter、php://input、zip://、compress.bzip2://、compress.zlib://、data://等

file:// 用于访问本地文件系统,通常用来读取本地文件的且不受allow_url_fopen与allow_url_include的影响 。

php://filter用于读取源码,php://input用于执行php代码。

php://filter 读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。

php://input 可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。

zip://, bzip2://, zlib:// 均属于压缩流,可以访问压缩文件中的子文件,更重要的是不需要指定后缀名。

造成文件包含漏洞产生的必要条件。

  • allow_url_fopen=On(默认为On) 规定是否允许从远程服务器或者网站检索数据。

  • allow_url_include=On(php5.2之后默认为Off) 规定是否允许include/require远程文件。

php中常见的文件包含函数有以下四种:

  • include()

  • require()

  • include_once()

  • require()_once()

include与require基本是相同的,除了错误处理方面:

  • include(),只生成警告(E_WARNING),并且脚本会继续

  • require(),会生成致命错误(E_COMPILE_ERROR)并停止脚本

  • include_once()与require()_once(),如果文件已包含,则不会包含,其他特性如上。

DVWA靶场初探文件包含漏洞。

插播:

*敲敲小黑板,常常因为改了靶场密码,第二次登录进不去的宝子,注意一下:

先下载一个phpMyAdmin4.8.5,在首页数据库管理工具这里打开它。

用户名密码点击小皮面板的数据库查看(方便)。

打开数据库dvwa——>表user,password用md5加密,baudu解密一下,为了下次方便进入,也可以自己加一个用户名密码,记得密码md5加密一下。

low

没有进行任何过滤

爆出网站的绝对路径,本地包含:绝对路径(""),相对路径(../(上级目录))很难知道网站的目录结构。

远程文件包含:"D:\phpstudy_pro\WWW\dvwa-master\sss.php"

sss.php

 

medium

重复一下LOW发现行不通,看一下源码:

 

可以通过相对路径复写绕过。

high

使用白名单

fnmatch() 函数根据指定的模式来匹配文件名或字符串,使用伪协议绕过。

后期继续探讨文件包含漏洞:

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值