DVWA文件包含漏洞
文章目录
- low
- medium
- high
- impossible
- 文件上传+包含漏洞getshell
- 云演-phar实验
low
1、本地文件包含:
看看后端代码
<?php// The page we wish to display
$file = $_GET[ 'page' ];?>
发现没有对参数page进行任何的检查和过滤,尝试包含一下phpinfo.php文件
提示错误,但是爆出了文件的绝对路径,此时有两种方法成功包含文件
方法一:利用得到的绝对路径
方法二:利用相对路径
2、远程文件包含
使用远程文件包含需要allow_url_fopen和allow_url_include都处于打开(On)的状态,同时配合http://协议使用
此处就将本地看作“远程”,写一个webshell.txt文件,内容是
<?php phpinfo();?>
然后使用http协议直接包含即可
medium
查看后端代码
<?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
的作用时过滤掉其中的内容(具体参考PHP官方手册str_replace函数的用法),过滤的"http://", "https://"
这意味着我们不能使用远程文件包含来进行操作。但是过滤的"../", "..\\"
,我们可以通过复写的方式来绕过
high
查看后端代码
<?php
if(!function_exists('fnmatch')) {function fnmatch($pattern, $string) {return preg_match("#^".strtr(preg_quote($pattern, '#'),array('\*' => '.*', '\?'=> '.'))."$#i", $string);} // end
} // end if
// 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;
}?>
其中fnmatch()
函数根据指定的模式来匹配文件名或字符串,此处是使用了fnmatch函数检查page参数,要求page参数的开头必须是file,服务器才会去包含相应的文件
此时就可以使用file://伪协议
来欺骗服务器了,结合本地上传,首先在C盘下写一个webshell.php文档,内容是
<?php phpinfo();?>
接着使用file:// + 绝对路径的方法来包含我们所写的文档
吐槽:今天搞这玩意儿和孙老师奋战了一下午,我本来搭建的本地靶场和hosts文档照理来说都是正确的,可就是包含不了这个webshell.php,一直提示找不到。后来大费周章,改来改去,最后莫名其妙就行了,但是配置还是原来的配置,反正就很神奇。后来的探索中我还发现,如果浏览器双开访问dvwa靶场,它的某些模块的难度是不会变的,一直会保持impossible,恰巧这个靶场的文件包含漏洞的impossible难度是无解的。这就导致在修改完成之后的实验中,仍处于找不到文件的状态。(我真的坠了)也怪我们没有仔细检查难度到底有没有正确调整,反正浪费了一下午就是说…
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;
}?>
可以看到此题要求page的参数只能为“include.php”、“file1.php”、“file2.php”、“file3.php”。这就意味着我们只能访问页面中的这三个文件,所以此难度无解
文件上传+包含漏洞getshell
其实最好的展示方式是用图片马,但是我自己根据教程生成的图片马用不了不知道为啥。那就随便用个一句话来实现吧,写一个webshell.txt,内容是
<?php eval($_POST[cmd]);?>
实验的环境是dvwa靶场的low级别,上传之后回显地址
之后进入文件包含漏洞,包含刚刚上传的文件
getshell成功,也可以通过菜刀蚁剑等来获取网站权限
云演-phar实验
这边看不到后端代码,直接上传php文件试试
返回 You are not a txt file… 说明要求我们上传txt文件,上传试试
发现 Success upload. FileName: ./files/QTpdrwXEeNybayiJ.txt 上传成功并回显地址,底下LFI Here说明有本地文件包含漏洞的,点着看看http://580c53bf.lxctf.net/lfi.php,说明此处的 lfi.php文件可能就是有漏洞的文件
访问刚刚回显的文件试试
还是没用。(黔驴技穷了,我选择实验手册)
查看 lfi.txt
<?php
$file = $_REQUEST['file'];
if ($file != '') {$inc = sprintf("%s.php", $file); // only php file can be includedinclude($inc);
}
?>
拨开云雾见光明,发现以 file 来接收参数,而且只允许包含php文件,还会在文件的末尾添加“.php”。这里因为只能上传 txt 文件,那么就需要包含来解析了。但是会在文件的末尾添加“.php”,所以直接包含是找不到我们上传的 txt 文件的,而且%00也不能用。
此时就可以用phar伪协议,它的使用前提是不添加前缀,可以用在添加后缀或者只能上传docx、zip、rar等压缩类文件,不能直接包含利用的情况。
利用方式是:首先将一个文件压缩,然后修改后缀名(jpg,txt,png都可,本题是txt)上传,最后包含上传的文件即可。例如本题:
先写一个webshell.php文档,内容是
p eval($_POST[cmd]);?>
之后压缩,并修改后缀名为.txt
直接上传改文件,然后包含php文件即可(此处应该注意,由于后端已经添加后缀,故包含webshell.php时直接访问webshell即可,自动添加后缀访问webshell.php)
发现包含成功,使用cmd=system("dir");
(cmd是我设置的密码)查看目录文件
发现有flag.php文件,使用cmd=system("type flag.php");
访问此文件获取flag
使用菜刀或者蚁剑同样可以获取flag
DVWA文件包含漏洞相关推荐
- Web漏洞之文件包含漏洞
公众号:黑客菌 分享更多技术文章,欢迎关注一起探讨学习 一.文件包含漏洞概述 1.漏洞介绍 程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这种文件 ...
- 文件包含漏洞——DVWA练习
前言:在学习文件上传时,制作的图片马需要我们手动去解析,而解析的方法就算用到了文件包含漏洞,所以这次就来学习一下文件包含漏洞. 文件包含漏洞简介 (一)文件包含可以分为本地文件包含和远程文件包含两种. ...
- 结合pikachu和DVWA靶场学习文件包含漏洞
结合pikachu和DVWA靶场学习文件包含漏洞 基本概念 包含的定义 文件包含的定义 相关函数 条件 分类 本地文件包含(Local File Inclusion,简称LFI) 定义 前提: 示例: ...
- DVWA之PHP文件包含漏洞(File Inclusion)
PHP文件包含漏洞,简单地说,就是在通过函数包含文件时,由于没有对包含的文件名进行有效的过滤处理,被攻击者利用从而导致了包含了Web根目录以外的文件进来,就会导致文件信息的泄露甚至注入了恶意代码.更多 ...
- Kali学习笔记31:目录遍历漏洞、文件包含漏洞
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 目录遍历漏洞: 应用程序如果有操作文件的功能,限制不严 ...
- php伪协议漏洞_php伪协议利用文件包含漏洞
php支持多种封装协议,这些协议常被CTF出题中与文件包含漏洞结合,这里做个小总结.实验用的是DVWA平台,low级别,phpstudy中的设置为5.4.45版本 设置allow_url_fopen和 ...
- 文件包含漏洞及简单绕过
文件包含漏洞 文章目录 文件包含漏洞 DVWA靶场对文件包含漏洞的解释 About Objective 漏洞发生原因 防御与绕过 DVWA File inclusion medium 绝对目录绕过 双 ...
- pikachu File Inclusion 文件包含漏洞 (皮卡丘漏洞平台通关系列)
目录 一.来自官方的简介 二.来自小可爱的通关步骤 第一关 File Inclusion(local) 1.读取"隐藏"文件 2.读取系统文件 3.结合文件上传getshell ...
- 文件包含漏洞(原理及介绍)
文件包含漏洞(原理及介绍) File inclusion,文件包含(漏洞).程序开发人员通常出于灵活性的考虑,会将被包含的文件设置成变量,然后动态调用这些文件.但正是因为调用的灵活性导致用户可能调用一 ...
最新文章
- AI换脸、声音篡改等,明确写入新版《民法典》
- 有感于“政府傍大款”----谈中小企业融资问题
- python中any的妙用
- 定义根目录, window格式 转化为linux格式
- react项目_保证一看就会 | 手把手教你创建一个React项目
- POJ2560-雀斑(Freckles)【图论,并查集,最小生成树,KURUSKAL】
- SqlServer中dateTime、dateTime2、date、datetimeoffset的区别
- 我来重新学习 javascript 的面向对象(part 1)
- 数组 -- 3Sum Closet -- 图解
- linux 软件源码安装教程,linux源码安装软件步骤
- HDU5828 Rikka with Sequence
- 运筹学-运输问题-最小元素法
- 商用计算机品牌,请问什么牌子的笔记本比较好啊?要商用的
- 如何防御DOS和DDOS攻击
- Ambari2.7+HDP3.0安装(基于Centos7)
- Java开发人员幽默外号,姓李的幽默外号 - 经典语录大全
- C语言等待一秒,延时函数sleep()
- Eclipse的“order and export”是干什么用的?
- 使用压缩软件将exe和dll文件打包成一个exe启动文件
- 超融合基础架构容灾 -Nutanix Metro Availability + VMwareHA容灾