告诉我们如果想要访问/fllllllllllllag下的flag文件,是需要filehash这个GET参数需要被mad5加密的filename(也就是/fllllllllllllag)与cookie_secret的md5加密才能访问最终的flag值
我们要想办法获取cookie_secret的值
我们将URL上的文件名修改替换为/fllllllllllllag试试
把url上的修改为?msg=/fllllllllllllag
包括我们加上{{}},模板注入必须通过传输型如{{xxx}}的执行命令
我们知道handler.settings是内置的环境配置信息名称
cookie_secret: 1beaa4a8-aee4-4b8f-8b56-63b60cf13c24
接下来md5(cookie_secret+md5(filename))
1beaa4a8-aee4-4b8f-8b56-63b60cf13c24+3bf9f6cf685a6dd8defadabfb41a03a1
去掉加号加密得到78503f8a3e173f0546c4d6f35a52b713
file?filename=/fllllllllllllag&filehash=78503f8a3e173f0546c4d6f35a52b713
得到flag
这里借用一下师傅的
import hashlib #选用哈希模块
filename = '/fllllllllllllag' #文件名
cookie_secret = '76fc62a3-fea5-46ab-8f95-4b7262246f8c'#cookie_secret值
filename = hashlib.md5(filename.encode()).hexdigest()#/fllllllllllllag进行32位小写哈希md5加密
a = cookie_secret + filename#md5值进行拼接
filehash = hashlib.md5(a.encode()).hexdigest()#计算拼接后的md5值的md532小写的值
print(filehash)#输出加密后的md532位小写的值
知识点:
render 函数 跟 模板(template) 都是用来创建 html 模板的,Vue 推荐在绝大多数情况下使用模板(template)来创建你的 HTML
template是一种类HTML的语法,它定义了组件的结构和展示,包括HTML标签、属性、事件和插值等。Vue将template编译成render函数,最终将render函数渲染成虚拟DOM,并将其渲染到页面上。
render函数则是一个函数式组件,它的参数是一个createElement函数和上下文对象。render函数用代码方式描述组件的结构和展示,并返回一个虚拟DOM节点,最终也会被渲染到页面上。
相对于template,render函数更加灵活和强大,可以更精细地控制组件的展示。同时,由于render函数是JavaScript代码,因此它可以被更好地集成到其他代码中。template则更加容易编写和理解,但可能会受到HTML标签和属性的限制。
在实际开发中,我们可以选择使用template或render函数来定义组件,具体取决于组件的需求和开发者的习惯。如果组件需要较为复杂的展示逻辑和动态交互,可以使用render函数来实现。如果组件比较简单,可以使用template来编写。
如果使用此模板显示用户的输入,那么它是完全安全的,因为我们所做的只是从数据库中获取当前用户的信息,然后将其返回给用户,但下面这个例子就不太一样了:
如果用户的输入的成为模板的一部分,就构成了ssti漏洞,因为模板有能力执行任意代码,所以用户可以在服务器上获得一个shell。攻击者可以在其中注入恶意模板代码来获得shell,但需要注意的一点是,该漏洞不仅限于服务器,只要模板可用,漏洞就可以存在于任何地方
C#(StringTemplate,Sharepoint上动态使用的ASPX)。
Java(Velocity、Freemarker、Pebble、Thymeleaf和Jinjava)
PHP(Twig、Smarty、Dwoo、Volt、Blade、Plates、Mustache、Python、Jinja2、Tornado、mustache和String Template)。
cookie_secret在Application对象settings的属性中 ,访问它的话就需要知道它的属性名字
self.application.settings有一个别名是RequestHandler.settings
其中handler又是指向处理当前这个页面的RequestHandler对象
在tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,这里面就是我们的一些环境变量。
简单理解handler.settings即可,可以把它理解为tornado模板中内置的环境配置信息名称,通过handler.settings可以访问到环境配置的一些信息,看到tornado模板基本上可以通过handler.settings一把梭
收获:
2.了解到handler.settings是tornado框架的环境配置文件
知识点源于:
buuctf easy-tornado(cookie_secret)_-栀蓝-的博客-CSDN博客
服务端模板注入攻击原理以及实战(SSTI)_服务器端模板注入-CSDN博客
原文地址:https://blog.csdn.net/m0_75178803/article/details/134704729
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_48254.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!