BUGKU-Simple_SSTI_1


本人初学SSTI,知识很有限,只能以新手的角度解析这道题

解题步骤

1.打开题目链接, 出现以下页面

 

 提示需要传入一个名为flag的参数,题目又叫SSTI,从而得到了可以使用模板注入的基本条件

2.根据经验,一般secret-key中存在有价值的东西,或者说在config中,从而构建url:http://114.67.246.176:18558/?flag={{config}}

得到如下页面

 

 看到secret_key中存在着flag

 

如果理解了题目的含义,那么也可以构建如下url:http://114.67.246.176:18558/?flag={{config.SECRET_KEY}}

 

 

 

从而直接获取config里面secret_key变量的值,也就是flag

总结:这是一个关于python和jinja 2的极为基础的ssti模板注入题目,只需要了解基础的jinja语法和网页页面渲染方式。就是通常用户需要提交一个姓名到网页,然后这个网页就会出现你每次访问,出现hello,某某某的效果。而如果有ssti的漏洞,那么我们在提交姓名时,提交一个恶意代码,在这里是jinjia 2引擎,我们提交一个jinjia2语句,然后jinjia2引擎就会渲染解析这个语句,而jinjia 2语句里面又会套用python语句,总而言之利用这些语句我们可以查看敏感信息,代码执行或者getshell。根据经验,我们一般会查看config信息,在这个题目中告诉了我们flag是可以传入的ssti模板注入点,利用它获取config信息,而网页源码也有提示是在secretkey处有猫腻。类似于xss的代码执行,由于我们在url中传入的参数flag的值为一个jinjia 2语句{{ }},这是一个变量语句,其中有函数config,通过网页的二次渲染执行了这个语句,从而得到了想要的信息

彩蛋:我们一般也会查看网页源代码,可以看到以下提示

 

 他告诉了你是flask模板,同时一般会设置一个secret_key这样一个变量


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM