文件上传漏洞进阶教程/白名单绕过/图片马制作/图片马执行

这篇具有很好参考价值的文章主要介绍了文件上传漏洞进阶教程/白名单绕过/图片马制作/图片马执行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、白名单绕过

相对于前面的黑名单绕过,白名单更加难以绕过,使用白名单验证相对比较安全,但如果存在可控参数目录,也存在被绕过的风险

目录可控%00截断绕过上传

upload-lab pass11 源码分析

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);
    if(in_array($file_ext,$ext_arr)){
        $temp_file = $_FILES['upload_file']['tmp_name'];
        $img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;

        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        }
        else{
            $msg = '上传失败!';
        }
    }
    else{
        $msg = "只允许上传.jpg|.png|.gif类型文件!";
    }
}

deny_arr变成ext_arr,白名单,下面判断后缀名是否在白名单中,代码相较于黑名单也简单不少

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

但是这里使用了$_GET['save_path']获取客户端的值,这个值可以被客户端修改,从而遗留安全隐患

截断文件名

%00截断需要gpc关闭 php版本要小于5.3.4版本

我这里版本是5.4.45先选择一个低版本

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

 关闭gpc

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

 文章来源地址https://www.toymoban.com/news/detail-814855.html

这种攻击手法其实与sql注入中的注释差不多,%00的意思是忽略后面的内容进行上传,如果我们上传test.png再给服务器传递的save_path改为/upload/test.php%00那么最终上传到服务器的内容为test.php,操作一下,看起来就直观了

尝试上传

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

看到这里save_path其实就是本地的upload文件夹的路径,在后端中与检测后的文件名拼接,将文件上传,我们通过截断,忽略检测后的内容,直接上传到我们写入的文件中

因为已知是get型,所以直接写%00就ok,get型需要进行编码

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全 清空前面上传的内容

放包

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

上传成功

POST型截断

pass-12

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

只是将GET改成POST了

尝试上传

一样的套路,上传test.php抓包

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

直接在抓包里进行解码再放包就ok了

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

二、文件头检测绕过

有的文件上传,上传时会检测文件头,不同的文件,文件头也不一样,常见的文件上传图片头检测 它检测图片两个字节长度,如果不是图片格式,会禁止上传文件

常见的文件头

PNG:89504E47

JPEG:FFD8FF

GIF:47494638

....

对隐写术有些了解的同学应该对这个很熟悉啦

pass-13

代码分析

nction getReailFileType($filename){
    $file = fopen($filename, "rb");
    $bin = fread($file, 2); //只读2字节
    fclose($file);
    $strInfo = @unpack("C2chars", $bin);    
    $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);    
    $fileType = '';    
    switch($typeCode){      
        case 255216:            
            $fileType = 'jpg';
            break;
        case 13780:            
            $fileType = 'png';
            break;        
        case 7173:            
            $fileType = 'gif';
            break;
        default:            
            $fileType = 'unknown';
        }    
        return $fileType;
}

这时提取文件头的函数

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

对文件进行解包

 文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

转成整型,然后白名单判断

下面就是获取上传文件,调用这个函数,返回如果不是unknown就上传,代码就不展示了

图片一句话木马

为了绕过上述的检测,我们可以制作图片马,即将图片信息与木马组合到一起上传

制作

准备一张正常的图片,与恶意脚本php,放到一个目录下

 文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

 目录下运行CMD,执行

copy 1.png/b+test.php test.png

 文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

生成了一个新的png,我们直接给它上传到服务器

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全 

右键图片打开链接(获取图片地址),复制url

upload/3520221023175627.png

 这里需要利用文件包含漏洞,才能执行我们的图片马

我看大佬们这一关直接有个提示,有个链接,就是存在文件包含漏洞网页,但我这个靶场可能抽风了,我找了半天也没找到,所以我就自己写了一个,如果你们也没有可以直接再upload-labs文件夹下新建一个include.php

<?php
header("Content-Type:text/html;charset=utf-8");
$file=$_GET['file'];
if(isset($file))
{
	include $file;
}
else{
	show_source(__FILE__);
}
?>

复制保存就ok了

下面进入文件包含漏洞页面

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

将图片地址给传进去

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

 看到一堆乱码,这就是前面图片的内容,往下翻,就可以看到phpinfo()的结果啦

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

上传成功!

三、图片检测函数绕过

pass-14

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

 getimagesize是获取图片的大小,如果头文件不是图片会报错,直接可以利用图片马

上传

一样的上传我们做好的图片马,通过包含漏洞,进行执行

文件上传白名单绕过,文件上传漏洞,渗透测试,安全,web安全

 

到了这里,关于文件上传漏洞进阶教程/白名单绕过/图片马制作/图片马执行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 文件上传漏洞(2), 文件上传实战绕过思路, 基础篇

    准备一句话木马文件 mm.php 一, 前端绕过 p1 浏览器禁用js 先把 mm.php 后缀名修改为 mm.jpg , 点击提交后, 用 burp 截取请求, 将数据包中的文件名修改回 mm.php 再提交. 二, 类型MIME绕过 p2 使用 burp 修改 Content-Type: image/jpeg 三, 黑名单绕过 p3 后端禁止上传.asp|.aspx|.php|.jsp后缀文件. apac

    2024年02月08日
    浏览(51)
  • 【文件上传漏洞绕过方式】

    目录 前言 正文 总结   目前,文件上传往往在业务中不可避免,也是极其容易出现上传漏洞。根据owasptop10中的排名,文件上传漏洞(属于攻击检测和防范不足)高居其中。今天和大家分享常见的文件上传的绕过方式。  绕过方式一:前端绕过  首先,根据前端页面队上传文

    2023年04月08日
    浏览(51)
  • 文件上传漏洞基础/htaccess重写解析绕过/大小写绕过上传/windows特性绕过

    目录 一、htaccess重写解析绕过上传 htaccess文件 htaccess文件上传 靶场练习pass-04 代码分析 创建.htaccess文件 开始上传 访问 二、大小写绕过 upload-labs pass-05 代码分析 上传 访问 ​编辑  三、空格绕过上传 pass-06 代码分析 尝试上传 访问 四、利用windows系统特征绕过上传 pass-07 代码

    2024年02月13日
    浏览(46)
  • C语言进阶教程(include只能包含.h文件吗?)

    include在多文件编程中是非常重要的,我们经常使用他来包含一些头文件,方便我们管理代码和项目,那么include是只能包含头文件吗?这篇文章将会告诉大家include是不是只能包含头文件。 在C语言中,#include 是预处理指令,它告诉编译器在源代码中包含另一个文件的内容。#

    2024年02月11日
    浏览(40)
  • 【文件上传漏洞-02】前端限制与绕过靶场实战

    有些web应用文件上传功能,仅在前端用JS脚本做了检测,如检测文件后缀名等。 JS 检测绕过上传漏洞常见于用户选择文件上传的场景,如果上传文件的后缀不被允许,则会弹框告知,此时上传文件的数据包并没有发送到服务端,只是在客户端浏览器使用JavaScript对数据包进行检

    2024年02月15日
    浏览(46)
  • 上传验证绕过——服务端白名单绕过

    服务端白名单绕过 MIME类型检测绕过 Upload-labs(Pass-02)第二关通过服务端对数据包的MIME进行检查 通过burp修改Content-Type类型 将content-type修改为image/png 上传成功 %00截断绕过 %00截断是操作系统层的漏洞,由于操作系统是C语言或汇编语言编写的,这两种语言在定义字符串 时,都

    2024年02月11日
    浏览(36)
  • 【网络安全 --- 任意文件上传漏洞靶场闯关 6-15关】任意文件上传漏洞靶场闯关,让你更深入了解文件上传漏洞以及绕过方式方法,思路技巧

      首先分享一个自己做的很不错的网路安全笔记,内容详细介绍了许多知识 超详细的网络安全笔记 分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记​编辑https://m.tb.cn/h.5JdFcih?tk=OuVrWRl9vMx%20CZ3457 https://m.tb.cn/

    2024年02月07日
    浏览(48)
  • 文件上传进阶绕过(二)4个技巧和靶场实战

    ★★ 免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 0、环境准备 请移步《文件上传靶场实战:upload-labs第1-3关》 1、.号绕过原理 Windows系统下,

    2024年01月16日
    浏览(44)
  • 【Golang】Golang进阶系列教程--Golang中文件目录操作的实现

    Golang中,文件是指计算机中存储数据的实体,文件可以是文本文件、二进制文件、配置文件等。在Go语言中,通过操作文件,我们可以读取文件的内容,写入数据到文件,以及获取文件的属性等。 Golang中的文件可以分为两种类型:文本文件和二进制文件。文本文件是指只包含

    2024年02月15日
    浏览(38)
  • 24 WEB漏洞-文件上传之WAF绕过及安全修复

    safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些,在真实情况下现在很多网站都是用宝塔 Content-Disposition: 表单数据,一般可更改 name:表单参数值,不能更改,改完之后,数据包是有问题的,跟前端的表单值会对不上,这样后端会无法判断你上传的地方,如果要更改,那

    2024年02月10日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包