DVWA靶场-文件包含

文件包含

低级

源码:

<?php

// The page we wish to display
$file = $_GET[ 'page' ];

?> 

低级什么也没做,直接利用http协议包含文件(可以远程包含):
在这里插入图片描述

中级

查看源代码:

<?php

// The page we wish to display
$file = $_GET[ 'page' ];

// Input validation
$file = str_replace( array( "http://", "https://" ), "", $file );
$file = str_replace( array( "../", "..\"" ), "", $file );

?> 

分析:利用str_replace函数将关键字(http:// https:// …/ …\)替换成空,可防止远程包含
利用:因为虽然 做了替换但只做了一次,我们可以双写绕过或者file协议绕过

hthttp://tp://127.0.0.1/phpinfo.php

双写绕过
在这里插入图片描述
file协议绕过:
FIle协议也叫本地文件传输协议 ,主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样

file:///文件路径

在这里插入图片描述

高级

源代码

<?php

// The page we wish to display
$file = $_GET[ 'page' ];

// Input validation
if( !fnmatch( "file*", $file ) && $file != "include.php" ) {
    // This isn't the page we want!
    echo "ERROR: File not found!";
    exit;
}

?> 

分析可知:后台将我们输入的文件 f i l e 做 了 匹 配 , 必 须 包 含 f i l e , f 且 file做了匹配,必须包含file,f且 filefileffile不等于include.php,此时服务器才不会去包含文件,两个条件只要不满足其中任意一个,就能达到文件包含的目的
绕过:file协议来绕过
FIle协议也叫本地文件传输协议 ,主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样

file:///文件路径

直接包含本地php文件
在这里插入图片描述

impossible

查看源码:

 <?php

// The page we wish to display
$file = $_GET[ 'page' ];

// Only allow include.php or file{1..3}.php
if( $file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php" ) {
    // This isn't the page we want!
    echo "ERROR: File not found!";
    exit;
}

?>

分析:做的太绝了,对包含文件做了白名单策略,只能包含指定的那三个文件
总结:通过白名单策略可以避免文件包含

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值