前言
- 文章很多地方是基于个人理解的,有可能存在错误,敬请指出。
- 如果
DVWA是在虚拟机搭建的,需要关闭虚拟机的防火墙,开启网络的桥接模式 先检测主机能否ping通虚拟机的IP,之后再访问http://虚拟机的IP地址/DVWA所在路径 我的DVWA所在路径为DVWA-master - 访问前记得开启三项服务
Apache、FTP、MySQL Apache用于解析网页语言,如html、php、jsp、asp;接收用户的get、post请求并响应 FTP用于文件上传 MySQL是mysql数据库的交互
  
一、Low等级
在低等级下,对文件上传没有限制,上传之后会存储在hackable/uploads文件夹下,并以上传的文件名作为文件名称存储。
<?php
if( isset( $_POST[ 'Upload' ] ) ) {
$target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );
if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
echo '<pre>Your image was not uploaded.</pre>';
}
else {
echo "<pre>{$target_path} succesfully uploaded!</pre>";
}
}
?>
写一个一句话木马并上传,连接的密码为cmd

上传后回显了上传的路径

在DVWA查看一下上传的文件是否成功

使用路径访问一下php脚本,没有出现报错就表示脚本可用

使用蚁剑或菜刀连接


二、Medium等级
源码如下:
<?php
if( isset( $_POST[ 'Upload' ] ) ) {
$target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );
$uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];
$uploaded_type = $_FILES[ 'uploaded' ][ 'type' ];
$uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];
if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) &&
( $uploaded_size < 100000 ) ) {
if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
echo '<pre>Your image was not uploaded.</pre>';
}
else {
echo "<pre>{$target_path} succesfully uploaded!</pre>";
}
}
else {
echo '<pre>Your image was not uploaded. We can only accept JPEG or PNG images.</pre>';
}
}
?>
$_FILES是预定义的数组,用来保存上传文件的信息 如果上传的文件为单个,则$_FILES为二维数组 如果上传的文件为多个,则$_FILES为三维数组 PHP $_FILES详解- 下方的
name、type、size用于保存文件的名称、类型和大小(字节Byte) 并将这三个参数的内容赋值到了$_uploaded_name、$_uploaded_type和$_uploaded_name变量中
$uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];
$uploaded_type = $_FILES[ 'uploaded' ][ 'type' ];
$uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];
当上传文件的类型为image/jpeg或者是image/png,同时文件的大小小于100000才能进入if语句中
if(
( $uploaded_type == "image/jpeg"|| $uploaded_type == "image/png")
&&( $uploaded_size < 100000 )
)
用burp抓包

修改文件类型Content-Type为image/jpeg或者是image/png

上传成功

连接木马


|