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

[CTF]攻防世界:easy_laravel 学习

题目:攻防世界:easy_laravel 学习

提示:blade + pop chain(代码审计+sql注入+blade缓存+反序列化)

直接F12查看源码


php的web框架

一、注入

查看源码:

这里应该是注入点:

看到管理员认证,判断邮箱

可以重置密码,但是需要token


token在表password_reset中

确定思路:注册用户sql注入拿到token–>reset一下管理员的密码,生成token–>登录获取flag

1、注入

laravel内置重置密码在Illuminate\Auth\Passwords中实现,重置密码需要填写邮箱,并向邮箱发送一个重置链接。
laravel在5.4以后都是将token加密存储的,而之前是明文存储,所以我们就可以注入出token重置admin密码
先访问**/password/reset重置admin密码,然后注出token,访问/password/reset/[token]**,完成重置


2、登录后发现显示 no flag

二. blade 模板

Blade 是 Laravel 提供的一个简单而又强大的模板引擎。和其他流行的 PHP 模板引擎不同,Blade 并不限制你在视图中使用原生 PHP 代码。所有 Blade 视图文件都将被编译成原生的 PHP 代码并缓存起来,除非它被修改,否则不会重新编译,这就意味着 Blade 基本上不会给你的应用增加任何负担。Blade 视图文件使用 .blade.php 作为文件扩展名,被存放在 resources/views 目录。

所以当我们修改了flag的balde模板但是还没有编译使其渲染出新的flag页面,其页面还是没修改时的那个缓存

删除缓存文件:
1、上传phar文件
2、利用phar文件删除缓存文件

upload 实现phar文件上传 check利用


通过此类实现反序列化。

确定一下相关文件目录:
1、blade缓存位置:storage/framework/views
2、apache默认目录:/var/www/html/

加一起缓存文件就是 :/var/www/html/storage/framework/views/flag.blade.php
(sha1()==>34e41df0934a75437873264cd28e2d835bc38772)

phaer 文件是以序列化形式存储的。当解析它的时候,必然会用到反序列化的一些魔术方法。受影响的函数包括


从其他师傅那学习到的生成phar的代码:

<?php require'vendor/autoload.php';$a=serialize(newSwift_ByteStream_TemporaryFileByteStream());var_dump(unserialize($a));var_dump($a);# 这个函数很有趣,$_path 也就是删除的目录是可以自己制定的,将这里面的内容换成我们想要的内容,就可以删掉flag的缓存文件。 $a=preg_replace("/\/tmp\/FileByteStream[\w]{6}/","/usr/share/nginx/html/storage/framework/views/34e41df0934a75437873264cd28e2d835bc38772.php",$a);$a=str_replace('s:25','s:90',$a);# 这里将 _path 的内容修改掉 $b=unserialize($a);$p=newPhar('./shell.phar',0);$p->startBuffering();$p->setStub('GIF89a<?php __HALT_COMPILER(); ?>');# 改文件头 $p->setMetadata($b);$p->addFromString('test.txt','text');$p->stopBuffering();rename('shell.phar','1.gif')?>

生成后,将1.gif上传,然后点击check。

修改数据包

重新访问/flag路由,得到flag


flag: flag{d64e4b06f672429682a96b11172a8938}

http://www.cnnetsun.cn/news/43542.html

相关文章:

  • ComfyUI与社交平台头像生成结合:个性化IP打造工具
  • ComfyUI中使用Style Transfer节点的艺术化处理
  • 27、基于地理关联数据的用户与位置建模剖析
  • 2.1 Cursor进阶技巧:Rules设置与文档集成全攻略
  • 英伟达数学推理新突破:15亿参数模型性能媲美完整版DeepSeek-R1
  • 10、网络传输与会话管理工具:lftp 与 screen 实用指南
  • 12、提升系统安全性与网络管理:SELinux与网络命令详解
  • 腾讯发布HunyuanWorld-Voyager:单图驱动3D场景生成技术突破,开启沉浸式内容创作新纪元
  • 智谱AI开源力作GLM-4-9B:多维度性能超越Llama-3-8B,开启大模型应用新纪元
  • 6、高增长、高科技企业的商业模式剖析
  • 基于自抗扰控制ADRC的永磁同步电机仿真模型(Simulink仿真实现)
  • 12、Oracle软件安装、配置、故障排除与卸载全解析
  • 技术文档还在全靠 Markdown?它可能真的在拖你后腿
  • 阿里重磅发布HunyuanCustom视频生成模型 多模态技术引领虚拟内容创作新革命
  • OpenAI开源力作:GPT-OSS模型深度解析与应用指南
  • 基于微信小程序的商品展示计算机毕设(源码+lw+部署文档+讲解等)
  • 【Spring】实现验证码功能
  • 人工智能行业发展新趋势:技术突破与应用拓展并行
  • 8、X Window System使用指南
  • Log4j2 + AI 异常分析:当生产环境报错时,让 AI 自动告诉你 Bug 在哪一行(LogAppender 实战)
  • 11、如何使用 PPP 协议连接互联网
  • 12、OpenLinux 系统互联网邮件配置全攻略
  • 14、互联网下载与浏览指南
  • 9、法医调查中的任务管理与证据组织策略
  • 22、基础系统管理指南
  • 16、数字取证图像的完整性保护与处理
  • 19、数字取证中的磁盘管理与图像管理技巧
  • 25、利用调度实现系统管理自动化
  • 6大AI论文工具实测对比,2025年推荐这几款
  • 6款AI论文工具横向测评,2025年优选榜单出炉