欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 文件上传全详解

文件上传全详解

2025/2/6 21:32:11 来源:https://blog.csdn.net/2302_81178149/article/details/145433812  浏览:    关键词:文件上传全详解

前言

我们下面进行下一个漏洞——文件上传的学习。文件上传是常见漏洞之一,是Web安全必学漏洞。为探讨清楚文件上传漏洞的诸多细节,我们特以经典的upload-labs进行从入门到进阶的专项训练

作者进行upload-labs靶场练习时,在环境配置上出了很多问题,吃了很多苦头。为了防止大家踩坑,也为了节省大家的时间,在这里直接给出最简单最有效的配置方法,请见下文。

upload-labs安装与配置:upload-labs安装与配置-CSDN博客

本文是经由upload-labs训练总结而来,所以配合作者的upload-labs通关全详解食用更佳(怎么可以光学习不训练呢)

 upload-labs通关:upload-labs通关-CSDN博客

前置知识

这里大家最好还要有一些php基础,能大概读懂代码就可以;至于html之类的,大家经过之前的学习已经满足要求了。

文件上传基础

定义

文件上传是web系统中常见的一种功能,通过文件上传能实现上传图片、视频,以及其他类型的文件。

文件上传漏洞是指用户利用文件上传功能上传了一个可以执行的脚本文件,并且可以通过该文件获得服务器的权限的一种漏洞。

说白了,文件上传漏洞就是用户通过上传恶意文件去入侵服务器的一种漏洞。这个恶意文件被称为webshell,也可以称为一种网页后门。

关于webshell

  • 拥有较完整功能的webshell,我们一般称为大马。
  • 功能简易的webshell称为小马。
  • 除此之外还存在一句话木马、菜刀马、脱库马等等的名词,是对于webShell功能或者特性的简称。

一句话木马

在upload-labs中我们主要用了一句话木马,故这里对一句话木马进行简单解析。

<?php @eval($_POST['key']);?>

<?php ……?>是PHP标记,代表着这是一句PHP代码

eval()在PHP手册里的解释:

$_POST[]其实是一种全局变量

这样我们就可以综合起来看这一句话木马的含义,其实就是一句PHP代码,收集所有用POST方法传递的key的值(这个‘key’是我们任意起的名字),并将其执行

比如我们用POST方法传递一个key=phpinfo();

此时一句话木马就是<?php @eval(phopinfo(););?>

那么就会执行phpinfo()函数

然后我们还可以去进一步利用,比如通过system()函数,key=system(ipconfig);去查一下ip等等

不过最便捷的方法还是直接连接中国蚁剑,蚁剑必须要用$_POST的密码,这也是为什么我们优先用这个一句话木马。具体的连接方式请见upload-labs通关。

我们在upload-labs中还用到的

<?php @eval($_GET['key']);?>
<?php $_GET['function']($_GET['key']);?>

也都是同理。

文件上传详解

文件上传漏洞前提

  1. 文件可上传
  2. 上传路径可知
  3. 上传文件可以被解释执行或被包含

存在的风险点

所有存在文件上传的地方都可能存在相关的漏洞,都可以进行测试,比如说上传头像、上传身份认证等

文件上传测试思路及方法

对于上传点测试思路及其方法如下,

思路:

方法:

这两张图取自upload-labs出题者。

大家经过upload-labs训练,想必已经对上面的技术较为熟练了,不多赘述

参考文献

WEB入门——文件上传漏洞_htaccess文件上传漏洞-CSDN博客

文件上传漏洞全解析:策略、绕过与安全修复-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com