当前位置:首页 > 技术文章 > 正文内容

DVWA之文件上传_dvwa文件上传4种等级

arlanguage3个月前 (02-10)技术文章21

File Upload,即文件上传漏洞,通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马获取服务器的webshell权限,因此文件漏洞上传带来的危害常常是毁灭性的,Apache、Tomcat、Nginx等都曝出过文件上传漏洞。


难度(低)

审计代码

Your image was not uploaded.
'; } else { // Yes! echo "
{$target_path} succesfully uploaded!
"; } } ?>

可以看到,服务器对上传文件的类型、内容没有做任何的检查、过滤,存在明显的文件上传漏洞,生成上传路径后,服务器会检查是否上传成功并返回相应提示信息。

文件上传漏洞的利用是有限制条件的,首先当然是要能够成功上传木马文件,其次上传文件必须能够被执行,最后就是上传文件的路径必须可知。这里三个条件全都满足。

制作php一句话木马,文件格式改为php:

开始上传

上传成功,并且显示上传的路径。

使用中国菜刀连接

双击刚刚创建好的数据



难度(中)

审计代码

Your image was not uploaded.
'; } else { // Yes! echo "
{$target_path} succesfully uploaded!
"; } } else { // Invalid file echo '
Your image was not uploaded. We can only accept JPEG or PNG images.
'; } } ?>

Medium级别的代码对上传文件的类型、大小做了限制,要求文件类型必须是jpeg或者png,大小不能超过100000B(约为97.6KB)。

如果我们直接上传,会提示如下您的图片未上传.我们可以只接受JPEG或PNG图像可以看到,对上传的文件做出了要求,必须是jpg和png解决方法抓包修改文件类型即可

所以我们创建一个1.jpg的文件,使用burp进行修改文件类型

对burp抓的包进行更改

上传成功

使用中国菜刀连接



难度(高)

审计代码

Your image was not uploaded.
'; } else { // Yes! echo "
{$target_path} succesfully uploaded!
"; } } else { // Invalid file echo '
Your image was not uploaded. We can only accept JPEG or PNG images.
'; } } ?>

strrpos(string,find,start)函数返回字符串find在另一字符串string中最后一次出现的位置,如果没有找到字符串则返回false,可选参数start规定在何处开始搜索。

getimagesize(string文件名)函数会通过读取文件头,返回图片的长、宽等信息,如果没有相关的图片文件头,函数会报错。可以看到,High级别的代码读取文件名中最后一个"."后的字符串,期望通过文件名来限制文件类型,因此要求上传文件名形式必须是"*.jpg"、"*.jpeg" 、"*.png"之一。同时,getimagesize函数更是限制了上传文件的文件头必须为图像类型。

我们上网下载一个jpg格式小尺寸的图片,使用edjpgcom工具,将一句话木马写入图片中

这里我找了一张小老虎的图片,将它移进edjpgcom.exe工具中

写入一句话木马

回到刚刚dvwa界面上,上传这个具有一句话木马的图片(图片马)

上传成功

这时我们利用之前的文件包含漏洞来配合中国菜刀连接刚刚上传的一句话木马

http://127.0.0.1/dvwa1/vulnerabilities/fi/?page=file:///D:\phpStudy\PHPTutorial\WWW\DVWA1\hackable\uploads\3.jpg

我们使用中国菜刀连接

路径为

http://127.0.0.1/dvwa1/vulnerabilities/fi/?page=file:///D:\phpStudy\PHPTutorial\WWW\DVWA1\hackable\uploads\3.jpg

连接成功

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/2423.html

标签: phpstudy nginx
分享给朋友:

“DVWA之文件上传_dvwa文件上传4种等级” 的相关文章

Nginx Lua编程基础

Lua是一门脚本动态语言,并不太适合做复杂业务逻辑的程序开发,但是,在高并发场景下,Nginx Lua编程是解决性能问题的利器。Nginx Lua编程主要的应用场景如下:API网关:实现数据校验前置、请求过滤、API请求聚合、AB测试、灰度发布、降级、监控等功能,著名的开源网关Kong就是基于Ngi...

Nginx常用配置及和基本功能讲解

作者:京东物流 殷世杰Nginx已经广泛应用于J-one和Jdos的环境部署上,本文对Nginx的常用的配置和基本功能进行讲解,适合Ngnix入门学习。1 核心配置找到Nginx安装目录下的conf目录下nginx.conf文件,Nginx的基本功能配置是由它提供的。1.1 配置文件结构Nginx的...

http请求域名强制跳转https

网站添加了https证书后,当http方式访问网站时就会报404错误,所以需要做http到https的强制跳转设置. ---------------一、采用nginx的rewrite方法--------------------- 下面是将所有的http请求通过rewrite重写到https上。 例如...

面试常问知识点:Nginx设置代理的一个注意点

前几天,重启了下Nginx代理服务,发现报错了,以下是本次的思考。1:先解决问题查看Nginx错误日志:40 SSL_do_handshake() failed (SSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handsha...

Nginx总结(九) 实现系统的动静分离

前段时间,搞Nginx+IIS的负载均衡,想了解的朋友,可以看这篇文章:《nginx 和 IIS 实现负载均衡》,然后也就顺便研究了Nginx + IIS 实现动静分离。所以,一起总结出来,与大家共同探讨。 什么是动静分离所谓系统动静分离,其实,就是将网站静态资源(HTML,JavaScript,C...

Linux日志处理神器-Logrotate

Logrotate简介Logrotate是Linux中日志分割、压缩、清理的工具,一般CentOS默认都会安装该工具。logrotate运行原理logrotate依赖于anacron执行每小时、每天、每周或每月的定时任务,corn每个小时会扫描当前机器中定时任务执行状态。 logrotate运行依...