当前位置: 首页 > news >正文

upload-labs通关笔记-第01关 文件上传之前端绕过(3种渗透方法)

目录

一、实验准备

1.构造脚本

2.打开靶场第1关

二、源码分析

三、修改页面法渗透

1.右键inspect

2.定位checkFile函数

3.修改页面并上传

4.获取页面地址

5.访问脚本

四、改包法渗透

1.修改后缀为jpg

2.bp设置拦截状态

3.上传jpg后缀木马

4.bp拦截并发到repeater

5.修改后缀并发包

6.获取脚本路径

7.访问脚本

 五、禁用js法

1.清空上传文件

2.禁用js并刷新页面

3.上传脚本

4.获取脚本地址

5.访问脚本


本文通过《upload-labs靶场通关笔记系列》来进行upload-labs靶场的渗透实战,本文讲解upload-labs靶场第一关文件上传客户端绕过渗透实战,通过三种方法完成渗透。

一、实验准备

1.构造脚本

构造文件上传的脚本,内容为获取服务器的php版本信息,脚本code内容如下所示。

<?php phpinfo();?>
  • 脚本命名为ljn_info.php

2.打开靶场第1关

firefox打开upload靶场第一关,http://127.0.0.1:8004/Pass-01/index.php,进入基于客户端的文件上传关卡,点击清空上传文件。

Note:

1这里要注意打开的是需要打开靶场pass01关卡

2)需点击清空上传文件,确保此次实验为最新结果,并在没有上传目录时构建upload文件夹

二、源码分析

右键view-source查看源码,分析文件上传pass01关卡,发现文件上传的过滤使用JavaScript的函数checkFile进行过滤。而checkFile函数在onsubmit中调用,即在浏览器操作界面中,点击“上传”按钮时调用。

完整的代码如下所示。

function checkFile() {var file = document.getElementsByName('upload_file')[0].value;if (file == null || file == "") {alert("请选择要上传的文件!");return false;}//定义允许上传的文件类型var allow_ext = ".jpg|.png|.gif";//提取上传文件的类型var ext_name = file.substring(file.lastIndexOf("."));//判断上传文件类型是否允许上传if (allow_ext.indexOf(ext_name + "|") == -1) {var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;alert(errMsg);return false;}
}

分析得出三种渗透思路:

  • 禁用js法:通过禁用js使得onsubmit调用的checkFile并不生效。

  • 修改前端页面法:将onsubmit调用的函数更改为空函数,将php脚本上传到服务器。

  • 改包法:将脚本改为jpg后缀后上传,使通过前端过滤函数的检查, 然后将报文发送给bp,在bp中将报文改为php后缀并上传到服务器。

三、修改页面法渗透

1.右键inspect

 upload-labs靶场中浏览(browse)选中获取phpinfo的脚本,暂不点击上传,右键inspect。

2.定位checkFile函数

定位到onsubmit调用checkFile函数的位置,如下图红框所示。

3.修改页面并上传

将onsubmmit函数调用checkFile函数的位置替换为空函数,并且不刷新当前页面的情况下点击上传,如下所示。

4.获取页面地址

上传成功后,右键图片获取上传脚本地址,脚本地址如下所示。

http://127.0.0.1:8004/upload/ljn_info.php  

5.访问脚本

访问上传成功的脚本,获取到php版本信息,如下所示渗透成功。

四、改包法渗透

1.修改后缀为jpg

将php脚本的后缀改名为jpg,为了具有区分度将文件名的尾部改为_info_日期.jpg。

如下所示,复制脚本ljn_info.php,并将其重命名为ljn_info_0314.jpg,通过文本编辑器打开图片后效果如下所示。

2.bp设置拦截状态

打开burpsuite,proxy-intercept配置为intercept is off状态。

3.上传jpg后缀木马

upload-labs靶场上传后缀改为jpg的脚本,点击上传。

4.bp拦截并发到repeater

burpsuite.抓包后,在http history历史记录中找到此post报文,点击选中此报文,并将报文送到repeater。

在repeater中找到此报文,注意如下红圈圈住的部分为要修改的文件名,需要将后缀jpg改为php。

5.修改后缀并发包

在burpsuite intruder中的repeater中将jpg后缀改为php,并点击send,同时在response的render中查看图形化结果,如下所示上传成功。

6.获取脚本路径

在response的raw中获取图片上传后的路径。

分析获取上传后的脚本在服务器的地址。

如上所示,上传的脚本在服务器的地址为../upload/ljn_info _0314.php

当前文件上传的关卡路径为http://127.0.0.1:8004/Pass-01/index.php

相对于index.php,可以得到上传到服务器后的脚本路径

http://127.0.0.1:8004/upload/ljn_info _0314.php

7.访问脚本

访问上传成功后的脚本,如下所示上传成功。

 五、禁用js法

1.清空上传文件

打开靶场第一关,由于我们要用新的方法实现渗透,为避免同一文件多次上传而后台未重命名文件,导致明明这一次渗透没有上传成功,却因为同一文件之前上传成功过,而不清楚本次上传失败,故而每次开始渗透,都要养成清空上传文件的好习惯。

注意浏览器的右上角,有安装好js插件,这个插件目前是红色的,代表开启了js功能。 

2.禁用js并刷新页面

windows的firefox打开文件上传靶场第一关,点击禁用js插件,并刷新页面(注意:如果不刷新禁用不会生效)。

3.上传脚本

选择ljn_info.php并点击文件上传,如下所示。

4.获取脚本地址

上传成功后,右键图片获取上传脚本地址,脚本地址如下所示。

http://127.0.0.1:8004/upload/ljn_info.php

5.访问脚本

上传成功的脚本,获取到php版本信息,如下所示渗透成功。

做完实验开启js并刷新页面,否则很多页面会打不开。

http://www.xdnf.cn/news/407017.html

相关文章:

  • 浙江大学 deepseek 公开课 第三季 第3期 - 陈喜群 教授 (附PPT下载) by 突破信息差
  • Linux笔记---信号(上)
  • SWMM在城市排水防涝规划中的实战应用:模型校准、情景模拟与工程决策
  • Linux进程10-有名管道概述、创建、读写操作、两个管道进程间通信、读写规律(只读、只写、读写区别)、设置阻塞/非阻塞
  • WordPress 网站上的 jpg、png 和 WebP 图片插件
  • 请解释 React Native 的新架构(Fabric 和 TurboModules)与旧架构的主要区别
  • 「光域」系列激光测距传感器:以光为尺,重构空间认知边界
  • 【华为HCIP | 华为数通工程师】821—多选解析—第二十二页
  • 详解 IRC协议 及客户端工具 WeeChat 的使用
  • OpenCV进阶操作:光流估计
  • Linux基础命令之目录管理——了解各种操作文件目录的命令,万字教学,超详细!!!(1)
  • OCCT知识笔记之分解BOX
  • 计算频谱的方法
  • 《基于 Kubernetes 的 WordPress 高可用部署实践:从 MariaDB 到 Nginx 反向代理》
  • 《AI大模型应知应会100篇》第59篇:Flowise:无代码搭建大模型应用
  • 免费批处理软件一键修改文件名称
  • 了解docker-compose.yml
  • mac一键安装gpt-sovit教程中,homebrew卡住不动的问题
  • latex控制表格宽度,不要超出页面
  • windows系统使用phpstudy安装ssl证书
  • 机器学习驱动的智能化电池管理技术与应用
  • 腾讯怎样基于DeepSeek搭建企业应用?怎样私有化部署满血版DS?直播:腾讯云X DeepSeek!
  • 解决 CJSON 浮点数精度问题:从 `cJSON_AddNumberToObject` 到 `cJSON_AddRawToObject`
  • IoTDB 分段查询语句深度剖析:GROUP BY 与时序语义的完美结合
  • 2024年北理工Python123第六章编程题整理
  • 【愚公系列】《Manus极简入门》034-跨文化交流顾问:“文化桥梁使者”
  • TCPIP详解 卷1协议 七 防火墙和网络地址转换
  • vLLM部署多模态大模型Qwen2.5-VL-3B-Instruct
  • 基于React的高德地图api教程002:自定义地图样式
  • AI边缘网关_5G/4G边缘计算网关厂家_计讯物联