NSS题目练习8

[SWPUCTF 2022 新生赛]numgame

打开发现不能直接更改数值,会变成负数,快捷键不能用,输入view-source查看源代码,发现js文件

点开后发现最下面有个酷似flag的东西

提交后是错的,看着像是base64,解码后得到另外一个文件

访问后得到一个新的界面,有个正则匹配,过滤了n,c,\m

补充

call_user_func()把第一个参数作为回调函数(作为参数传递给另一个函数,并在被调用函数执行完毕后被调用)调用

双冒号运算符:在PHP中双冒号(::)操作符是一种范围解析操作符,又作用域限定操作符。它是对类中的方法的静态引用,可以访问静态、const和类中重写的属性与方法

http://t.csdnimg.cn/8k5pe

构造payload并访问,发现提示

更改后再次访问,查看源代码得到flag

[SWPUCTF 2022 新生赛]funny_php

第一个if既要小于3又要大于999999999,可以用数组绕过或科学计数法绕过

看到输出:D说明成功绕过

第二个if是一个正则匹配,NSSCTF被替换

出现wow说明成功绕过

接下来是一个md5弱比较

数组绕过md5,发现后面有字符串检测,应该使用科学计数法绕过

得到flag

[NSSRound#8 Basic]MyDoor

进来是一个空白界面,看到file想到伪协议

php://filter用于读取源码

查看后得到一串base64编码

解码后得到php源代码,需要传参N_S.S进行命令执行

补充:

PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事:

1.删除空白符

2.将某些字符转换为下划线(包括空格)

利用PHP的字符串解析特性Bypass - FreeBuf网络安全行业门户

所以这里N_S.S就会被解析为N_S_S,接下来就可以访问phpinfo界面(查看php各种信息)

得到flag

[SWPUCTF 2022 新生赛]funny_web

先随便提交一个,发现提示,得知用户名是NSS

再次出现提示,是招新群某位的QQ号,这里不知道,就去搜索了一下别人的wp,得到密码2122693401

得到php代码

大致意思是关闭报错,包含文件flag.php,get传参传入num,然后是一个弱比较,后面还有一个inval()函数需要截断即可输出flag

补充:

include():找不到被包含的文件只会产生警告,脚本继续执行,并且include()函数并不在意被包含的文件是什么类型,只要有php代码,都会被解析出来

inval():获取变量整数值,用于强制类型转换,传入的参数不是整数就会返回1,当某个字符被过滤时,可以通过8进制或16进制绕过

http://t.csdnimg.cn/bdoPf

得到flag

[BJDCTF 2020]ZJCTF,不过如此

大致意思是关闭报错,get传入两个参数,text内容为I have a dream,可以使用data伪协议提交数据,后面提示读取next.php文件,可以用file伪协议读取

补充:

file_get_contents()函数用于读取文件中的内容,并将其作为字符串返回

text/plain,则以文本类型展示

PHP函数指南- file_get_contents()-php教程-PHP中文网

构造payload:?text=data://text/plain,I have a dream&file=php://filter/read=convert.base64-encode/resource=next.php

得到一串base64编码

解码后获得另外一个php代码

大致意思是使用GET方式传入一个值,该值会传入complex函数,然后complex函数中return语句返回的值用preg_replace进行了处理,需要绕过preg_replace

补充:

在PHP中,使用$_SESSION[]可以存储特定用户的Session信息。并且每个用户的Session信息都是不同的

http://t.csdnimg.cn/dVFCh

preg_replace的第一个re参数就是我们输入的匹配模式 ,我们使用GET传参来输入

preg_replace的第二个参数用于替换的字符串, \\1表示匹配出第一个分组的正则(即$re,也就是我们使用GET传入的),把输入的值转为小写,然后用于替换

preg_replace的第一个参数是要进行所有的字符串,这个str也是我们可以使用GET传参控制的

preg_replace 使用了 /e 模式,导致了代码可以被执行,/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码

深入研究preg_replace与代码执行 - 先知社区

r e 和 re和 re和str就是get的键值对,由于是eval(strtolower("\\1")) 本身strtolower是需要接受一个string,而这里转义数字,表示正则表达式 \1 实际上指定的是第一个子匹配项,也就是一旦匹配到,会进入strtolower() 先执行匹配到的内容(替换“\1”的位置),然后再变成小写,这里就可以命令执行,但是替换进来的不是字符串么?($str值) 是,如果普通地传进来确实是字符串,但是如果用可变变量就不一定了。因为这里是双引号,双引号能够对其包裹地内容进行转义等等操作,之所以是\S*,是因为可以快速匹配

最后传入构造好的payload

next.php?\S*=${getFlag()}&cmd=system('cat /flag');

得到flag

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

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

相关文章

Leetcode 100.相同的树

1.题目要求,如图所示: 我们可以用两个数组去解决此题: 1.首先我们要用malloc函数去构造两个数组,还要去构造两个数组的长度,代码块如下图所示: int* p_length (int*)malloc(sizeof(int));*p_length 0;int* q_length (int*)malloc(sizeof(int));*q_l…

果园预售系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,用户管理,果树管理,果园管理,果园预约管理 前台账户功能包括:系统首页,个人中心,论坛,公告&a…

SwiftUI中自定义Shape与AnimateableData的使用

上一篇文章主要介绍了一下在SwiftUI中如何自定义Shape,本篇文章主要介绍Shape中的 一个关键的属性AnimatableData,它用于定义可以被动画化的数据。通过实现 Animatable 协议,可以让自定义视图或图形响应动画变化。 AnimatableData 是 Animata…

盲盒小程序 跨平台兼容性测试策略:打造无缝体验

在盲盒小程序的开发过程中,跨平台兼容性测试是确保应用在不同设备和操作系统上都能提供无缝体验的重要步骤。本文将探讨一些关键的跨平台兼容性测试策略,以助力开发者打造稳定、流畅的小程序。 一、明确测试目标 在进行跨平台兼容性测试之前&#xff0…

2024年汉字小达人活动还有4个多月开赛:来做18道历年选择题备考

结合最近几年的活动安排,预计2024年第11届汉字小达人比赛还有4个多月就启动,那么孩子们如何利用这段时间有条不紊地准备汉字小达人比赛呢? 我的建议是充分利用即将到来的暑假:①把小学1-5年级的语文课本上的知识点熟悉&#xff0…

IDEA创建简单web(servlet)项目(server为tomcat)

引言 鉴于网上很少有关于IDEA开发servlet项目的教程(24版idea,并且servlet技术十分复古,很少有人用到,能够理解,该文章旨在为在校的学生提供一个参考,项目技术简单)本人在此总结从头开始到项目…

电脑意外出现user32.dll丢失的八种修复方法,有效解决user32.dll文件丢失

遇到与 user32.dll 相关的错误通常是因为该文件已损坏、丢失、或者与某些软件冲突。今天这篇文章寄给大家介绍八种修复user32.dll丢失的方法,下面是一步步的详细教程来解决这个问题。 1. 重新启动电脑 第一步总是最简单的:重新启动你的电脑。许多小问题…

SQL Server 安装后,服务器再改名,造成名称不一致,查询并修改数据库服务器真实名称

SELECT SERVERNAME -- 1.查询旧服务器名称 SELECT serverproperty(servername) AS new --2.查询新服务器名称 -- 3.更新服务器名称 IF SERVERPROPERTY(servername) <> 新服务器名称替换 BEGIN DECLARE server_name NVARCHAR(128) SET server_name 新服务器…

美国空军发布类ChatGPT产品—NIPRGPT

6月11日&#xff0c;美国空军研究实验室&#xff08;AFRL&#xff09;官网消息&#xff0c;空军部已经发布了一款生成式AI产品NIPRGPT。 据悉&#xff0c;NIPRGPT是一款类ChatGPT产品&#xff0c;可生成文本、代码、摘要等内容&#xff0c;主要为为飞行员、文职人员和承包商提…

springboot的WebFlux 和Servlet

Spring Boot 中的 Servlet 定义&#xff1a; 在 Spring Boot 中&#xff0c;Servlet 应用程序通常基于 Spring MVC&#xff0c;它是一个基于 Servlet API 的 Web 框架。Spring MVC 提供了模型-视图-控制器&#xff08;MVC&#xff09;架构&#xff0c;用于构建 Web 应用程序。…

u-boot(二) - 配置

一&#xff0c;u-boot的默认配置 xxx_defconfig 在顶层的Makefile中找到如下规则 %config: scripts_basic outputmakefile FORCE $(Q)$(MAKE) $(build)scripts/kconfig $ target -> %config -> mx6ull_14x14_evk_defconfig command -> $(Q)$(MAKE) $(build)scripts…

最快安装zabbix

部署zabbix 6.x 建议使用红帽系统。 https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.9-x86_64-minimal.iso1> 配置安装yum源 [rootzabbix ~]# yum install https://mirrors.huaweicloud.com/zabbix/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8…

【PIXEL】2024年 Pixel 解除 4G限制

首先在谷歌商店下载 Shizuku 和 pixel IMS 两个app 然后打开shizuku &#xff0c;按照它的方法启动 推荐用adb 启动&#xff08; 电脑连手机 &#xff0c;使用Qtscrcpy最简洁&#xff09; 一条指令解决 shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.ap…

Shell环境下的脚本编程与应用

Shell是什么&#xff1f; Shell 是一个命令行解释器&#xff0c;它接收用户输入的命令&#xff08;如 ls、cd、mkdir 等&#xff09;&#xff0c;然后执行这些命令。Shell 同时还是一种功能强大的编程语言&#xff0c;允许用户编写由 shell 命令组成的脚本&#xff08;script&…

【沟通管理】项目经理《葵花宝典》之跨部门沟通

为什么每次跟其它部门的沟通总是不欢而散&#xff1f; 为什么每次想好好的就事论事的时候&#xff0c;却总是像在吵架&#xff1f; 为什么沟通总是不同频&#xff1f; 这是不是你作为项目经理在跨部门沟通时经常会遇到的问题&#xff1f; 在企业项目管理中&#xff0c;跨部门沟…

C++ 14 之 宏函数

c14宏函数.cpp #include <iostream> using namespace std;// #define PI 3.14 // 宏函数 // 宏函数缺陷1: 必须用括号保证运算的完整性 #define MY_ADD(x,y) ((x)(y))// 宏函数缺陷2&#xff1a;即使加了括号&#xff0c;有些运算依然与预期不符 #define MY_COM(a,b) ((…

2. 音视频H264

视频软件基本流程 1.什么是H264 H.264是由ITU-T视频编码专家组&#xff08;VCEG&#xff09;和ISO/IEC动态图像专家组&#xff08;MPEG&#xff09;联合组成的联合视频组&#xff08;JVT&#xff0c;Joint Video Team&#xff09;提出的高度压缩数字视频编解码器标准 H265又名高…

蓝牙耳机怎么连接电脑?轻松实现无线连接

蓝牙耳机已经成为许多人生活中不可或缺的一部分&#xff0c;不仅可以方便地连接手机&#xff0c;还能轻松连接电脑&#xff0c;让我们在工作和娱乐时享受无线的自由。然而&#xff0c;对于一些用户来说&#xff0c;将蓝牙耳机与电脑连接可能会遇到一些问题。本文将介绍蓝牙耳机…

RAG系统进阶(五)文本分割优化技巧及代码

背景 前边在介绍RAG系统时提到了文本分割&#xff08;或分段&#xff09;的作用和重要性。也提到了分段后所带来的一些问题&#xff0c;比如由于分段导致检索出来的TOP-n的结果可能未包含完整的答案。 粒度太大可能导致检索不精准&#xff0c;粒度太小可能导致信息不全面问题的…

C++:十大排序

目录 时间复杂度分析 选择排序 引言 算法思想 动图展示 代码实现 (升序) 优化 代码实现 分析 冒泡排序 引言 算法思想 动图展示 代码实现 插入排序 引言 算法思想 动图展示 代码实现 计数排序 引言 算法思想 动图展示 代码实现 桶排序 引言 算法思…