上传漏洞--名单绕过

1、黑名单绕过

<title>图片上传</title>
<body>
<form action="blacklist.php" method="post" enctype="multipart/form-data">
        <input type=‘file‘ name=‘file‘ id=‘file‘><br />
        <input type=‘submit‘ name=‘submit‘ value=‘提交‘>
</form>
</body>
<?php
        $Blacklist = array(‘asp‘,‘php‘,‘jsp‘,‘php5‘,‘asa‘,‘aspx‘);  //黑名单
        if(isset($_POST["submit"])){
                $name = $_FILES[‘file‘][‘name‘];        //接受文件名
                $extension = substr(strrchr($name,"."),1);   //得到扩展名
                $boo = false;
                foreach($Blacklist as $key => $value){
                        if($value == $extension){
                                $boo = true;
                                break;
                        }
                }
                if(!$boo){
                        $size = $FILES[‘file‘][‘size‘];
                        $tmp = $_FILES[‘file‘][‘tmp_name‘];
                        move_uploaded_file($tmp,$name);
                        echo "file uploaded success,the path is:".$name;
                }
                else{
                        echo "file is validate";
                }
        }
?>

黑名单绕过的方式很多,我这里只介绍一种!

绕过方法:  

  找容易忽视的后缀:cer等等;

  大小写绕过;只是在Windows中会被解析

  文件名后面加 . 或者 空格  在Windows中也会被自动去掉从而解析为应用程序文件

  

上面这种只是一种,具体情况,还需要看具体环境;

2、白名单

<title>图片上传</title>
<body>
<form action="whitelist.php" method="post" enctype="multipart/form-data">
        <input type=‘file‘ name=‘file‘ id=‘file‘><br />
        <input type=‘submit‘ name=‘submit‘ value=‘提交‘>
</form>
</body>
<?php
        $Whitelist = array(‘rar‘,‘jpg‘,‘png‘,‘bmp‘,‘gif‘,‘doc‘,‘txt‘);  //黑名单
        if(isset($_POST["submit"])){
                $name = $_FILES[‘file‘][‘name‘];        //接受文件名
                $extension = substr(strrchr($name,"."),1);   //得到扩展名
                $boo = false;
                foreach($Whitelist as $key => $value){
                        if($value == $extension){
                                $boo = true;
                                break;
                        }
                }
                if($boo){
                        $size = $FILES[‘file‘][‘size‘];
                        $tmp = $_FILES[‘file‘][‘tmp_name‘];
                        move_uploaded_file($tmp,$name);
                        echo "file uploaded success,the path is:".$name;
                }
                else{
                        echo "file is validate";
                }
        }
?>

白名单绕过方式一般都是通过解析漏洞来构造,如IIS6.0 会解析1.asp;1.jpg,所以我们可以通过这种方式来修改上传

后续还有~~~

时间: 2024-10-08 18:25:41

上传漏洞--名单绕过的相关文章

文件上传漏洞(绕过姿势)

文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接.但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识.俗话说,知己知彼方能百战不殆,因此想要研究怎么防护漏洞,就要了解怎么去利用.此篇文章主要分三部分:总结一些常见的上传文件校验方式,以及绕过校验的各种姿势,最后对此漏洞提几点防护建议.(根据个人经验总结,欢迎补充纠错~~) 文件上传校验姿势 客户端javascript校验(一般只校验后缀名) 服务端校验 文件头content-type

【渗透课程】第七篇-上传漏洞之绕过上传漏洞

前一篇我们已经讲过了上传漏洞的解析漏洞,在某些时候,知道网站存在哪个解析漏洞,那么我们就可以更好的利用上传漏洞 这个知识点在我们前面就有粗略说过了(http://www.yuntest.org/index.php/archives/765.html), http拦截也是上传漏洞的其中之一, 下面我们来对绕过上传漏洞进行更深的了解. 正文 管理员防止文件上传漏洞时可以分为两种,一种是客户端检测,一种是服务端检测: 客户端检测:使用JavaScript检测,在文件上传之前,就对文件进行验证 服务器端

文件上传漏洞及其绕过

1.前端JS验证 基于本地验证文件是否符合要求:直接将JavaScript禁用.或者burp抓包后修改后缀,将php文件后缀现先改为jpg,burp抓包后后缀改回php. 2.MIME 类型验证 burp抓包将Content-type类型修改为image/jpeg,image/png等 3.黑名单验证 ①寻找没有过滤的类型: phtml php3 php4 php5 PHP phtm 例如phtml php3 php4 php5 PHP phtm这些后缀名首先得让服务器支持这些解析为php脚本运

上传漏洞--前端绕过

首先,这篇文章是来自独自等待大牛的博客,这是文章原文: http://www.waitalone.cn/js-file-upload-vulnerability-validation-script.html 我只不过把代码改的简单了一些! 首先是上传页面 <title>图片上传</title> <script type="text/javascript"> function checkFile(){ var flag = false; var str

文件上传漏洞及解析漏洞总结

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力.这种攻击方式是最为直接和有效的,"文件上传"本身没有问题,有问题的是文件上传后,服务器怎么处理.解释文件.如果服务器的处理逻辑做的不够安全,则会导致严重的后果. 文件上传后导致的常见安全问题一般有: 1)上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行. 2)上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(

文件上传-文件名长度绕过白名单限制

??在实际渗透中,当我们发现有文件上传的地方时,我们会尽可能地尝试所有的办法进行webshell的上传,只要能上传webshell,就说明本次渗透至少成功了一般,后续就看获得的webshell的权限情况进行下一步的操作.对于文件上传漏洞的防护来说,主要分为以下两类:白名单限制和黑名单限制,对于黑名单的限制,我们只需要寻找一些较为偏僻的可执行后缀.大小写混写以及相关操作系统的特性(如windows文件名后缀的最后会自动过滤空格以及.等)来进行绕过:对于白名单的限制来说,一般是结合解析漏洞.代码函数

owasp文件上传漏洞简析

0x01: 文件上传漏洞起因于,上传程序没有对上传文件格式进行正确判断,导致可执行程序上传到网站目录. 常见的验证上传文件有两种:1.js本地验证,通过js获取上传文件后缀名,并和白名单比较,匹配则上传成功.由于js代码是本地验证,存在绕过风险(去除js代码,构造表单数据,直接绕过). 2.后端程序验证,通过post数据到file_upload()函数,$_FILES['file']['type']判断上传程序后缀名. function file_upload(){ $file_name = $

文件上传漏洞攻击与防御

前言 从一年前开始学习web安全以来,一直都是在吸收零碎的知识,不断地看书与一些前辈的文章,中间也经过一些实践,学习相关的工具,但是却没真真正正地在脑中形成一套完整的体系.从不久前就想着要写一些博客,趁着这个机会,便好好梳理一下所学的知识,只是这些文章所写大部分内容也是搬运前辈的文章,鲜有自己所想所悟. 关于文件上传漏洞,百度一下便有许多文章出来,在这里我也稍稍做整理. 0x00 文件上传漏洞所需满足的条件 一是文件可上传(感觉这一句是废话).二是上传文件路径可知,如果路径不可知就没法访问,亦无

文件上传漏洞原理与实例测试

0x00 什么是文件上传 为了让用户将文件上传到网站,就像是给危机服务器的恶意用户打开了另一扇门.即便如此,在今天的现代互联网的Web应用程序,它是一种常见的要求,因为它有助于提高业务效率.企业支持门户,给用户各企业员工有效地共享文件.允许用户上传图片,视频,头像和许多其他类型的文件.向用户提供的功能越多,Web应用受到攻击的风险和机会就越大,这种功能会被恶意用户利用,获得到一个特定网站的权限,或危及服务器的可能性是非常高的. 0x01 为什么文件上传存在漏洞 上传文件的时候,如果服务器脚本语言