首页 > 其他 > 详细

XCTF pyton模板注入w up

时间:2020-07-10 20:41:24      阅读:86      评论:0      收藏:0      [点我收藏+]

因为最近要学习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()` 来进行命令执行

技术分享图片

 

 技术分享图片

 

XCTF pyton模板注入w up

原文:https://www.cnblogs.com/nu0l/p/13280433.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!