NSSCTF | [SWPUCTF 2021 新生赛]babyrce

打开题目,显示了一个php脚本

我们来分析一下这个脚本是什么意思
<?php
error_reporting(0);
header("Content-Type:text/html;charset=utf-8");
highlight_file(__FILE__);
if($_COOKIE['admin']==1)
{include "../next.php";
}
elseecho "小饼干最好吃啦!";
这个 PHP 脚本主要做了以下事情:
1. 通过 `error_reporting(0);` 关闭了错误报告。这意味着如果脚本中有任何错误,程序将不会显示错误消息。
2. 使用 `header("Content-Type:text/html;charset=utf-8");` 设置内容类型为 HTML ,并指定字符类型为 UTF-8。
3. `highlight_file(__FILE__);` 是一个用于突出显示当前脚本文件代码的 PHP 内置函数。通过 `__FILE__` 魔术常量,它可以获取当前脚本的绝对路径。
4. 程序接着会检查 'admin' 的 cookie 值是否为1。如果是,它将包含(include)"../next.php" 文件。这个 ".." 是相对路径的表示方式,表示上一级文件夹。
5. 如果 'admin' 的 cookie 值不是1,那么就会显示一句 "小饼干最好吃啦!"
这个脚本主要用于检查是否有管理员权限访问某些页面。admin 是 cookie 的名称,如果它的值为 1,则表示用户是管理员,可以包含其他 php 文件 for further processing。实质上,这个脚本实现了一个简单的访问控制机制。
那么,要绕过这个脚本进行下一步,我们需要做的就是将请求中Cookie的值设置为1
可以使用Burpsuite完成这项工作。
首先,使用Burpsuite抓取访问靶机地址的数据包,并发送到repeater。

然后,可以在右侧窗口看到一个请求cookies,把它点开

点击添加,输入名称为admin,值为1,点击添加

可以看到,左侧的请求数据包中最后已经多了一行数据
Cookie: admin=1

点击发送,查看回显,可以看到回显的最后给了我们一个文件rasalghul.php。

我们去浏览器访问一下这个文件看看
http://node5.anna.nssctf.cn:27929/rasalghul.php

可以看到,这是另一个php脚本。
<?php
error_reporting(0);
highlight_file(__FILE__);
error_reporting(0);
if (isset($_GET['url'])) {$ip=$_GET['url'];if(preg_match("/ /", $ip)){die('nonono');}$a = shell_exec($ip);echo $a;
}
?>
这段 PHP 脚本主要执行以下操作:
-
error_reporting(0);关闭了所有错误报告。这意味着脚本中的任何错误,程序将不会显示错误消息。 -
使用
highlight_file(__FILE__);方法会输出当前脚本文件的内容,并且会突出显示语法结构。这个__FILE__是魔术常量,表示当前脚本的绝对路径。 -
再次通过
error_reporting(0);关闭所有错误报告。 -
检查
$_GET['url']参数是否被设置。这可能是一个从 URL 查询字符串获取的参数。 -
如果
$_GET['url']参数被设置,那么就将其值赋给$ip变量。 -
preg_match("/ /", $ip)会检查$ip变量的值中是否存在一个空格。如果存在空格,die('nonono');函数将停止脚本执行,并输出消息 'nonono'。 -
shell_exec($ip);函数通过 shell 命令执行$ip变量的值并返回输出。这是一个非常危险的行为,因为它允许任何人通过 URL 查询参数运行任意的 shell 命令。这可能会导致严重的安全问题。 -
echo
$a;将输出shell_exec($ip);的结果。
总的来看,这个脚本的主要用途应该是接受来自 URL 查询参数的输入,并试图在 shell 命令行中执行该输入。不过,如果输入包含空格,则执行会被中断。
一句话,就是我们可以通过传入参数为url的命令,但是命令中不能有空格
先用ls试试看。
http://node5.anna.nssctf.cn:27929/rasalghul.php?url=ls

可以看到,ls命令是有作用的,所以我们只要能绕过空格限制,就能够执行我们想要执行的所有命令,相当于已经获得了管理员的权限 。
如何绕过空格限制呢,可以参考这篇文章
RCE漏洞详解及绕过总结(全面)-CSDN博客
我们可以用$IFS来代替空格
http://node5.anna.nssctf.cn:27929/rasalghul.php?url=ls$IFS/

这样就能绕过空格过滤,服务器也正常回显了根目录的文件和文件夹
我们可以看到很显眼的flag文件,直接使用cat命令查看就完了
http://node5.anna.nssctf.cn:27929/rasalghul.php?url=cat$IFS/flllllaaaaaaggggggg

本题完。
相关文章:
NSSCTF | [SWPUCTF 2021 新生赛]babyrce
打开题目,显示了一个php脚本 我们来分析一下这个脚本是什么意思 <?php error_reporting(0); header("Content-Type:text/html;charsetutf-8"); highlight_file(__FILE__); if($_COOKIE[admin]1) {include "../next.php"; } elseecho &quo…...
环保不只是口号,绿葆自助取袋机助力1000多家医院环保行动!
2023年1月1日起,国家的“限塑令”范围进一步扩大,2023年6月20日起,《商务领域经营者使用、报告一次性塑料制品管理办法》开始实施。从国家到地方,对一次性塑料制品的污染问题治理正在越来越严格。为了响应国家环保政策并为患者提供…...
DELL服务器配置ILO(idrac)地址、修改管理员密码
服务器型号:DELL PowerEdge R630 1、重启服务器选择F2进入BIOS 2、重启服务器选择F2进入BIOS 3、选择“Network” 4、配置iDRAC的IP,掩码网关,DNS等信息 5、Esc返回,下滑选择“User Configuration” 6、配置iDRAC的用户名密码以及…...
如何打造个人IP?
打造个人IP(Intellectual Property)是当今社会中越来越受到关注的话题。个人IP指的是个人在某个领域内所拥有的独特的、具有商业价值的知识、技能、品牌和影响力。为什么要打造个人IP?如何打造个人IP?下面我将为您详细解答。 首先…...
【PostgreSQL支持中文的全文检索插件(zhparser)】
PostgreSQL本身是支持全文检索的,提供两个数据类型(tsvector,tsquery),并且通过动态检索自然语言文档的集合,定位到最匹配的查询结果。其内置的默认的分词解析器采用空格进行分词,但是因为中文的词语之间没…...
SHAP分析交互作用的功能,如果你用的模型是xgboost
SHAP分析交互作用的功能,如果你用的模型是xgboost 如果在SHAP分析中使用的是xgoost模型,就可以使用SHAP分析内置的交互作用分析,为分析变量间的相互提供了另外一个观察的视角。关于SHAP交互作用分析,一个参考资料,还是…...
瑞友科技质量改进服务事业部总经理张力受邀为第十三届中国PMO大会演讲嘉宾
全国PMO专业人士年度盛会 北京瑞友科技股份有限公司质量改进服务事业部总经理张力先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“PMO如何对接战略成为企业IT投资成功的有效保障”。大会将于6月29-30日在北京举办,敬请关注&#x…...
CVE-2024-4761 Chrome 的 JavaScript 引擎 V8 中的“越界写入”缺陷
分析 CVE-2024-4761 和 POC 代码 CVE-2024-4761 描述 CVE-2024-4761 是一个在 V8 引擎中发现的越界写漏洞,报告日期为 2024-05-09。这个漏洞可能允许攻击者通过特制的代码执行任意代码或者造成内存破坏,进而导致程序崩溃或其他不安全行为。 POC 代码解…...
字符串函数(二):strlen(求长度),strstr(查找子串),strtok(分割),strerror(打印错误信息)
字符串函数 一.strlen(求字符串长度)1.函数使用2.模拟实现(三种方法) 二.strstr(字符串查找子串)1.函数使用2.模拟实现 三.strtok(字符串分割)四.strerror,perror&#x…...
EUCR-30S电机保护器施耐德EOCR
EOCR主要产品有电子式电动机保护继电器,电子式过电流继电器,电子式欠电流继电器,电子式欠电压继电器,其它保护和监视装置,电流互感器。 电器密集型设计 ■ 二个集成组装电流互感器 ■ 欠载保护(空转保护…...
人工神经网络(科普)
人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程…...
宇宙(科普)
宇宙(Universe)在物理意义上被定义为所有的空间和时间(统称为时空)及其内涵,包括各种形式的所有能量,比如电磁辐射、普通物质、暗物质、暗能量等,其中普通物质包括行星、卫星、恒星、星系、星系…...
安防视频/视频汇聚系统EasyCVR视频融合云平台助力智能化酒店安防体系的搭建
一、背景需求 2024年“五一”假期,全国文化和旅游市场总体平稳有序。文化和旅游部6日发布数据显示,据文化和旅游部数据中心测算,全国国内旅游出游合计2.95亿人次。“五一”假期县域市场酒店预订订单同比增长68%,而酒店作为一个高…...
SpringCloudAlibaba:5.1Sentinel的基本使用
概述 简介 Sentinel是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。 官网 https://sentinelguard.io/zh-cn/ Sentinel的历史 2012 年,Sentinel 诞生,主要功能为入口流量控制。 2013-2017 年…...
SHELL-双重循环习题练习
1.99乘法表 #!/bin/bash #99乘法表for ((second1; second<9; second)) dofor ((first1; first<second; first))do echo -n -e "${first}*${second}$[first*second]\t" done echo done ######### 首先定义了一个外循环变量second,初始值为1&am…...
2024年为什么很多电商商家,都想涌入视频号,究竟是什么原因?
大家好,我是电商糖果 对电商有了解的朋友,在今年肯定发现一个现象,那就是很多商家对视频号比较青睐。 视频号究竟有何魔力,让越来越多的商家都想要入驻。 其实很简单,它让商家看到了市场。 视频号背后是谁…...
Google Gemma 2B 微调实战(IT科技新闻标题生成)
本文我将使用 Google 的 Gemma-2b 模型来微调一个基于IT科技新闻正文来生成对应标题的模型。并且我将介绍如何使用高度集成的训练框架来进行快速微调。 开始前 为了尽可能简化整个流程,我将使用 linux-cn 数据集[1]作为本次训练任务的训练数据。 模型选择使用 Gemma-2b[2],…...
RabbitMQ:深入理解高性能消息队列
RabbitMQ:深入理解高性能消息队列 文章目录 RabbitMQ:深入理解高性能消息队列前言一、RabbitMQ概述二、RabbitMQ的核心概念三、RabbitMQ的工作原理一、生产者发送消息二、交换机转发消息三、队列存储消息四、消费者接收并处理消息 四、RabbitMQ的使用场景…...
【北京迅为】《iTOP-3588开发板源码编译手册》-第4章 Android12/Linux设备树简介
RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…...
C++ C# 贝塞尔曲线
二阶贝塞尔曲线公式 三阶贝塞尔曲线公式 C 三维坐标点 二阶到N阶源码 //二阶公式: FVector BezierUtils::CalculateBezierPoint(float t, FVector startPoint, FVector controlPoint, FVector endPoint) {float t1 (1 - t) * (1 - t);float t2 2 * t * (1 - t);…...
Janus-Pro-7B计算机网络知识问答:从HTTP协议到网络安全
Janus-Pro-7B计算机网络知识问答:从HTTP协议到网络安全 最近在测试一些大模型在垂直领域的知识深度,Janus-Pro-7B引起了我的注意。它被宣传在编程和技术问答方面有不错的表现,所以我决定把它放到一个硬核的领域里试试水:计算机网…...
“梦里开窍”得实锤?!最新研究 | REM睡眠真的是“灵感加工厂”,未来或可以引导做梦去“思考”特定问题
在这个信息爆炸、内卷加剧的时代,我们每个人都像是一台24小时待机的处理器。白天,我们被工作群的消息轰炸,被KPI追着跑,被生活中一个个无解的难题困住——比如想不出完美的方案、解不开复杂的矛盾、找不到创意的突破口。于是&…...
CBAM:轻量级注意力机制在CNN中的高效集成与应用
1. CBAM:让CNN学会"看重点"的黑科技 第一次听说CBAM这个名词时,我还以为是什么新型环保政策(笑)。后来才发现,这其实是计算机视觉领域的一个"小而美"的发明——Convolutional Block Attention Mod…...
颠覆式虚拟显示技术:ParsecVDisplay开源解决方案的突破与实践
颠覆式虚拟显示技术:ParsecVDisplay开源解决方案的突破与实践 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 在数字工作空间不断扩展的今天,高分辨率虚拟…...
AMD显卡本地AI部署终极指南:三步解锁免费大模型运行能力
AMD显卡本地AI部署终极指南:三步解锁免费大模型运行能力 【免费下载链接】ollama-for-amd Get up and running with Llama 3, Mistral, Gemma, and other large language models.by adding more amd gpu support. 项目地址: https://gitcode.com/gh_mirrors/ol/ol…...
全平台B站资源管理效率工具:BiliTools全方位解决方案
全平台B站资源管理效率工具:BiliTools全方位解决方案 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 在…...
细节见真章:JamTools 聚合工具的用户体验设计与实践
在软件市场竞争日益激烈的今天,用户体验已经成为决定软件成败的关键因素之一。 一款软件,无论功能多么强大,如果用户体验不好,就很难获得用户的认可。 JamTools 作为一款免费开源的聚合工具软件,不仅在功能上满足了用户…...
ai赋能vue开发,让快马平台智能生成数据可视化仪表盘
最近在做一个数据可视化项目,正好体验了用AI辅助Vue3开发的全流程。不得不说,现在的AI工具确实让前端开发效率提升了不少。下面分享下我是如何通过InsCode(快马)平台快速实现一个智能数据仪表盘的。 需求分析与技术选型 首先需要明确仪表盘的核心功能&am…...
树莓派5上跑YOLOv11:用NCNN加速,实测FPS提升与避坑指南
树莓派5实战:YOLOv11模型NCNN加速全流程优化指南 树莓派5作为新一代单板计算机,其性能提升让边缘端实时目标检测成为可能。但要在资源受限的设备上流畅运行YOLOv11这类现代视觉模型,仅靠硬件升级远远不够。本文将带您深入探索NCNN框架在树莓派…...
Translumo终极指南:如何免费实现游戏外语实时翻译
Translumo终极指南:如何免费实现游戏外语实时翻译 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 还在为看不懂…...
