码迷,mamicode.com
首页 > 其他好文 > 详细

DVWA-file inclusion

时间:2021-01-26 12:37:15      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:http   https   源码   路径   简单   inf   并且   开发人员   调用   

一、文件包含:

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

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

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

  require:找不到被包含的文件,报错,并且停止运行脚本。
  include:找不到被包含的文件,只会报错,但会继续运行脚本。
  require_once:与require类似,区别在于当重复调用同一文件时,程序只调用一次。
  include_once:与include类似,区别在于当重复调用同一文件时,程序只调用一次。

三、文件包含特征

?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

简单版:

  1.分析源码,发现没有对变量$Page做任何过滤:

技术图片

  2首先随便点击一下file1.php发现url中只有include.php变为file1.php

技术图片

  3于是打开根目录;找到对应的路径,自己编写一个文件丢进去(或者查找一下该路径中有没有隐藏文件,可以将其显示出来)

技术图片

  我这里,显示出了他的隐藏文件;

技术图片

  *这里也可以先试上上级目录下的文件

中等版:

  1.查看源代码:很显然过滤了绝对路径的http和https,以及相对路径的../

技术图片
2.若是要用绝对路径,可以考虑换成Http://.也可一看他的隐藏文件;

  注意:当然远程文件包含有一个大前提那就是开启了allow_url_include。

高等版:

  1.查看源代码:

技术图片

  由于*是通配符,所以在查看问件事必须以file开头,因此利用file协议包含本地文件进行绕过;

技术图片
技术图片
技术图片

DVWA-file inclusion

标签:http   https   源码   路径   简单   inf   并且   开发人员   调用   

原文地址:https://www.cnblogs.com/my-boke/p/14324567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!