NSS题目练习5

[NISACTF 2022]babyupload

打开后尝试上传php,jpg,png文件都没成功

查看源代码发现有个/source文件

访问后下载压缩包发现有一个python文件

搜索后知道大致意思是,上传的文件不能有后缀名,上传后生成一个uuid,并将uuid和文件名存入数据库中,并返回文件的uuid。再通过/file/uuid访问文件,通过查询数据库得到对应文件名,在文件名前拼接uploads/后读取该路径下上传的文件。

http://t.csdnimg.cn/jR6yM

读取 flag 文件,在文件名前被uploads/拼接意味着只能读取上传后的文件,而且上传的文件没有后缀名,不能直接利用,但os.path.join()函数存在绝对路径拼接漏洞

绝对路径拼接漏洞

os.path.join(path,*paths)函数用于将多个文件路径连接成一个组合的路径。第一个函数通常包含了基础路径,而之后的每个参数被当作组件拼接到基础路径之后。

然而,这个函数有一个少有人知的特性,如果拼接的某个路径以 / 开头,那么包括基础路径在内的所有前缀路径都将被删除,该路径将视为绝对路径

当上传的文件名为 /flag ,上传后通过uuid访问文件后,查询到的文件名是 /flag ,那么进行路径拼接时,uploads/ 将被删除,读取到的就是根目录下的 flag 文件。

将filename改为/flag

即可得到flag

[LitCTF 2023]Follow me and hack me

按照要求传参可直接得到flag

[LitCTF 2023]Ping

先尝试ping一下本机地址,查看目录,发现不行

查看源码发现有过滤

题目提示是前端绕过,直接禁用js

查看所有文件夹,发现里面有flag

用cat查看即可得到flag

[LitCTF 2023]Vim yyds

题目提示泄露,直接用dirsearch扫描,发现一个文件,访问后下载

用vim编辑器打开

vim -r 文件名打开可查看源码

用post传参传入“Give_Me_Your_Flag”通过base64加密后的值

即可得到flag

[HNCTF 2022 Week1]Interesting_include

用get传参的方法传入一个filter,还有一个正则匹配

题目提示是php伪协议,直接构造url,得到一串base64编码

解码后得到flag

[HUBUCTF 2022 新生赛]checkin

要求用get传参传入一个info,info后续被反序列化,include("flag.php")处的提示是已经修改了username和password这两个值,发现是弱比较

补充:

弱比较中的布尔true和任意比较:

var_dump(True == 0);    //bool(false)
var_dump(True == 'False');    //bool(true)
var_dump(True == 2);    //bool(true)

所以可知,true和非空、非零字符串比较都是为true

编写php代码,得到payload

传入url,得到flag

[GXYCTF 2019]BabyUpload

发现提示

先上传一个.htaccess文件并抓包更改类型

上传成功并显示上传路径

传入一个jpg文件

文件头欺骗也不行,可能是不能含有<?

尝试换用别的一句话木马

上传成功,显示路径

蚁剑测试连接成功

找到flag

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

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

相关文章

基于深度学习的模糊认知图方法

1 文章信息 文章题目为“Deep Fuzzy Cognitive Maps for Interpretable Multivariate Time Series Prediction”&#xff0c;该文于2019年发表于“IEEE TRANSACTIONS ON FUZZY SYSTEMS”。文章提出了深度模糊认知图&#xff08;FCM&#xff09;用于多变量时间序列预测&#xff…

19.Redis之集群

1.集群的基本介绍 集群 这个词.广义的集群,只要你是多个机器,构成了分布式系统, 都可以称为是一个"集群"前面主从结构,哨兵模式,也可以称为是"广义的集群”狭义的集群,redis 提供的集群模式, 这个集群模式之下,主要是要解决,存储空间不足的问题(拓展存储空间) …

科普健康短视频:成都鼎茂宏升文化传媒公司

科普健康短视频&#xff1a;引领健康知识新潮流 在数字化时代的浪潮中&#xff0c;短视频以其短小精悍、直观易懂的特点&#xff0c;迅速成为大众获取信息的重要渠道。其中&#xff0c;科普健康短视频更是凭借其科学、权威、实用的内容&#xff0c;吸引了大量关注健康的观众。…

golang WEB应用【3】:Go语言Web编程进阶

文章目录 Go语言Web编程进阶并发Web服务器的实现性能优化技巧使用并发优化HTTP服务器的配置减少内存分配高效处理JSON数据库优化使用缓存减少锁的使用使用静态资源CDN优雅的重试机制 压力测试和性能分析pprof的使用压力测试 Web应用的单元测试错误处理和日志记录错误处理日志记…

Linux —— MySQL操作(1)

一、用户与权限管理 1.1 创建与赋予权限 create user peter% identified by 123465 # 创建用户 peter&#xff0c;# %&#xff1a;允许所有用户登录这个用户访问数据库 刚创建的新用户是什么权限都没有&#xff0c;需要赋予权限 grant select on mysql.* to peter%; # 赋予…

什么是数据资产管理?数据资产管理包括了哪些内容?

数据资产管理包括数据模型管理、数据标准管理、数据质量管理等 10 个活动职能&#xff0c;覆盖数据资源化、数据资产化两个阶段。本章参考 PDCA 方法&#xff0c;从计划、执行、检查、改进四个环节着手&#xff0c;阐述数据资产管理活动职能的核心理念与实践要点。 一、数据模型…

使用Python操作Git

大家好&#xff0c;当谈及版本控制系统时&#xff0c;Git是最为广泛使用的一种&#xff0c;而Python作为一门多用途的编程语言&#xff0c;在处理Git仓库时也展现了其强大的能力。通过Python&#xff0c;我们可以轻松地与Git仓库进行交互&#xff0c;执行各种操作&#xff0c;从…

Java 中的字符串转义

Java 中的字符串转义 在 Java 中&#xff0c;字符串是用双引号括起来的字符序列。反斜杠 (\) 是转义字符&#xff0c;用于表示一些特殊字符&#xff0c;如换行符 (\n)、制表符 (\t) 等。如果你需要在字符串中表示一个实际的反斜杠字符&#xff0c;则必须使用双反斜杠 (\\)。 …

2024全新交友盲盒+付费进群二合一源码 包含全套源码+视频教程

2024全新交友盲盒付费进群二合一源码 包含全套源码视频教程39同校 三九同校 最高版本&#xff0c;纸条&#xff0c;交友&#xff0c;源码&#xff0c;搭建包上线运营&#xff0c;防封红&#xff0c;独家唯一版本盲盒交友脱单系统源码&#xff0c;带教程&#xff0c;免授权这套源…

Golang | Leetcode Golang题解之第119题杨辉三角II

题目&#xff1a; 题解&#xff1a; func getRow(rowIndex int) []int {row : make([]int, rowIndex1)row[0] 1for i : 1; i < rowIndex; i {row[i] row[i-1] * (rowIndex - i 1) / i}return row }

分布式任务队列系统 celery 原理及入门

基本 Celery 是一个简单、灵活且可靠的分布式任务队列系统&#xff0c;用于在后台执行异步任务处理大量消息。支持任务调度、任务分发和结果存储&#xff0c;并且可以与消息代理&#xff08;如 RabbitMQ、Redis 等&#xff09;一起工作&#xff0c;以实现任务的队列管理和执行…

[Linux系统编程]文件IO

一.系统调用 什么是系统调用? 只有系统调用(系统函数)才能进入内核空间&#xff0c;库函数也是调用系统函数&#xff0c;才得以访问底层。 系统调用由操作系统实现并提供给外部应用程序的编程接口。是应用程序同系统之间数据交互的桥梁。 换句话说&#xff0c;系统调用就是操…

解决迁移到AWS的关键挑战

迁移到AWS云平台是许多出海企业的重要战略之一&#xff0c;但迁移过程中常常面临各种挑战。作为AWS官方合作伙伴&#xff0c;九河云深知客户在迁移过程中所面临的困难&#xff0c;并通过提供全面的支持和解决方案&#xff0c;帮助客户克服各种挑战&#xff0c;实现顺利迁移到AW…

graph Conv介绍

2. Graph Conv 的作用 The multiplication of the adjacency matrix A \textbf{A} A with the feature matrix X \textbf{X} X in the GraphConv layer is a crucial operation in Graph Convolutional Networks (GCNs). This operation performs a localized, weighted agg…

node依赖安装的bug汇总

1.npm仓库 首先要获取npm仓库的地址&#xff1a; registryhttp://11.11.111.1:1111/abcdefg/adsfadsf 类似这种的地址 然后设置npm仓库&#xff1a; npm config set registryhttp://11.11.111.1:1111/abcdefg/adsfadsf (地址要带等号) 接着安装依赖&#xff1a; npm i…

Golang中的 defer 关键字和Python中的上下文管理with关键字

defer&#xff0c;中文意思是&#xff1a;推迟 常用用于关闭文件操作&#xff0c;简而言之&#xff0c;就是try/finally的一种替代方案 使用示例 package mainimport "fmt"func main() {defer fmt.Println("执行延迟的函数")fmt.Println("执行外层…

【计算Nei遗传距离】

报错 Warning message: In adegenet::df2genind(t(x), sep sep, ...) : Markers with no scored alleles have been removed 原因&#xff1a; 直接用plink转换为VCF&#xff0c;丢失了等位基因分型&#xff08;REF ALT&#xff09; &#xff08;plink编码的规则&…

Centos7对比Ubuntu一些常用操作差异点

Centos7对比Ubuntu一些常用操作差异点 CentOS 7将于2024年6月30日停止维护&#xff0c;CentOS8已经转为Rhel的上游项目。同时Centos7的软件仓库中&#xff0c;部分软件版本较老。后续使用过程中可以考虑切换到Ubuntu。 下面总结了一些两个系统的常见差异点&#xff0c;包括软…

优选算法一:双指针算法与练习(移动0)

目录 双指针算法讲解 移动零 双指针算法讲解 常见的双指针有两种形式&#xff0c;一种是对撞指针&#xff0c;一种是快慢指针。 对撞指针&#xff1a;一般用于顺序结构中&#xff0c;也称左右指针。 对撞指针从两端向中间移动。一个指针从最左端开始&#xff0c;另一个从最…

【Linux】进程(2):进程状态

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解Linux进程&#xff08;1&#xff09;&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 &#xff08;A&#xff09;R/S/D/T/t状态1. R&#xff1a;程序运…