Simple_SSTI_1-WEB-bugku-解题步骤

------CTF解题专栏------


声明:文章由作者weoptions学习或练习过程中的步骤及思路,非正式答案,仅供学习和参考。

题目信息:

题目:Simple_SSTI_1

作者:valecalida

提示:无

场景:


解题思路:

You need pass in a parameter named flag。(你需要传一个名字为flag的参数),想让我们传参数,那我们就传呗。


解题步骤:

一、传送参数flag

复制代码
http://114.67.175.224:13504/?flag=?

直接有显示,试试sql注入?

复制代码
http://114.67.175.224:13504/?flag=1' and '1'='1--+

就挺尴尬的,题目SSTI是服务器端模板注入,我搁这儿试sql注入。

复制代码
http://114.67.175.224:13504/?flag={{2*3}}

哦?有ssti注入漏洞?tplmap登场


二、tplmap尝试

最后显示没注入点???不该啊,使出必杀技《奥义-秘术-答案之术》flag{0866f097bc8a992bc298142d5e19a0d7}


三、原理解析

复制代码
http://114.67.175.224:13504/?flag={{config.SECRET_KEY}}

(⊙﹏⊙)很难绷,怎么想到去config的secret_key的,直到我想看看源码的时候(后面加上的)

在最后有一个隐藏文字。

复制代码
You know, in the flask, We often set a secret_key variable.

你知道,在Flask中,我们经常设置一个叫做"secret_key"的变量。

这是一个线索,百度一下,在 Flask 中,双大括号 {{ }} 用于表示动态内容的占位符,该内容将由模板引擎渲染。这被称为模板语法。 当你在 Flask 模板中使用双大括号把变量或表达式括起来时,它告诉模板引擎去计算该表达式并将其值插入到渲染后的 HTML 文档中。 例如,你提供的代码 flag={{config.SECRET_KEY}} 将会在 HTML 文档中的该位置渲染 Flask 应用程序的秘密密钥。

可是为什么SECRET_KEY为什么要关联config呢?继续查资料。

Flask项目的配置中都是通过app.config对象来进行配置的。比如要配置一个项目的SECRET_KEY,可以使用app.config['SECRET_KEY'] = "xxx"来进行设置。

(⊙o⊙)?懂了,但没完全懂。评论区有大佬帮忙解释下吗?


总结:

难度:★★☆☆☆☆☆☆☆☆

难度真的不高,甚至很简单,签到题,/(ㄒoㄒ)/~~大佬,菜菜,帮帮。

文章是自己的解题步骤,侵删。有需要工具的小伙伴可以私信哈,无偿,直接qq发你。


相关推荐
uwvwko8 小时前
ctfhow——web入门214~218(时间盲注开始)
前端·数据库·mysql·ctf
白总Server8 小时前
Nginx 中间件
大数据·linux·运维·服务器·nginx·bash·web
LcVong1 天前
一篇文章学会开发第一个ASP.NET网页
后端·c#·asp.net·web
90后小陈老师2 天前
WebXR教学 05 项目3 太空飞船小游戏
windows·3d·web·js
zizisuo2 天前
JAVA:Web安全防御
java·web
艾露z7 天前
Vert.x学习(五)—— SockJS,搭建客户端,与后端服务器进行通信
java·前端·后端·学习·web
视力5.2的眼镜猴8 天前
CTF--好像需要管理员
web
uwvwko8 天前
ctfshow——web入门191~194
前端·数据库·mysql·安全·ctf
梦想不只是梦与想8 天前
鸿蒙系统开发状态更新字段区别对比
android·java·flutter·web·鸿蒙
Huazzi.9 天前
【Caddy】:现代化、自动 HTTPS 的 Web 服务器新星
服务器·前端·https·web