文件上传漏洞基础/htaccess重写解析绕过/大小写绕过上传/windows特性绕过

这篇具有很好参考价值的文章主要介绍了文件上传漏洞基础/htaccess重写解析绕过/大小写绕过上传/windows特性绕过。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、htaccess重写解析绕过上传

htaccess文件

htaccess文件上传

靶场练习pass-04

代码分析

创建.htaccess文件

开始上传

访问

二、大小写绕过

upload-labs pass-05

代码分析

上传

访问

​编辑 

三、空格绕过上传

pass-06

代码分析

尝试上传

访问

四、利用windows系统特征绕过上传

pass-07

代码分析

尝试上传


一、htaccess重写解析绕过上传

htaccess文件

htaccess文件可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能!

htaccess文件上传

如果黑名单过滤了所有的能执行的后缀名,如果允许上传.htaccess。在htaccess文件中写入

SetHandler application/x-httpd-php

则可以将文件重写成php文件。PHPstudy中要使htaccess文件的规则生效,则需要在apache开启rewite重写模块,apache大多数都默认开启该模块,所以一般情况下都生效

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

可以看到我这里是默认开启的

靶场练习pass-04

代码分析

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists($UPLOAD_ADDR)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2","php1",
".html",".htm",".phtml",".pHp",".pHp5",".pHp4",".pHp3",".pHp2","pHp1",
".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf","
.jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp","
.aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",
".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //收尾去空

        if (!in_array($file_ext, $deny_ext)) {
            if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $UPLOAD_ADDR . '/' . $_FILES['upload_file']['name'])) {
                $img_path = $UPLOAD_ADDR . $_FILES['upload_file']['name'];
                $is_upload = true;
            }
        } else {
            $msg = '此文件不允许上传!';
        }
    } else {
        $msg = $UPLOAD_ADDR . '文件夹不存在,请手工创建!';
    }
}

 可以看到这一关非常丧心病狂啊,直接黑名单了几乎所有的后缀名,而且有很多是我没见过的qwq

创建.htaccess文件

<FilesMatch "png">
SetHandler application/x-httpd-php
</FileMatch>

开始上传

上传.htaccess、test.png

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

上传成功

访问

直接访问一下test.png

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

成功执行phpinfo()

上传成功!拿webshelll就直接上传一句话木马就ok了

二、大小写绕过

 有的黑名单没有对后缀名的大小写进行严格判断(一般不会有),导致可以更改后缀大小写绕过,如PHP、Php、pHp、PhP、pHP....

upload-labs pass-05

代码分析

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists($UPLOAD_ADDR)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //首尾去空

        if (!in_array($file_ext, $deny_ext)) {
            if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $UPLOAD_ADDR . '/' . $_FILES['upload_file']['name'])) {
                $img_path = $UPLOAD_ADDR . '/' . $file_name;
                $is_upload = true;
            }
        } else {
            $msg = '此文件不允许上传';
        }
    } else {
        $msg = $UPLOAD_ADDR . '文件夹不存在,请手工创建!';
    }
}

仔细看跟上一题的代码有什么区别

 $file_ext = strtolower($file_ext); 

 这句代码是将接收到的文件名都转成小写,然后再与黑名单比对,而这道题显然是没有的

我们可以尝试上传test.PhP

上传

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

直接上传成功了

访问

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

成功

三、空格绕过上传

还是黑名单中,如果没对空格进行过滤,可以利用在后缀名中加空格来进行绕过

pass-06

代码分析

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists($UPLOAD_ADDR)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        
        if (!in_array($file_ext, $deny_ext)) {
            if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $UPLOAD_ADDR . '/' . $_FILES['upload_file']['name'])) {
                $img_path = $UPLOAD_ADDR . '/' . $file_name;
                $is_upload = true;
            }
        } else {
            $msg = '此文件不允许上传';
        }
    } else {
        $msg = $UPLOAD_ADDR . '文件夹不存在,请手工创建!';
    }
}

这次少了这一行

        $file_ext = trim($file_ext); //首尾去空

没有进行首尾去空

尝试上传

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

 这里php后面加了一个空格但是看不出来

尝试上传

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

感觉像是浏览器自动把空格去掉了,我们抓包,在数据包里加

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php 这里空格就比较明显了,发送数据包

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

上传成功!

访问

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php 访问成功

四、利用windows系统特征绕过上传

Windows中后缀名.,系统会自动忽略末尾的".",所以可以通过在末尾加.来进行绕过

到这里我们能发现,前面的代码没有一行是没用的,每一行都针对一种上传方法!

pass-07

代码分析

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists($UPLOAD_ADDR)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //首尾去空
        
        if (!in_array($file_ext, $deny_ext)) {
            if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $UPLOAD_ADDR . '/' . $_FILES['upload_file']['name'])) {
                $img_path = $UPLOAD_ADDR . '/' . $file_name;
                $is_upload = true;
            }
        } else {
            $msg = '此文件不允许上传';
        }
    } else {
        $msg = $UPLOAD_ADDR . '文件夹不存在,请手工创建!';
    }
}

 这里少了一行去掉末尾的点,看到没

如果少了这一行,正巧传入的参数中末尾有点,经过strrchr的处理后,$file_ext就只有一个点了,跟$deny_ext中任何值都不匹配绕过黑名单

并且下面是使用$.file_name所以不会影响后面的转存

尝试上传

我们在windows中尝试修改后缀名为php.

 4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

 很遗憾,改不了,因为这个是windows的特性啊,自动忽略

所以我们抓包修改,最后访问test.php就行啦,传到文件夹里这个点就没了

先清空前面传的文件

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php

上传成功,尝试访问test.php

4、htaccess重写解析绕过,渗透测试,文件上传漏洞,安全,web安全,网络安全,php 成功文章来源地址https://www.toymoban.com/news/detail-535203.html

到了这里,关于文件上传漏洞基础/htaccess重写解析绕过/大小写绕过上传/windows特性绕过的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 文件上传漏洞基础/content-type绕过/黑名单绕过/

    目录 一、content-type绕过 contenent-type 源代码分析 绕过方式 尝试绕过 二、黑名单绕过 黑名单 代码分析 绕过方法 尝试绕过 contenent-type 有些上传模块,会对http的类型头进行检测,如果是图片类型,允许上传文件到服务器,否则返回上传失败。因为服务器是通过ent-type判断类型,

    2024年02月07日
    浏览(30)
  • htaccess绕过上传实验

    利用上传htaccess文件解析漏洞绕过验证进行上传PHP脚本木马 实验工具 火狐:Mozilla Firefox,中文俗称“火狐”(正式缩写为Fx或fx,非正式缩写为FF),是一个自由及开放源代码网页浏览器,使用Gecko排版引擎,支持多种操作系统,如Windows、Mac OS X及GNU/Linux等。 实验内容 什么是

    2024年02月09日
    浏览(25)
  • 文件上传漏洞(1), 文件上传绕过原理

    一, 前端校验上传文件 添加 Javascript 代码,然后在 form 表单中 添加 onsubmit=\\\"returb checkFile()\\\" 绕过前端: 1. 在浏览器设置中禁用js 通常不建议使用这种方式, 因为前端js中可能存在很多其他js的功能, 例如ajax请求. 2. 用burpsuite等工具修改请求. 因为前端js对文件类型做了限制, 那么将

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

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

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

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

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

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

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

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

    2024年02月10日
    浏览(35)
  • 文件上传漏洞--Upload-labs--Pass07--点绕过

    在Windows系统中,Windows特性会将文件后缀名后多余的点自动删除,在网页源码中,通常使用 deldot()函数 对点进行去除,若发现网页源代码中没有 deldot() 函数,则可能存在 点绕过漏洞。通过点绕过漏洞,可以达到上传含有恶意代码的文件的目的。 1、首先进行代码审计,发现网

    2024年02月21日
    浏览(32)
  • 文件上传漏洞进阶教程/白名单绕过/图片马制作/图片马执行

    相对于前面的黑名单绕过,白名单更加难以绕过,使用白名单验证相对比较安全,但如果存在可控参数目录,也存在被绕过的风险 目录可控%00截断绕过上传 upload-lab pass11 源码分析 deny_arr变成ext_arr,白名单,下面判断后缀名是否在白名单中,代码相较于黑名单也简单不少 但是

    2024年01月22日
    浏览(28)
  • 24 WEB漏洞-文件上传之WAF绕过及安全修复_阿里云盾waf绕过怎么修复

    目录 WAF绕过 上传参数名解析:明确哪些东西能修改? 常见绕过方法: `符号变异-防匹配(’ \\\" ;)` 数据截断-防匹配(%00 ; 换行) 重复数据-防匹配(参数多次) 搜索引擎搜索fuzz web字典 文件上传安全修复方案 WAF绕过 safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些,在真实情况下现

    2024年02月20日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包