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

[HNCTF 2022 Week1]calc_jail_beginner_level3(JAIL)

开启靶场,打开链接,下载附件:

嗯,直接显示“Oh hacker!”,有点懵,先看看下载的附件(server.py):

得到信息如下:

用户输入的表达式长度被限制在7个字符以内。如果超过这个长度,程序会输出 "Oh hacker!" 并退出,否则就执行用户输入的内容


到这里就懂了,需要在kali上nc命令进行操作

尝试一下help,结果告诉我只能help()

输入help()后,显示一段python3.8的简单介绍内容

翻译内容如下:

欢迎使用 Python 3.8 的帮助工具!
如果你是第一次使用 Python,强烈建议你查看网上的教程,网址是 https://docs.python.org/3.8/tutorial/。
输入任何模块、关键字或主题的名称,以获取有关编写 Python 程序和使用 Python 模块的帮助。要退出此帮助工具并返回解释器,只需键入 "quit"。
要获取可用模块、关键字、符号或主题的列表,可以分别键入 "modules"、"keywords"、"symbols" 或 "topics"。
每个模块都有一行简短的描述说明其功能;要列出名称或描述中包含特定字符串(如 "spam")的模块,可以键入 "modules spam"。

因为我是第一次做这种交互式题目,有点懵逼,后面查看了别人的write up后才发现源码本来应该有段提示的:

#Your goal is to read ./flag.txt

#You can use these payload liked `__import__('os').system('cat ./flag.txt')` or `print(open('/flag.txt').read())`

到这里就很明显了,需要使用一些payload来读取flag.txt的内容,这里了解到可以使用payload:

__import__('os').system('sh')


__import__('os'):这是一个使用内置函数 __import__ 来导入 Python 模块 os 的代码。os 模块提供了与操作系统交互的功能,例如执行系统命令、文件操作等。

os.system('sh'):在导入了 os 模块后,该代码执行了 os.system('sh')。os.system() 函数是用于执行系统命令的,它接受一个字符串参数,将其中的命令在终端或命令提示符中执行。在这里,它试图执行命令 sh。

sh 是一个常用的 Unix/Linux 命令行解释器(shell),它是命令行的一个交互式解释器,允许用户输入命令并执行。


这里不熟练,直接q(quit)了


重新nc一下再输入payload

哦哦,忘了还有对输入字符串进行限制了,换种思路


再重新nc,依次输入os、!ls、!cat flag

(注意:! 符号通常被用于这种类似的交互式环境中,用来执行系统命令而不是python代码)

成功得到flag:

NSSCTF{95ceeb2b-293a-4aa4-84ba-d81e237cfdd4}


http://www.mrgr.cn/news/64392.html

相关文章:

  • Spring Boot的核心优势及其应用详解
  • mac 安装tomcat
  • 使用form表单的action提交并接收后端返回的消息
  • 萤石设备视频接入平台EasyCVR私有化部署视频平台高速公路视频上云的高效解决方案
  • 【天线&空中农业】花生霉变检测系统源码&数据集全套:改进yolo11-LVMB
  • java项目之协力服装厂服装生产管理系统的设计与实现(springboot)
  • 产品定义和独开分类
  • 形式化假说非决定论不确定性
  • Waymo的EMMA给多模态端到端自驾指引了方向
  • 软考:大数据架构设计
  • 【AI日记】24.11.02 LangChain Chat with Your Data
  • STM32F1学习——TIM
  • 【数模国奖】数模国赛获奖名单已出!附2024国赛二十三大赛区成绩公布通知!
  • 共模噪声和差模噪声
  • 【C#】Dictionary底层实现
  • STM32F103的CAN通讯接收测试
  • P3-1.【结构化程序设计】第一节——知识要点:算法、顺序结构程序设计、if语句的语法结构及各种用法
  • 带你了解 Spring Cloud Config
  • [进阶]集合的进阶(1)泛型
  • python NLTK快速入门
  • Uniapp打包发布App Store时(90894)错误
  • “七巨头”(The Magnificent 7)科技公司财报喜忧参半看AI
  • 解读JobScheduler的jobs.xml
  • 在centos中安装cmake
  • MySQL基础(三)
  • Java入门(5)--多线程编程