前言
- 文章很多地方是基于个人理解的,有可能存在错误,敬请指出。
- 如果
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
上传成功
连接木马
|