NSS题目练习8

news2024/11/28 15:53:03

[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.coloradmin.cn/o/1815924.html

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

相关文章

The Sandbox 游戏创作比赛|巴黎 CITY JAM

The Sandbox City Jam 邀请大家参与 The Sandbox 全新 Game Jam:City Jam!活动将以社区为中心,每次一个城市,旨在将国际文化带入The Sandbox。你可以通过参与比赛赢得奖品,发展技能,并与其他创作者为伴&…

autosleep框架设计与实现

在低功耗系统中,autosleep是一个较小的模块,是低功耗主流程的入口。在Linux内核中,autosleep是休眠流程的触发点和入口点,PM Core的休眠流程入口pm_suspend()就是被autosleep的睡眠工作队列调用而进入休眠的。 该功能的支持受宏…

反向代购系统建站技术详解

一、引言 随着全球化趋势的深入和电商行业的快速发展,反向代购(Reverse Daigou)作为一种新兴的商业模式逐渐受到关注。反向代购,即海外消费者通过国内电商平台购买国内商品并委托平台或第三方进行国际配送,满足了海外…

[Java基本语法] 从0到1带你精通Java基本语法

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀线程与…

类和对象(二)(C++)

初始化列表 class Date{public:Date(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day;}; 虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化…

第十五篇——条件熵和信息增益:你提供的信息到底值多少钱?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 通过这篇文章,我知道了条件熵和信息增益;如果你试…

创建应用程序

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 使用wxPython之前,先来了解两个基础对象:应用程序对象和顶级窗口。 应用程序对象管理主事件循环,主事件循环是wx…

JavaScript的运算符(算术、比较、赋值、逻辑、条件)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

直播预告|就在明天,解锁半导体测试全攻略

随着5G、物联网、人工智能和新能源汽车等新兴产业的快速发展,半导体测试设备与服务的市场需求将更加多样化。IC测试作为产品良率和成本管理的重要环节,行业测试工程师面临着降低测试成本和提高产品良率的强劲压力。如何提升测试的质量与效率,…

Spring Boot + Mybatis Plus实现登录注册

Spring Boot 实现登录注册 1. 注册 业务逻辑 客户端输入注册时需要的用户参数,比如:账户名、密码、确认密码、其他服务端接收到客户端的请求参数进行校验,然后判断是否有误,有误的地方就将错误信息抛出将密码进行加密之后存储到…

光伏项目管理——数字化改革

随着全球对可再生能源的迫切需求以及环保意识的日益增强,光伏产业作为清洁能源的重要组成部分,正迎来快速发展的黄金时期。然而,传统的光伏项目管理方式已逐渐无法满足现代化、高效化的需求,数字化改革成为了行业发展的必然趋势。…

什么是无头浏览器以及其工作原理?

如果您对这个概念还不熟悉,那么使用无头网络浏览器的想法可能会让您感到不知所措。无头浏览器本质上与您熟悉的网络浏览器相同,但有一个关键区别:它们没有图形用户界面 (GUI)。这意味着没有按钮、选项卡、地址栏或视觉显示。 相反&#xff0c…

Tuxera NTFS for Mac 2023软件:超级详细安装步骤(最新版软件下载)

软件简介: 在 Mac 上打开、编辑、复制、移动或删除存储在 Windows NTFS 格式 USB 驱动器上的文件。当您获得一台新 Mac 时,它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存或写入您的 Mac,您需要一个附加的 NTFS 驱动程序。…

checkbox表单校验 至少选中一个Checkbox , 否则会报错

项目背景 : react ant 需求 : 需实现至少选中一个Checkbox , 否则会报错 需求如下 : 注意 : Input, Select, DatePicker可以直接处理Form.Item的验证规则 , 但Checkbox不行 , 需自定义验证规则 实现 : // 自定义的checkbox校验规则--星期const validateAtLeastOneCheckbo…

CP AUTOSAR标准中文文档链接索引

AUTOSAR标准的核心组件包括通信、诊断、安全等,这些组件通过模块化结构进行组织。系统被划分为多个模块,每个模块负责特定的功能。模块之间通过接口进行通信,接口定义了模块之间的交互规则。AUTOSAR标准支持模块的配置,可以根据不…

加密经济时代:Web3如何改变我们的生活方式

随着区块链技术的蓬勃发展和加密经济的兴起,Web3正逐渐成为数字化时代的主流趋势之一。作为下一代互联网的代表,Web3以其去中心化、安全可信的特性,正在改变着我们的生活方式。本文将深入探讨加密经济时代下,Web3如何改变了我们的…

形如SyntaxError: EOL while scanning string literal,以红色波浪线形式在Pycharm下出现

背景: 新手在学习Python时可能会出现如下图所示的报错 下面分情况教大家如何解决 视频教程【推荐】: 形如SyntaxError: EOL while scanning string literal,以红色波浪线形式在Pycharm下出现 过程: 问题概述: 简单…

鸿蒙开发文件管理:【@ohos.securityLabel (数据标签)】

数据标签 该模块提供文件数据安全等级的相关功能:向应用程序提供查询、设置文件数据安全等级的JS接口。 说明: 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import security…

C# WinForm —— 34 ToolStrip 工具栏 介绍

1. 简介 工具栏 ToolStrip,一般紧贴在菜单栏下面 2. 属性 属性解释(Name)控件ID,在代码里引用的时候会用到Enabled控件是否启用Dock定义要绑定到容器的控件边框,默认是topAnchor定义某个控件绑定到的容器的边缘。当控件锚定到某个边缘时&a…

C++基础编程100题-009 OpenJudge-1.3-07 计算多项式的值

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0103/07/ 描述 对于多项式 f ( x ) a x 3 b x 2 c x d f(x) ax^3 bx^2 cx d f(x)ax3bx2cxd 和给定的a, b, c, d, x,计算f(x)的值。 输入 输入仅一行,包含5个实数,分…