dvwa通关教程

目录

File Inclusion(文件包含)

(low)​

File Upload(文件上传)

(low)

Insecure CAPTCHA(不安全的验证码/不安全的验证流程)

 (low)


File Inclusion(文件包含)

File Inclusion,即文件包含,是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。

文件包含漏洞分为本地文件包含漏洞远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。

包含,往往用在复用的地方,比如写了一个连接数据库的方法,直接ctrl+c,ctrl+v就可以用,不用自己再写,是使用include关键字来引用你的方法

DVWA是通过文件包含,来调用file1.php/file2.php/file3.php

文件包含:

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

文件包含漏洞:

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

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

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

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

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

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

相关的 php.ini 配置参数:

allow_url_fopen = on (默认开启)

allow_url_include = on (默认关闭)

(low)

查看源码 

<?php

// The page we wish to display
//直接获取page参数,未做任何过滤
$file = $_GET[ 'page' ];

?>

我们先点击一下,发现page的参数值,就是点击的文件名

点击下面的三个链接,服务器会包含相应的文件,并将结果返回。

服务器包含文件时,不管文件后缀是否是php,都会尝试当做php文件执行,如果文件内容确为php,则会正常执行并返回结果,如果不是,则会原封不动地打印文件内容,所以文件包含漏洞常常会导致任意文件读取与任意命令执行。

尝试查看phpinfo.php文件

File Upload(文件上传)


在文件上传的功能处,若服务端脚本语言未对上传的文件进行严格验证和过滤,导致恶意用户上传恶意的脚本文件时,就有可能获取执行服务端命令的能力,这就是文件上传漏洞。
文件上传漏洞对Web应用来说是一种非常严重的漏洞。一般情况下,Web应用都会允许用户上传一些文件,如头像、附件等信息,如果Web应用没有对用户上传的文件进行有效的检查过滤,那么恶意用户就会上传一句话木马等Webshell,从而达到控制Web网站的目的。

文件上传漏洞成因
1.未过滤或Web前端过滤被绕过

2.文件检测被绕过

3.中间件解析

4.不完善的黑名单扩展名

5.文件路径截断

6.HTTP不安全方法(PUT协议)

&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值