[HNCTF 2022 Week1]calc_jail_beginner_level2(JAIL)

[HNCTF 2022 Week1]calc_jail_beginner_level2(JAIL)

下载附件得到源代码

#the length is be limited less than 13
#it seems banned some payload 
#Can u escape it?Good luck!

WELCOME = '''
  _                _                           _       _ _   _                _ ___  
 | |              (_)                         (_)     (_) | | |              | |__ \ 
 | |__   ___  __ _ _ _ __  _ __   ___ _ __     _  __ _ _| | | | _____   _____| |  ) |
 | '_ \ / _ \/ _` | | '_ \| '_ \ / _ \ '__|   | |/ _` | | | | |/ _ \ \ / / _ \ | / / 
 | |_) |  __/ (_| | | | | | | | |  __/ |      | | (_| | | | | |  __/\ V /  __/ |/ /_ 
 |_.__/ \___|\__, |_|_| |_|_| |_|\___|_|      | |\__,_|_|_| |_|\___| \_/ \___|_|____|
              __/ |                          _/ |                                    
             |___/                          |__/                                                                            
'''

print(WELCOME)

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)>13:
    print("Oh hacker!")
    exit(0)
print('Answer: {}'.format(eval(input_data)))

这道题过滤了exec,input,eval,并且还对长度做了限制不能超过13,此时类似于__import__('os').system('sh')之类的就无法使用了,但是还有其他方法可以逃逸。

1.eval(input())

既然它是对input_data进行的检查,不难想到只要再执行一个input()就可以绕过检查了。这句代码的意思相当于input()继续输入字符串,再由eval函数解析执行,所有就没有了字符长度的限制,然后再输入__import__('os').system('sh')即可getshell。

PEjFzEoiCng79GPOv1pbT3Wn0N9FEhROXRaRmmQ8_K8

2.breakpoint

Python中内置了一个名为breakpoint()的函数,在Python 3.7中引入,用于在调试模式下设置断点。使用breakpoint()函数会停止程序的执行,并在IDE或命令行中进入调试模式,可以单步执行程序,查看变量的值等。

这题我们输入breakpoint之后,会进入一个调试的交互界面,然后再输入__import__('os').system('sh')即可getshell。

-1rPsMKy2gTdNrP1GSK2SBiGCxn4BAouML3XtOc4WoM

posted on   跳河离去的鱼  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示