HNCTF 2022 calc_jail_beginner_level3(JAIL)

最后更新于 2024-09-23 254 字 预计阅读时间: 1 分钟


MISC写得少,第一次遇到沙箱逃逸,得到源文件service.py

#!/usr/bin/env python3
WELCOME = '''
  _                _                           _       _ _   _                _ ____  
 | |              (_)                         (_)     (_) | | |              | |___ \ 
 | |__   ___  __ _ _ _ __  _ __   ___ _ __     _  __ _ _| | | | _____   _____| | __) |
 | '_ \ / _ \/ _` | | '_ \| '_ \ / _ \ '__|   | |/ _` | | | | |/ _ \ \ / / _ \ ||__ < 
 | |_) |  __/ (_| | | | | | | | |  __/ |      | | (_| | | | | |  __/\ V /  __/ |___) |
 |_.__/ \___|\__, |_|_| |_|_| |_|\___|_|      | |\__,_|_|_| |_|\___| \_/ \___|_|____/ 
              __/ |                          _/ |                                     
             |___/                          |__/                                                                                       
'''

print(WELCOME)
#the length is be limited less than 7
#it seems banned some payload 
#Can u escape it?Good luck!
print("Welcome to the python jail")
print("Let's have an beginner jail of calc")
print("Enter your expression and I will evaluate it for you.")
input_data = input("> ")
if len(input_data)>7:
    print("Oh hacker!")
    exit(0)
print('Answer: {}'.format(eval(input_data)))

是一个计算器,输入字符串的长度不能大于7。如果长度没有被限制可以用__import__('os').system('sh')来获取shell,在python中,help()是python的内置函数可以以交互式来查询python模块的各种信息

用modules列出所有的模块

进入任意模块从而得到Jupyter Notebook 或类似的交互式环境

! 通常被用于 Jupyter Notebook 或类似的交互式环境中作为命令执行,输入!ls得到结果

在vim中也有类似的效果

nc连接目标主机后输入help()

输入modules,进入任意模块

!cat flag即可

此作者没有提供个人介绍。
最后更新于 2024-09-23