文件漏洞上传

一般危害:xss csrf ssrf
获取后台登录

影响业务逻辑
文件上传 严重级别漏洞,可以直接接管你的服务器

初级别:

文件漏洞上传

$target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads///上传文件后,文件所保存的位置
$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );通过 . 来进行拼接,通过files函数,来记录文件名称
先将上传的文件寸在临时目录下/tmp ,检查没问题后再上传到目标目录下
例如上传的文件名为ZZSlblog.php,那么将会保存在hackable/uploads/ZZSlblog.php目录下

思考:
如何判断文件上传到哪里了呢?
1,有回显: http://192.168.1.69/DVWA-master/dvwa/images/logo.png

1无回显情况:
对目录扫描(uploads目录或images目录,关键词)
2开源项目无回显:
直接审计代码,或者搭一个靶场
3.rename 改名字了 改名方式:时间戳 hash

Medium

文件漏洞上传

$uploaded_name = $_FILES[ 'uploaded' ][ 'name' ]; $uploaded_type = $_FILES[ 'uploaded' ][ 'type' ]; $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];
FILEs函数:
作用:
upload对应的你上传文件的名称,
name对应你上传文件的某一个属性’name’=filename
type,size类似
通过BP抓包对他进行实现:

文件漏洞上传
$uploaded_name = BLog1.jpg

$uploaded_type = image/jpeg

$uploaded_size = 508932
if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) &&
        ( $uploaded_size < 100000 ) ) { ` xxx }

上传的文件大小必须小于100k

  • 可以通过修改文件类型来进行文件上传绕过
  • 修改文件名的后缀名

常见位置的低级错误已经被发现和修复
犄角旮旯位置寻找(很容易没结果

High级别

文件漏洞上传
// 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' ];

第2行,将文件名后面拆分出来,拆分成文件类型存到ext中
$uploaded_name = BLog1.jpg

$uploaded_ext =jpg

$uploaded_tmp = 临时文件

$uploaded_size = 508932

if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $uploaded_ext ) == "png" ) &&
        ( $uploaded_size < 100000 ) &&
        getimagesize( $uploaded_tmp ) )

代码审计:
1.文件类型是否为:jpg,jpeg,ext
2.文件大小是否小于100k
3.getimagesize通过文件头判断文件是否为有效图片(绕过:前面加GIF89a)

绕过过程:
图片码=图片+代码

linux方法:
通过mimetype xxx.php来识别文件类型
cat xxx. php>>php xxx.jpg
windows方法;
copy 1.jpg/b+1.php/a 2.jpg ||b&#x662F;&#x4E8C;&#x8FDB;&#x5236;&#xFF0C;a&#x4E3A;ascii&#x7801;

图片码是不能直接被解析执行的,因此要结合文件包含漏洞使用:
include(webshell.jpg)
前提:这个漏洞是服务器端自带的:

<?php
$file = $_GET['file'];
include $file;
?>

上传思路:

1.制作图片马
2.通过文件包含漏洞引用webshell.jpg实现一句话木马的执行

Original: https://www.cnblogs.com/ZZslBl0g/p/16589132.html
Author: ZZslBl0g
Title: 文件漏洞上传

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578275/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 解决Ubuntu(20.04)和Windows10双系统时间不同步问题

    1. 原因分析 出现这种情况的原因是 Windows 和 Ubuntu它们在默认情况下看待硬件时间(主板上的BOIS显示的时间)的方式 不一样。 我们先来看看时间的概念: [En]…

    Linux 2023年5月27日
    0190
  • 记一次大部分网络服务无法连接问题 (windows更新, steam登录, …)

    问题很简单,就是windows更新等了老半天都没反应,最后失败了。steam大多数情况是无法登陆… 最后搞了老半天,突然想到是不是DNS问题… 结果还真是 …

    Linux 2023年6月7日
    0102
  • 部署apache

    1、使用DockerHub镜像 [root@master ~]# mkdir httpd_dockerfile [root@master ~]# cd httpd_dockerfi…

    Linux 2023年6月13日
    0113
  • K8s-小型综合实验(k8s+keeplived+nginx+iptables)

    K8S小型综合实验(k8s+keeplived+nginx+iptables) 实验目的 1.Kubernetes 区域可采用 Kubeadm 方式进行安装。 2.要求在 Kube…

    Linux 2023年6月13日
    0108
  • Linux——防火墙、SELinux规则

    防火墙的功能:简单地释放或阻止某些服务和端口 [En] The function of firewall: simply to release or block certain s…

    Linux 2023年5月27日
    093
  • 2-第一个Django程序

    第一个Django程序 从本章节开始将通过实现一个投票应用程序,来让用户逐步的了解Django。这个程序由两步分组成: 公共站点,允许用户访问进行投票,和查看投票。 站点管理,允许…

    Linux 2023年6月7日
    0112
  • Linux(Deepin)Qt引用ffmpeg的问题(: error: cannot find -l…)

    Linux(Deepin)Qt引用ffmpeg的问题 1、环境介绍 Deepin 20.4 Qt 5.15.1 2、问题描述 从git上找了一个项目打算在Linux练习,顺便熟悉L…

    Linux 2023年6月14日
    0108
  • 面试复盘(1)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0103
  • Linux Ubuntu 下载&安装 Java

    1. 下载 Java OpenJDK VS Oracle JDK ? 下载之前查了下资料,有 OpenJDK 和 Oracle JDK 两种: Java 最早由 SUN 公司发明,…

    Linux 2023年6月14日
    081
  • dockerfile

    基础结构 指令 from label maintainer run cmd export env add copy entrypoint volume user workdir o…

    Linux 2023年6月7日
    086
  • python爬虫_入门_翻页

    写出来的爬虫,肯定不能只在一个页面爬,只要要爬几个页面,甚至一个网站,这时候就需要用到翻页了 其实翻页很简单,还是这个页面http://bbs.fengniao.com/forum…

    Linux 2023年6月6日
    082
  • DHCP超级作用域

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    087
  • ztreejs树 metro风格 鼠标经过 显示用户自定义控件 新增,编辑,删除,向下,向上操作

    php;gutter:true; ztreejs树功能说明:自定义控件功能新增,编辑,删除,向下移动,向上移动已实现,只是前端,如果需要跟后台交互,封装对应的函数,在相应位置调用即…

    Linux 2023年6月7日
    084
  • PyQt5的使用

    PyQt5 目录 Qt Designer PyQt5基本窗口控件(QMainWindow、Qwidget、Qlabel、QLineEdit、菜单、工具栏等) PyQt5高级组件(Q…

    Linux 2023年6月14日
    0104
  • 网络安全常见术语

    黑客帽子之分 白帽 白帽:亦称白帽黑客、白帽子黑客,是指那些专门研究或者从事网络、计算机技术防御的人,他们通常受雇于各大公司,是维护世界网络、计算机安全的主要力量。很多白帽还受雇于…

    Linux 2023年6月14日
    090
  • C盘空间怎么不够了?原来杀毒软件隔离区太大了

    打开小红伞的隔离区,文件全选,删除,居然一下多出20个G. C盘空间怎么不够了?原来杀毒软件隔离区太大了 麻了。打开小红伞的隔离区,文件全选,删除,一下多出20个G. 还有一个比较…

    Linux 2023年6月6日
    0115
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球