文件上传漏洞演示脚本之js验证

文件上传漏洞演示脚本之js验证

0

0

716

关于文件上传漏洞,想必玩web安全的同学们都有接触,之前本站也发布过一篇文章介绍文件上传漏洞的各种绕过方法,但是只是有文档却没有演示代码,最近给公司一客户培训,就照文档中的绕过写出了相应的代码,方便我等小菜研究,此次的文章我会连续发几天都是关于如何绕过的,全都是科普文,很简单的,希望小伙伴们喜欢。

关于文件上传漏洞的文章

绕过文件上传验证

为什么文件上传表单是主要的安全威胁

js验证绕过演示代码






01 <?php






02 /**






03  * Created by 独自等待






04  * Date: 14-1-22






05  * Time: 下午7:19






06  * Name: upload1.php






07  * 独自等待博客:http://www.waitalone.cn/






08  */






09 //文件上传漏洞演示脚本之js验证






10 $uploaddir ‘uploads/‘;






11 if (isset($_POST[‘submit‘])) {






12     if (file_exists($uploaddir)) {






13         if (move_uploaded_file($_FILES[‘upfile‘][‘tmp_name‘], $uploaddir ‘/‘ $_FILES[‘upfile‘][‘name‘])) {






14             echo ‘文件上传成功,保存于:‘ $uploaddir $_FILES[‘upfile‘][‘name‘] . "\n";






15         }






16     else {






17         exit($uploaddir ‘文件夹不存在,请手工创建!‘);






18     }






19     //print_r($_FILES);





20 }






21 ?>






22 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"






23     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">






24 <html xmlns="http://www.w3.org/1999/xhtml">






25 <head>






26     <meta http-equiv="Content-Type" content="text/html;charset=gbk"/>






27     <meta http-equiv="content-language" content="zh-CN"/>






28     <title>文件上传漏洞演示脚本--JS验证实例</title>






29     <script type="text/javascript">






30         function checkFile() {






31             var file = document.getElementsByName(‘upfile‘)[0].value;






32             if (file == null || file == "") {






33                 alert("你还没有选择任何文件,不能上传!");






34                 return false;






35             }






36             //定义允许上传的文件类型






37             var allow_ext = ".jpg|.jpeg|.png|.gif|.bmp|";






38             //提取上传文件的类型






39             var ext_name = file.substring(file.lastIndexOf("."));






40             //alert(ext_name);






41             //alert(ext_name + "|");






42             //判断上传文件类型是否允许上传






43             if (allow_ext.indexOf(ext_name + "|") == -1) {






44                 var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;






45                 alert(errMsg);






46                 return false;






47             }






48         }






49     </script>






50 <body>






51 <h3>文件上传漏洞演示脚本--JS验证实例</h3>





52  






53 <form action="" method="post" enctype="multipart/form-data" name="upload" onsubmit="return checkFile()">






54     <input type="hidden" name="MAX_FILE_SIZE" value="204800"/>






55     请选择要上传的文件:<input type="file" name="upfile"/>






56     <input type="submit" name="submit" value="上传"/>






57 </form>






58 </body>






59 </html>

js验证绕过方法

JS验证是最好绕过,好像有句话是基于客户端的验证都是不安全的,这里我们有多种绕过方法。

如何判断文件上传是基于客户端JS验证?

方法也比较多,比如直接查看网站源文件、使用抓包工具查看客户端是否向服务器提交了数据包,如果没有则是js验证、随便上传一个文件,看返回结果。

如上图所示,JS验证的会在你提交了上传文件以后,直接弹出一个提示,并终止文件向服务器提交。绕过方法如下:

A、我们直接删除代码中onsubmit事件中关于文件上传时验证上传文件的相关代码即可。

B、直接更改文件上传JS代码中允许上传的文件扩展名你想要上传的文件扩展名。

C、使用本地提交表单即可,如下图,作相应的更改。

D、使用burpsuite或者是fiddle等代理工具提交,本地文件先更改为jpg,上传时拦截,再把文件扩展名更改为asp即可。

以上4种方法,大家可以自由使用,都可以绕过本地JS验证。

时间: 2024-10-11 20:17:30

文件上传漏洞演示脚本之js验证的相关文章

1.5 webshell文件上传漏洞分析溯源(1~4)

webshell文件上传漏洞分析溯源(第一题) 我们先来看基础页面: 先上传1.php ---->   ,好吧意料之中 上传1.png  ---->   我们查看页面元素 ----->   ,也没有前端验证 看来只能用burp抓包来改包绕过,我们修改1.php  ---->   1.php .png ,然后上传抓包改包 0x20 -----> 0x00 webshell文件上传漏洞分析溯源(第一题) 我们先来看基础页面: 先上传1.php ---->   ,好吧意料之中

文件上传漏洞原理以及防范

1. 什么是文件上传漏洞 程序员由于没有对上传的文件进行严格限定,导致黑客可以通过工具上传其他格式的程序文件(比如:webshell),这样黑客就会拿到一个可执行环境,在服务器上搞破坏. 一个常见的例子,很多网站存在上传图片的功能,如果不对上传图片的扩展名进行检测.过滤就会造成上传漏洞. 2. 如何防范上传漏洞 步骤:前端JS代码限定--->后台代码检测--->取消文件目录执行脚本的权限. 以如何防范图片上传漏洞做个过程分析: 新建一个解决方案: 2.1 第一步前端用JavaScript对上传

详解文件上传漏洞

介绍 在现代互联网网站中,上传文件基本上是一种常见的功能,允许用户上传一些图片,视频以及其他类型的文件.如果网站出现文件上传漏洞,那么恶意用户就可以将可执行脚本程序上传到web服务器中,获得网站权限,进一步 gongji web服务器.当上传文件时,如果服务端未对客户端上传的文件进行严格的验证和过滤,就容易造成文件上传漏洞,即上传任意文件(包括脚本文件php,jsp,asp,aspx等格式)恶意用户可以利用上传的webshell控制整个网站甚至控制服务器 绕过 js检测绕过js检测绕过漏洞常见于

非法文件上传漏洞技术

1 上传技术基础 1.1 JS验证绕过类 如何判断为本地验证呢? 一般情况下速度较快的返回信息认为是本地验证,但有时候需要根据抓包以及跟踪上传代码来分析是否为本地验证. 删除验证方法绕过上传 修改过滤白名单绕过上传 在客户端的检测中,通常使用JS对上传图片检测,包括文件大小.文件拓展名.文件类型等.在绕过本地上传限制时,可以使用Firebug对客户端的脚本进行编辑. 1.2 MIME类型检测绕过类 MIME作用:使用客户端软件,Web服务器使用MIME来说明发送数据的种类,Web客户端使用MIM

【Web安全】文件上传漏洞原理分析

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

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

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

简单总结文件上传漏洞

写在前面:无图言diao系列:排版样式我看着还行,不喜欢请ALT+F4:能看完绝对对你有用:代码基本能直接用:有错误恳请指出欢迎发邮件与我交流:参考了网上以有的博客,侵删: 0x00 文件上传漏洞概述 用户突破服务端限制向服务器上传了未经允许的文件,可能是恶意代码或是恶意程序. 但是存在问题,单一的文件上传漏洞并没有直接造成服务器权限的丢失.如果服务器web容器无法解析上传的恶意代码,上传的文件将毫无意义,就相当于在硬盘上有一个病毒文件,但如果我们永远也不去执行它,那他就只是一段存在硬盘上的01

集训第六天:文件上传漏洞

韩舒学姐(相当温柔)今天给我们讲解了文件上传漏洞,以及Anrwsord和Cknife等工具的使用. 文件上传漏洞 上传的文件不进行限制,有可能会被利用于上传可执行文件.脚本到服务器上,并且通过脚本文件可以获得执行服务器端命令的能力 木马 根据语言分类,有PHP.ASP.JSP.ASP.NET等不同语言下的木马:根据作用分类,有大马和小马 PHP一句话木马: <?php ehco shell_exec($_GET['a']); ?> <?php ehco shell_exec($_POST

WEB安全性测试之文件上传漏洞

1.漏洞描述:文件上传漏洞,是指可以利用WEB上传一些特定的文件包含特定代码如(<?php phpnfo;?> 可以用于读取服务器配置信息.上传成功后可以点击) 上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力.文件上传本身是web中最为常见的一种功能需求,关键是文件上传之后服务器端的处理.解释文件的过程是否安全.一般的情况有: 1.上传Web脚本语言,服务器的WEB容器解释并执行了用户上传的脚本,导致代码执行,篡改主页 2.上传Flash策略文件cro