Python模板引擎的注入问题分析
2017-01-05 15:16:52文章来源:点点软件园热度:0
这几年比较火的一个漏洞就是jinjia2之类的模板引擎的注入,通过注入模板引擎的一些特定的指令格式,比如 {{1+1}} 而返回了 2 得知漏洞存在。实际类似的问题在Python原生字符串中就存在,尤其是Python 3.6新增 f 字符串后,虽然利用还不明确,但是应该引起注意。更多最新IT资讯尽在金顺软件园http://www.jinshun168.com/
软件名称: | Python下载 |
软件大小: | 34.95MB |
下载地址: | http://www.jinshun168.com/soft/4377.html |
最原始的 %
userdata = {"user" : "jdoe", "password" : "secret" }
passwd = raw_input("Password: ")
if passwd != userdata["password"]:
print ("Password " + passwd + " is wrong for user %(user)s") % userdata
如果用户输入 %(password)s 那就可以获取用户的真实密码了。
format方法相关
除了上面的payload改写
为 print ("Password " + passwd + " is wrong for user {user}").format(**userdata) 之外,还可以
>>> import os>>> '{0.system}'.format(os)'' 会先把 0 替换为 format 中的参数,然后继续获取相关的属性。
但是貌似只能
获取属性,不能执行方法?但是也可以获取一些敏感信息了。
金顺软件园小编推荐:
CentOS+nginx+uwsgi+Python 多站点环境搭建
以上,就是金顺软件园小编给大家带来的Python模板引擎的注入问题分析全部内容,希望对大家有所帮助!