6.【BUUCTF】[SUCTF 2019]CheckIn

打开题目页面如下

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

上传一句话木马

显示:非法后缀!

看来.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

相关推荐
丸子猪的dady5 分钟前
配置安全网站
安全·安全网站配置·基础网站配置·腾讯云nginx配置ssl证书
book012117 分钟前
简单以太网配置
网络·智能路由器
煲冬瓜的程序猿18 分钟前
BGP实验(一)IBGP全互联配置
网络·网络协议
搬码红绿灯21 分钟前
计算机网络——路由器
网络·计算机网络·智能路由器
book012121 分钟前
静态路由实验
网络·智能路由器
字节跳动开源40 分钟前
vArmor:云原生容器安全的多场景应用实践
安全·云原生
独行soc4 小时前
2025年渗透测试面试题总结-字某跳动-安全研究实习生(三面)(题目+回答)
linux·服务器·安全·web安全·面试·职场和发展
独行soc4 小时前
2025年渗透测试面试题总结-小某鹏汽车-安全工程师(题目+回答)
网络·科技·安全·面试·汽车·护网·2015年
爱吃烤鸡翅的酸菜鱼5 小时前
Java【网络原理】(3)网络编程续
java·运维·服务器·网络
23zhgjx-hyh7 小时前
配置NBMA和P2MP网络类型
网络