6.【BUUCTF】[SUCTF 2019]CheckIn

news/2025/2/6 15:24:53 标签: 安全, web安全, 网络安全, 网络

打开题目页面如下

看样子是一道有关文件上传的题

上传一句话木马

显示:非法后缀!

看来.php后缀被过滤了

上传一张带有木马的照片

在文件地址处输入cmd

输入以下代码执行

copy 1.jpg/b+4.php/a 5.jpg

最后一行有一句话木马

上传带有木马的图片

但其实木马图片并没有被解析运行,这里涉及一个知识点

user.ini知识点

基本概念

在 PHP 中,user.ini 是一种用户级别的配置文件。与系统级的 php.ini 不同,user.ini 允许用户在特定的目录下自定义 PHP 的配置选项,这些配置仅对该目录及其子目录下的 PHP 脚本生效,提供了更灵活的配置管理方式。

工作原理

扫描机制:PHP 在启动时会扫描每个请求的文档根目录及其子目录,查找 user.ini 文件。当找到该文件后,会加载其中的配置选项,并将其应用到该目录及其子目录下的所有 PHP 脚本中。配置优先级user.ini 的配置优先级高于系统级的 php.ini 文件。也就是说,如果 user.ini 中定义的某个配置选项与 php.ini 中的配置冲突,那么 user.ini 中的配置将生效。

使用场景

特定项目定制:当你有多个项目运行在同一服务器上,每个项目可能有不同的 PHP 配置需求。此时可以为每个项目创建一个 user.ini 文件,在其中设置该项目所需的特定配置,而不会影响其他项目。

临时配置调整:在开发或测试过程中,你可能需要临时调整某些 PHP 配置选项。通过修改 user.ini 文件,可以快速实现配置的更改,而无需修改系统级的 php.ini 文件。

配置示例

假设你需要为某个项目启用错误报告并设置最大执行时间,可以在该项目的根目录下创建一个 user.ini 文件,并添加以下内容:

; 启用错误报告,显示所有类型的错误
display_errors = On
error_reporting = E_ALL

; 设置脚本的最大执行时间为 60 秒
max_execution_time = 60

安全注意事项

  • 文件权限:确保 user.ini 文件的权限设置合理,只有授权用户可以修改该文件。一般来说,建议将文件的权限设置为只读,以防止未经授权的修改。
  • 配置内容安全:在 user.ini 中配置的选项可能会影响服务器的安全性。例如,不建议在生产环境中启用 display_errors 选项,因为这可能会将敏感的错误信息暴露给用户。
  • 防止滥用:由于 user.ini 可以在用户层面进行配置,可能会被恶意用户利用来修改系统配置,从而发起攻击。因此,要对用户上传或修改 user.ini 文件的操作进行严格的权限控制和输入验证。

启用 user.ini

要使 user.ini 文件生效,需要确保 PHP 配置中启用了相关设置。在 php.ini 文件中,需要设置以下选项:

; 启用每个目录的 .user.ini 文件扫描
user_ini.filename = "user.ini"

; 设置扫描 .user.ini 文件的间隔时间(秒)
user_ini.cache_ttl = 300

user_ini.filename 指定了用户级配置文件的名称,user_ini.cache_ttl 指定了 PHP 扫描 user.ini 文件的时间间隔,即每隔多少秒检查一次 user.ini 文件是否有更新。

上传user.ini

前面加上GIF89a,绕过检测

用蚁剑连接

最终在根目录中找到flag


http://www.niftyadmin.cn/n/5843128.html

相关文章

掌握Spring MVC异常处理的艺术

在Spring MVC中处理异常,就好比你在家里做饭时遇到了问题,比如切菜切到手了(运行时异常),或者发现没盐了(预期异常)。那么,你该怎么应对这些情况呢?Spring MVC处理异常的…

Python aiortc API

本研究的主要目的是基于Python aiortc api实现抓取本地设备(摄像机、麦克风)媒体流实现Web端预览。本文章仅仅描述实现思路,索要源码请私信我。 demo-server解耦 原始代码解析 http服务器端 import argparse import asyncio import json…

剑指offer 栈和队列 持续更新中...

文章目录 1. 用两个栈实现队列1.1 题目描述1.2 解法 2. 用队列实现栈2.1 题目描述2.2 方法1,直接模拟2.3 方法22.3 方法3,一个队列 1. 用两个栈实现队列 232. 用栈实现队列 - 力扣(LeetCode) 1.1 题目描述 题目描述&#xff1a…

11.kafka开启jmx

方式一: 1.进入/opt/kafka_2.13-3.3.2/bin目录 命令: cd /opt/kafka_2.13-3.3.2/bin [root@rhel77 ~]# cd /opt/kafka_2.13-3.3.2/bin [root@rhel77 bin]# pwd /opt/kafka_2.13-3.3.2/bin [root@rhel77 bin]# 2.备份kafka-run-class.sh 命令: cp kafka-run-class.sh …

win32汇编环境,对话框程序生成选项卡(属性页\标签)控件及运用

;运行效果 ;win32汇编环境,对话框程序生成选项卡(属性页\标签)控件及运用 ;主要是生成1个选项卡,同时准备好几个对话框,然后将对话框叠加到选项卡控件里面,在运行时点击哪一项时则显示对应的对话框。 ;以下示例显示3个项的选项卡控件 ;直接抄进RadAsm可编译运行。重要部分加…

Java synchronized锁升级

偏向锁、轻量级锁和重量级锁是Java中synchronized关键字的三种锁状态,用于优化多线程环境下的性能。以下是它们的简要说明: 1. 偏向锁(Biased Locking) 目的:减少无竞争时的锁开销。适用场景:只有一个线程…

Linux 文件和目录

Linux 文件和目录 文章目录 Linux 文件和目录Linux 目录Linux 目录配置的依据 --FHS目录树文件属性文件的分类一般权限 UGO特殊权限 suid\sgid\sticky隐藏属性 ATTR文件访问控制列表 ACL文件相关的命令权限的修改 chmod chown chgrp umaskchmodchgrpumask相关文档 /etc/profile…

Java 进阶day14XML Dom4j 工厂模式 Base64

目录 知识点1、XML 概念XML约束 知识点2、XML解析 Dom4j(Dom for java)XPath 知识点3、工厂模式知识点4、Base64 知识点1、XML 概念 XML的全称为(eXtensible Markup Language),是一种可扩展的标记语言。 XML的作用&…