[SWPUCTF 2025 秋季新生赛]ezez_include【小白详细】【两种方法】

从零开始学习使用 AI 欢迎踏入ClaudeCode未来世界,开启与AI协作的全新旅程。无论你是零基础新手、开发者,还是非程序员,都能通过实战项目快速掌握智能体协作技能——不再只是提问,而是指挥AI完成复杂任务。你将化身主角,在16个级别、200+实践中成长为高效创造者。真正的优势不再是会用工具,而是懂得如何让智能体为你工作。取代你的不是AI,而是会用AI的人。现在,故事从你开始👇 阅读详情

复建行动,好久没写了,手生了有点,写写新生赛巩固加找找手感吧

[SWPUCTF 2025 秋季新生赛]ezez_include

题目地点:NSSCTF 在线 CTF 平台

参考大佬:

题目

解答

1. 文件上传漏洞【LFI】

a. 首先,先空提交看看情况,了解文件的基本位置逻辑

  1. Warning: include(): Filename cannot be empty in /var/www/html/index.php on line 91
    翻译:警告:在 /var/www/html/index.php 的第91行,include() 函数的文件名参数不能为空。
  2. Warning: include(): Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/index.php on line 91
    翻译:警告:在 /var/www/html/index.php 的第91行,无法打开空字符串来执行引入操作,当前PHP的文件引入检索路径配置为 .:/usr/local/lib/php。
b. 试试读取他的警示index.php

有点类似于循环,

c. 使用disearch扫描一下试试

【注意,没思路可以都去试试,虽然有时候会被限制】

扫描到了这个upload.php,我们就可以去访问一下试试

ⅰ. 使用方法顺便提一下
  1. 基础扫描目标网站
dirsearch -u http://你的目标网站地址

会自动扫描常见的目录和文件路径。

  1. 指定扫描文件类型
dirsearch -u http://你的目标网站地址 -e php,html,js,txt

仅扫描.php、.html等指定后缀的文件,减少无效结果。

  1. 使用自定义字典扫描
dirsearch -u http://你的目标网站地址 -w /path/to/你的字典文件

替换/path/to/你的字典文件为你准备的字典路径,提升扫描精准度。

  1. 递归扫描子目录
dirsearch -u http://你的目标网站地址 -r

会自动扫描发现的子目录,适合深度探测网站结构。

  1. 保存扫描结果到文件
dirsearch -u http://你的目标网站地址 -o result.txt

将扫描结果输出到result.txt文件,方便后续分析。

d. 使用upload.php访问一下试试

看这个回显,是让我们要去上传文件(大概率会出现文件上传漏洞)

在选择文件上传时,发现只允许上传文件名问.jpg的文件【白名单绕过】

e. 制作图片马并上传

上传之后的文件应该会上传到upload/的文件下面,上传成功后,可以回原页面去读取,发现只回显出简单一行字

ⅰ. 简单介绍图片马

制作图片马常用的五种方法总结_图片马制作-优快云博客

  • 图片马在图片中插入一句话木马,正常情况下图片马上传到服务器无法进行解析,需要配合其他漏洞进行下一步利用。
  1. 通过图片上传并利用 .htaccess 配置进行代码执行;
  2. 通过文件包含漏洞包含图片马并执行恶意代码;
f. 利用蚁剑连接

要注意:

1.这里的蚁剑链接路径在木马执行页面也就是index.php

2.只要输入你想读取的文件,然后点击read,body中就会有nss=你输入的文件

连接成功后就可以去找flag了

2. 日志文件包含漏洞

a. 先知道什么是日志包含

文件日志包含漏洞-优快云博客

ⅰ. 使用指南

就是把恶意代码塞在日志中,然后利用包含漏洞读取日志时就可以查看了

ⅱ. 原因

某php文件存在本地文件包含漏洞,但无法上传文件,利用包含漏洞包含Apache(看服务器是Apache还是nginx)日志文件也可以获取WebShell

  • apache一般是/var/log/apache/access.log
  • nginx的log在/var/log/nginx/access.log(访问日志)和/var/log/nginx/error.log(错误日志)

如果你请求一个不存在的文件:GET /non_existent_<?php phpinfo(); ?>

error.log 会记录: [error] [client 192.168.1.1] File does not exist: /var/www/html/non_existent_<?php phpinfo(); ?>

ⅲ. 过程(针对于访问日志)

日志包含漏洞检测与利用方法-优快云博客这个也有详细过程

1.发送访问请求:

修改 User-Agent 或访问带代码的 URL

服务器会自动把你的请求写进磁盘上的日志文件

注意:请求的信息有可能被url编码之后记录日志,这里可以通过burp来发送请求包来防止被编码,通过相对路径找到日志文件,利用包含漏洞执行。

2.访问日志:

利用漏洞include 这个日志文件

/var/log/nginx/access.log或/var/log/apache/access.log

3.查看日志

ⅳ. 什么时候使用这个日志包含漏洞

这也属于文件包含的一种,

存在本地包含漏洞,缺又无法上传文件,或者无法读取

比如:

ⅴ. 如何判断一个网站是用的Nginx,还是Apache

如何判断一个网站是用的Nginx,还是Apache_怎么查看网站是否是apache开发-优快云博客

    curl --head 域名/IP
    curl --head www.baidu.com  (举例,注意:--head前有空格)
ⅵ. 练习题

ctfshow -web-4

b. 开始尝试这道题,读取

c. 发送访问请求

d. 访问日志/var/log/nginx/access.log

发现phpinfo出现了在日志里头了,可以实行

e. 接下来修改重新发送新的请求

注意,新的日志信息肯定在这个大图片后面(我一开始没看见)

user-agent:<?php echo('ls'); ?>

然后重新访问日志,就可以看见目录,找到

f. 直接读取这个目录/ffffflalalalalalalalalg

g. 题外,不一定这样,也可以使用其他的代码,只要能访问就行

总结

看这道题,首先在看题无思路时,可以试试扫描啊,万一有啥发现呢,其次,文件上传漏洞,无非就是改后缀名,或者骗前端,白名单、黑名单绕过,bp绕过之类的,以此达到成功上传并且读取,亦或者用蚁剑连接找他的flag

这题出现了我没接触过的日志包含,在传统思路上提供新方向,可以根据他的日志来 读取flag

题外,看他们wp还可以用伪协议去读取源代码。。这个我再学一学。。。

第28篇 sw放样特征矩形-圆-矩形学习笔记 本例演示三轮廓放样:先画中心对齐的100×100矩形草图,再在偏移100的基准面上绘制圆,最后在另一基准面画矩形。通过依次选择三个轮廓并正确设置连接点,实现矩形→圆→矩形的平滑过渡,注意连接点位置避免扭曲。 阅读详情

相关推荐

frp 内网渗透案例:端口转发 + 二级代理(深入理解 frp 在内网渗透中的技巧)

本文使用 vulnstack7 靶场作为测试环境,解释 frp 内网渗透特殊使用姿势,通过此案例来提高内网渗透能力。接下来的演示环境只做了以下修改。攻击者 vps 的 ip 修改为:192.168.72.162。DMZ 区域的 ubuntu 的 ip1 修改为:192.168.72.129。先引入问题,当我们控制了 DMZ 的 ubuntu 并且拿到第二层网络的 ubuntu 的 rce 后,会出现以下两个问题。如何搭建隧道让 ubuntu 反弹 shell 给攻击者 vps?

anddddoooo的博客 1765

[SWPUCTF 新生赛]ez_unserialize 第一次解题wp

摘要:通过分析靶机robots.txt发现/cl45s.php文件,审计其PHP代码发现存在反序列化漏洞。代码定义了一个wllm类,当admin属性为"admin"且passwd为"ctf"时会输出flag。利用PHP序列化特性构造payload:O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:"ctf";},通

2501_91354876的博客 1888

无刷电机控制避坑指南:六步换向 vs FOC的5个关键差异

本文深入对比了无刷电机控制中六步换向与FOC(磁场定向控制)的五大核心差异。从控制逻辑、性能表现、效率能耗、硬件成本到应用场景,详细解析了FOC如何通过矢量合成实现平滑的正弦波控制与更高效率,而六步换向则以低成本实现简单开关驱动。旨在帮助工程师根据项目需求,在性能、成本与复杂度间做出最佳选择。

weixin_29216957的博客 506

[SWPUCTF 2025 秋季新生赛]ezez_include两种解题思路

文件上传和文件包含漏洞

2501_93165324的博客 535

ros1 ubuntu22.04 安装教程

ROS1 ubuntu22.04 安装教程

autolabor的博客 9195

生信实战:用bcftools玩转VCF文件处理(从压缩到注释全流程)

本文详细介绍了使用bcftools处理VCF文件的全流程实战指南。从数据准备、压缩索引、信息提取、质量统计到核心的变异过滤与功能注释,手把手教你高效管理基因组变异数据。重点阐述了如何利用bcftools进行VCF文件注释,整合外部数据库信息,为变异位点添加关键的生物学标签,是生物信息学数据分析的必备技能。

rgv23456789的博客 340

NSSCTF2025秋季招新赛

如果进入调试失败,用终端打开,然后ida调试选Attach to process..v6 = sub_14001143D(v5);12个密文元素 ÷ 2组 × 8字节/组 = 48字节,偶数字节,选else算法。发现主逻辑这个反调试有一个神秘函数sub_140011285()然后就是动调通过hook strcpy函数 会更改tea的key。那个根据这个函数交叉引用(Jump to xref按x键)将相关exit nop即可。

Rhea_zzzz的博客 1404

游戏开发实战:如何用旋转矩阵实现2D角色平滑转向(附Unity代码)

本文深入探讨了在Unity游戏开发中,如何运用旋转矩阵原理实现2D角色的平滑转向。文章从核心理论出发,提供了计算目标旋转、实现平滑插值(Lerp与SmoothDamp)的完整C#代码,并解决了与动画系统、物理引擎协同的常见难题,帮助开发者提升游戏操作手感与视觉流畅度。

weixin_29057237的博客 287

[SWPUCTF 2025 秋季新生赛]来了嗷,常见加密大杂烩!

然后便是这两个加密算法了,tea,xtea,这两个我就不讲了吧,毕竟你能看到这就代表了你学过了那些基础的加密算法了,当然要注意的是在xtea中那个密钥key刚开始我的ida显示是 “scscicy” 这是不对了,在汇编中双击找到这个字符串的地址,按u重新定义变成这样子就行了,我看来一下,网上没有wp,也就是说我是第一个,因为看提交数量就一人,当然我没交,30个金币不舍的。正好32位是一个4字节,记住从前面的flag是32字节,v7刚好也是32字节,所以这个for循环就是将flag变成一个四字节数组了。

2401_89602742的博客 903

ThingsBoard 仪表板状态

请先通过阅读仪表板概述和仪表板入门案例来熟悉ThingsBoard的仪表板。文章希望通过浅显的文字描述什么是仪表板状态及如何使用。 概念 状态功能使得仪表板可以分层,配合小部件的动作,实现多层仪表板之间的跳转.每个状态对应一个仪表板的图层 每个仪表板有一个默认的根状态, 根状态可以理解为默认状态, 也就是打开仪表板默认展示的仪表板图层.编辑模式下, 点击右上角的图标来管理状态.添加多个状态后左上角出现状态切换(图层切换)下拉列表可以通过选中根状态复选框切换新的默认展示的状态/图层配合小部件的动作,实现状

物联网三分钟 2308

rk3568 修改开机动画

bootanimation.zip是一个Android设备启动时播放的动画文件,它包含了一系列的图片和描述文件,用于描述动画的播放顺序和持续时间。

weixin_35723192的博客 2727

[SWPUCTF 2022 新生赛]ez_ez_php

这行代码检查通过GET请求传递的参数file的前三个字符是否等于"php",是的话就执行。(注意:这里我反应过来直接是flag就可以了,不用flag.php)

weixin_73049307的博客 674

2.3 MMU Notifier(上):KVM 催生的页表变化通知

探讨了MMU Notifier机制的作用及其在虚拟化等场景中的应用。当CPU页表发生变更(如munmap、页面迁移等操作)时,需要通知拥有"第二套页表"的子系统(如KVM的EPT/NPT、IOMMU、GPU等)失效其映射。MMU Notifier通过订阅-通知机制实现这一功能,核心数据结构包括mmu_notifier订阅对象和回调接口mmu_notifier_ops。当CPU页表修改时,通过mmu_notifier_range描述变更范围,调用订阅者的回调函数进行同步,确保外部MMU与CPU页表一致性。

图形/计算GPU的驱动与虚拟化技术分享园地 1031

PHP文件包含漏洞实战:从基础到伪协议利用

文件包含漏洞是Web安全中常见的高危漏洞类型,尤其在使用PHP动态包含文件时,若未对输入参数严格过滤,攻击者可通过控制文件路径实现任意文件读取或代码执行。其核心原理在于include/require等函数对动态参数的处理缺陷,结合服务器配置特性可衍生出多种利用方式。在工程实践中,这类漏洞常出现在CMS插件、模板引擎等场景。通过php://filter等伪协议,攻击者能绕过常规防御读取敏感文件,而data协议在特定配置下甚至可实现远程代码执行(RCE)。防御方案需结合输入过滤、白名单控制等多层防护,同时服务器

weixin_42533120的博客 128

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SWPUCTF 2025 秋季新生赛wp2

猜测是一个读取数据库文件的功能读一下,得到,说明存在LFI有/bin/bash,确定是linux系统,读一下nginx配置文件,得到网站根目录是/var/www/html,入口文件时index.php然后用 php://filter 读取 index.php 源码,php://filter是php的输入输出流,可以读取文件内容而不执行。配合会把文件转成 base64 编码返回,避免被 PHP 解析。解码后就能看到完整源码去解码。

2403_88102829的博客 454

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2026.11.7 AI学习总结

110 你 14b 模型权重本身就要约 8.8GB,默认上下文(Ollama 在 16GB 卡上可能给到 4K)加上 KV Cache 就爆了。比如设成 2048,你输入了 500 个 token 的问题,那模型最多还能生成 1500 个 token 的回答。超出部分会被截断,模型就"看不见"了。4 如果 14b 跑起来后发现它"忘事",再逐步往上加,比如先试 4096。,根据注意力头的重要性动态分配缓存资源,重要的留显存,不重要的下沉。,单位是 token,表示模型这一次推理最多能同时"看到"多少内容。

qq_41181702的博客 369

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

MySQL建库建表操作学习笔记

SQL(Structured Query Language,结构化查询语言)是用于在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。:用于定义对数据库对象(库、表、列、索引)的操作,如 CREATE、DROP、ALTER、RENAME、TRUNCATE 等。保存可变长度的字符串(可包含字母、数字以及特殊字 符)。:用于定义对数据库记录的操作,如 INSERT、DELETE、UPDATE、SELECT 等。:用于定义对数据库、表、字段、用户的访问权限和安全级别,如 GRANT、REVOKE 等。

Eternitycai的博客 224

Flink 学习日志 03:自定义一个SourceFunction,完成对Redis中数据的读取

本文介绍了在Flink中自定义SourceFunction读取Redis数据的完整流程:通过Jedis客户端连接WSL2中的Redis服务,编写RedisSource实现循环读取所有Key-value并逐条输出,结合Thread.sleep()实现每秒一条的流式效果。关键步骤包括环境准备、添加Jedis依赖、配置IDEA运行时加载provided依赖,并注意生产环境中应避免使用阻塞的keys *,改用scan命令。最终实现动态读取、实时打印,验证了Flink与Redis的数据集成能力。

木木的学习笔记 418

邓明 Agent 系统面试-意图识别学习笔记

不要只是做意图识别而不做测评,就好像要评估 RAG 准确性,在接口服务要测试响应时延,超时控制等等,这里也要关注意图识别准确率,如果面试官认为项目指标太高是在吹牛,关键就是回答因为 Agent 解决的是特定领域的意图识别,识别场景单一,另外就是因为用户输入相对简单。意图识别影响 prompt/spec 的加载,意图识别影响上下文组织,意图识别影响工具选择,意图识别影响 prompt 建议,意图识别得到的意图不是让模型随机生成而是候选类别里去做选择。2.意图识别的原因,以及意图识别得到的是什么?

m0_57222081的博客 215

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 358

天线模块布局走线学习

天线通常与射频收发芯片、匹配网络、滤波器以及射频连接器等共同组成完整的无线通信链路;在进行原理图设计时,器件封装应当尽量小,倾向于0402、0201等,可以减小由封装带来的寄生参数影响。

qq_59757948的博客 151

CMake学习

CMake如何编译成库?1. 为什么要有库?库就是预先写好,编译好的代码集合。存在的意义,1)避免重复造轮子和重复编译,库是,你的代码在编译时直接链接它,不需要把库的源码重新编译一遍,大大节省了编译时间。;2):编译成库让别人可以直接调用我的函数,但看不到cpp源码,看不到里面的逻辑。3):大项目可以拆分给不同的团队开发不同的库,最后拼在一起。静态库:就是在程序编译和链接阶段,把库里被用到的代码部分,像打包裹一样,直接复制粘贴到最终的可执行文件(如.exe或 Linux 下的无后缀文件)里面。

m0_56487684的博客 196

商业经济学学习资料

商业经济学学习资料

weixin_29403917的博客 281

将物理先验嵌入机器人学习:从经典力学到 VLA 与 WAM

本文综述了将物理先验嵌入机器人学习的三条路径:数据与表示、模型架构、训练损失,强调其位置决定约束效力。通过夹取软物体案例,阐明运动学、动力学、接触与材料特性在任务中的分层作用。指出物理先验非万能,需匹配实际条件;强约束可加速学习,但误用会引入偏差。提出“有效刚度”等概念,强调主动探测与参数辨识的重要性,并警示仅靠单一方法无法保障安全执行,需结合在线验证与控制闭环。

lovely_yoshino的博客 821

【学习笔记】51单片机 模块化编程

模块化编程:把各个模块的代码放在不同的c文件里,在.h文件里提供外部可调用函数的声明,在其他.c文件想使用其中的代码时,只需要#include"xxx.h"文件即可。传统方式编程:所有的函数均放在main.c中,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码组织和管理,而且很影响编程者的思路。使用LCD602液晶屏作为调试窗口,提供类似printf函数的功能,可实时观察单片机内部数据的变换情况,便于调试和演示。使用到的.h文件必须要放在编译器可寻找到的地方(工程文件夹根目录,安全目录,自定义)

2601_96469072的博客 226

Linux网络学习【深入理解多路转接epoll】

本文围绕 Linux 多路转接 epoll 展开,以“设计动机—核心机制—触发模式—代码实践”为主线,对比 select、poll 的监听管理与就绪检查方式,解析关注集合、就绪列表及核心接口,重点讲解水平触发与边缘触发的行为差异,以及边缘触发配合非阻塞读写的处理要点。结合多连接服务器实践,梳理事件注册、连接接收、部分收发、可写事件按需监听及断开清理流程,厘清就绪通知与操作完成的区别,分析常见错误与性能影响因素,帮助读者建立从事件循环到连接管理的完整认识,为高并发服务器与事件驱动框架开发打下基础。

承于所学,探技术之渊;以代码求政,寻成长之道。 1万+
上一篇: 学习日志(五)【php反序列化全加例题】【pop链,字符逃逸,session,伪协议】
下一篇: [SWPUCTF 2025 秋季新生赛]php命令执行【PHP自增】
tryqaaa_
博客等级 码龄1年 11粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值