news 2026/5/1 7:57:15

polarctf靶场web中等/代码审计1,随机值,你知道sys还能这样玩吗

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
polarctf靶场web中等/代码审计1,随机值,你知道sys还能这样玩吗

1.代码审计1

芝士点:1.原生类读取,形式:大部分是new $a($b)

2.伪协议的利用读全代码

<?php highlight_file(__FILE__); include('flag.php'); $sys = $_GET['sys']; if (preg_match("|flag|", $xsx)) { die("flag is no here!"); } else { $xsx = $_GET['xsx']; echo new $sys($xsx); } >

这个php代码if语句第一部分不会成立,因为xsx还没赋值,所以没有过滤,如果有过滤,,我觉得通配符也可以绕过

一开始我构建sys=system&xsx=flag.php

不通过,因为system是原生函数,不是原生类,在new后面会报错

搜了 一下,可以利用的 原生类有:

1. SplFileObject

作用:PHP 标准库(SPL)中的文件对象类,用于逐行读取、操作文件,是处理文件的核心原生类。

2.File类(部分环境支持,依赖PECL File扩展)

作用:文件操作类,功能和SplFileObject类似,但并非所有 PHP 环境都内置(需要安装 PECL File 扩展)。等

当用文件目录遍历到了敏感文件时,可以用SplFileObject类,同样通过echo触发SplFileObject中的__toString()方法。(该类不支持通配符,所以必须先获取到完整文件名称才行)

但是我用了原生类也没 出来flag

看了wp:

除此之外其实SplFileObject类,只能读取文件的第一行内容,如果想要全部读取就需要用到foreach函数,但若题目中没有给出foreach函数的话,就要用伪协议读取文件的内容。

伪协议解决问题的原理是:伪协议会一次性读取文件全部内容并处理为单行数据流,让SplFileObject的 “第一行” 等于文件的全部内容

注:这里又跟文件包含那种执行不一样,include本身就是一次性读取全部文件内容,不存在 “只读取第一行” 的问题,伪协议在文件包含漏洞中不是为了 “解决单行限制”,而是为了绕过限制、读取源码或执行代码

转成base64,使代码失去执行能力,变成字符串直接读出来

2.随机值


使用&符号,我觉得相当于指针地址符的用法,$a=&$b,把b的值赋值给a

所以可以获得flag

3.你知道sys还能这样玩吗

可以用御剑扫出来,,也可以根据题目提示sys尝试

<?php show_source(__FILE__); if(isset($_POST['cmd'])){ echo "<pre>"; $cmd = $_POST['cmd']; if (!preg_match('/ls|dir|nl|nc|cat|tail|more|flag|sh|cut|awk|strings|od|curl|\*|sort|ch|zip|mod|sl|find|sed|cp|mv|ty|grep|fd|df|sudo|more|cc|tac|less|head|\.|{|}|tar|zip|gcc|uniq|vi|vim|file|xxd|base64|date|bash|env|\?|wget/i', $cmd)) { $output = system($cmd); echo $output; } echo "</pre>"; } ?>

l\s执行成功,但是后面不知道怎么绕过了

但是没有对php过滤,可以考虑使用php -r 在终端执行php函数来实现二次命令执行

<?php // 要执行的命令 $command = ''; // 将命令转换为十六进制编码 $hexCommand = bin2hex($command); // 构造 PHP 代码,将十六进制命令解码后传递给 eval 函数执行 $phpCode = 'system(hex2bin("' . $hexCommand .'"));'; // 执行 PHP 代码 echo($phpCode); ?>

依次执行命令,ls ../../../

发现flag.txt,,执行cat ../../../flag,.txt

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 17:07:53

Recon-ng数据导出技巧:5种格式完美呈现情报分析结果

在开源情报&#xff08;OSINT&#xff09;收集领域&#xff0c;Recon-ng凭借其强大的数据收集能力备受推崇。然而&#xff0c;真正让这款工具发挥最大价值的关键在于如何将收集到的信息以最适合的方式导出和呈现。本文将为您揭秘Recon-ng的5种核心数据导出格式&#xff0c;帮助…

作者头像 李华
网站建设 2026/5/1 7:04:24

LineOnMesh 在三维网格曲面上绘制一条平滑的路径线

一&#xff1a;主要的知识点 1、说明 本文只是教程内容的一小段&#xff0c;因博客字数限制&#xff0c;故进行拆分。主教程链接&#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkLoopSubdivisionFilter上采样&#xf…

作者头像 李华
网站建设 2026/5/1 7:04:23

安卓远程摄像头终极指南:3步实现桌面流媒体和虚拟摄像头

RemoteCam是一个功能强大的开源项目&#xff0c;让你能够将安卓设备的摄像头实时流式传输到桌面电脑。无论你是想为OBS添加高质量的视频源&#xff0c;还是在Linux系统上创建虚拟摄像头&#xff0c;这个免费、无广告的工具都能满足你的需求。本教程将带你从零开始&#xff0c;轻…

作者头像 李华
网站建设 2026/5/1 7:04:13

62、SQL 中集合、数组和集合类型数据的处理

SQL 中集合、数组和集合类型数据的处理 在数据库领域,数据的组织和管理方式至关重要。传统的关系数据库在处理数据集合时存在一定的局限性,而对象 - 关系数据库通过支持集合、数组等数据类型,为数据管理带来了新的解决方案。 关系数据库中数据集合的表示 在关系数据库里,…

作者头像 李华
网站建设 2026/4/23 0:37:23

FaceFusion能否做动漫风格化换脸?二次元适配测试

FaceFusion能否做动漫风格化换脸&#xff1f;二次元适配测试 在短视频平台和虚拟偶像内容井喷的今天&#xff0c;越来越多用户开始尝试“把我的脸放进动漫角色里”——这种跨次元的视觉体验早已不再是小众极客的实验项目&#xff0c;而是普通创作者也能触及的AI应用。然而&…

作者头像 李华
网站建设 2026/4/23 17:11:25

旅游网站|基于springboot +web旅游网站系统(源码+数据库+文档)

旅游网站 目录 基于springboot web旅游网站系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot web旅游网站系统 一、前言 博主介绍&#xff1a;✌️大…

作者头像 李华