HNCTF的pyjail做题过程详解

简述:

因为本人对python的内置函数理解也不是深入,在做题过程中也是靠着出题人的hint和google大法才做出来几题,详细的解题过程和知识点讲解可以看一下春哥的知乎,[PyJail] python沙箱逃逸探究·总览(HNCTF题解) - 知乎 (zhihu.com)

解题记录:

1.python2 input

 2.calc_jail_beginner_level1

题目:

限制了很多东西,可以写脚本生成编码绕过,得到flag

 3. pyjail

题目限制长度为13,使用pyloadexec(input()) 绕过输入长度限制

4. calc_jail_beginner_level3

题目限制长度小于7,只能使用help()命令

 查看sys模块,信息收集了解到当查看的模块的内容过多时,会使用more命令翻页查看内容,造成溢出执行命令

 

5. calc_jail_beginner_level2.5

题目:

 level2的基础上过滤几个函数造成无法输入,这个时候使用breakpoint()函数进入pdb调试模式

 查阅资料理解后,先用step进入模块,可以使用list查看当前代码块,发现输入的内容被input_data变量接收(其实看题目附件也知道)

 这个时候我们就可以把变量input_data的值重新赋值,之前是breakpoint()函数。

 6. lake lake lake

存在后门,不过先需要key,使用globals()可以看到key

 7. l@ke l@ke l@ke

长度受到限制,无法使用globals()了,只能help()命令

 使用__main__可以查看当前模块的信息,包括全局变量

 得到key

posted @   nLesxw  阅读(2651)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示