NSS [鹤城杯 2021]Middle magic

NSS [鹤城杯 2021]Middle magic

源码直接给了。

image-20230715194236910

粗略一看,一共三个关卡

先看第一关:

if(isset($_GET['aaa']) && strlen($_GET['aaa']) < 20){$aaa = preg_replace('/^(.*)level(.*)$/', '${1}<!-- filtered -->${2}', $_GET['aaa']);if(preg_match('/pass_the_level_1#/', $aaa)){echo "here is level 2";

(1条消息) PHP正则表达式_php 正则_无痕之意的博客-CSDN博客

正则表达式含义:

/^(.*)level(.*)$/:包含字符串"level"的字符串

/pass_the_level_1#/:字符串"pass_the_level_1#"

这种正则写法是存在缺陷的:.用于任意字符匹配并不包括换行符,而且^ $界定了必须在同一行,否则匹配不到,直接利用%0a(换行符)进行绕过。

所以我们GET传入aaa=%0apass_the_level_1#就行了。不对,不是这样。

如果直接传入#的话,#代表网页中的一个位置。其右面的字符,就是该位置的标识符。比如,http://www.example.com/index.html#print就代表网页index.html的print位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域。

只有将#转码为%23,浏览器才会将其作为实义字符处理。

所以这一关的payload:

?aaa=%0apass_the_level_1%23

来到第二关:

if (isset($_POST['admin']) and isset($_POST['root_pwd'])) {if ($_POST['admin'] == $_POST['root_pwd'])echo '<p>The level 2 can not pass!</p>';// START FORM PROCESSING    else if (sha1($_POST['admin']) === sha1($_POST['root_pwd'])){echo "here is level 3,do you kown how to overcome it?";

我们需要POST两个变量,adminroot_pwd。要求两个变量不能弱相等并且两个变量的sha1值强相等。

我们可以sha1强碰撞或者数组绕过。方便一点,这里用哈希数组绕过,强碰撞payload太长了。

admin[]=1&root_pwd[]=2

来到第三关:

if (isset($_POST['level_3'])) {$level_3 = json_decode($_POST['level_3']);if ($level_3->result == $result) {echo "success:".$flag;

要求我们POST提交一个level_3变量,是json格式的。要满足level_3变量的result键的值 与$result变量相等,但是$result变量在index.php中未定义,在result.php中是否定义,未知,所以$result变量具体值是多少我们无从得知。暂且将他当成未定义,那么值就是空,NULL

这里据说用php的弱比较。以下是一些可能是原理的资料。

image-20230715215935699

(1条消息) CTF(JOSN弱类型)_ctf json_sunshinelv99的博客-CSDN博客

(1条消息) JASON格式与布尔绕过弱类型比较_json数组绕过_王俊凯迷妹的博客-CSDN博客

实际测试证明,这里level_3只要POST了就行,值是多少都可以。因为空NULL和什么东西弱比较都是true,那么就验证了我们的猜想,$result变量未定义。

payload:

&level_3={“result”:“chxvjxkvjckvrfghrekj”}
&level_3={“result”:0} 
&level_3={“result”:} 
&level_3=

image-20230717113530687

扩展阅读:json数组、json对象。

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

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

相关文章

「Verilog学习笔记」输入序列连续的序列检测

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1ns module sequence_detect(input clk,input rst_n,input a,output reg match);reg [7:0] a_tem ; always (posedge clk or negedge rst_n) begin if (~rs…

使用正则表达式匹配HTML标签出现了问题

今天有这样一个需求&#xff1a;需要匹配好多个HTML文件&#xff0c;从中找出所有的标题文字。 正则表达式 这本是一个简单的需求&#xff0c;只需要使用正则表达式进行匹配即可。下列是我们当时所使用的表达式&#xff1a; <[hH][1-6]>.*?<\/[hH][1-6]> 测试…

openfeign整合sentinel出现异常

版本兼容的解决办法&#xff1a;在为userClient注入feign的接口类型时&#xff0c;添加Lazy注解。 Lazy注解是Spring Framework中的一个注解&#xff0c;它通常用于标记Bean的延迟初始化。当一个Bean被标记为Lazy时&#xff0c;Spring容器在启动时不会立即初始化这个Bean&…

【旅游行业】Axure旅游社交平台APP端原型图,攻略门票酒店民宿原型案例

作品概况 页面数量&#xff1a;共 110 页 兼容软件&#xff1a;Axure RP 9/10&#xff0c;不支持低版本 应用领域&#xff1a;旅游平台&#xff0c;酒店住宿 作品申明&#xff1a;页面内容仅用于功能演示&#xff0c;无实际功能 作品特色 本作品为「旅游社交平台」移动端…

​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第15章 面向服务架构设计理论与实践&#xff08;P527~554&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

新手买电视盒子哪个好?数码粉实测电视盒子排名

新手们在买电视盒子时面对众多的品牌和机型&#xff0c;往往不知道电视盒子哪个好&#xff0c;我作为资深数码粉&#xff0c;已经买过十来款电视盒子了&#xff0c;近来某数码论坛公布了最新的电视盒子排名&#xff0c;我购入后进行了一周的深度实测&#xff0c;结果如何&#…

希亦ACE和RUUFFY内衣洗衣机选哪个好?内衣洗衣机大对比

这两年&#xff0c;内衣洗衣机算是一种很受欢迎的小家电了&#xff0c;尽管它的体积很小&#xff0c;但是它的作用很大&#xff0c;一键就能启动洗、漂、脱三种自动操作&#xff0c;在提高多功能和性能的同时&#xff0c;也能让我们在洗衣服的时候&#xff0c;解放了我们的手。…

【论文解读】CP-SLAM: Collaborative Neural Point-based SLAM System_神经点云协同SLAM系统(上)

目录 1 Abstract 2 Related Work 2.1 单一智能体视觉SLAM&#xff08;Single-agent Visual SLAM&#xff09; 2.2 协同视觉SLAM&#xff08;Collaborative Visual SLAM&#xff09; 2.3 神经隐式表示&#xff08;Neural Implicit Representation&#xff09; 3 Method 3.…

Mac git查看分支以及切换分支

查看本地分支 git branch 查看远程仓库分支 git branch -r 查看本地与远程仓库分支 git branch -a 切换分支 git checkout origin/dev/js

一文讲清楚MySQL常用函数!

全文大约【1268】字&#xff0c;不说废话&#xff0c;只讲可以让你学到技术、明白原理的纯干货&#xff01;本文带有丰富案例及配图视频&#xff0c;让你更好的理解和运用文中的技术概念&#xff0c;并可以给你带来具有足够启迪的思考...... 一. 时间函数 下面给大家总结了My…

美国费米实验室SQMS启动“量子车库”计划!30+顶尖机构积极参与

​11月6日&#xff0c;美国能源部费米国家加速器实验室(SQMS)正式启动了名为“量子车库”的全新旗舰量子研究设施。这个6,000平方英尺的实验室是由超导量子材料与系统中心负责设计和建造&#xff0c;旨在联合国内外的科学界、工业领域和初创企业&#xff0c;共同推动量子信息科…

LeetCode【76】最小覆盖子串

题目&#xff1a; 思路&#xff1a; https://segmentfault.com/a/1190000021815411 代码&#xff1a; public String minWindow(String s, String t) { Map<Character, Integer> map new HashMap<>();//遍历字符串 t&#xff0c;初始化每个字母的次数for (int…

【LeetCode】每日一题 2023_11_21 美化数组的最少删除数(贪心/模拟)

文章目录 刷题前唠嗑题目&#xff1a;美化数组的最少删除数题目描述代码与解题思路 结语 刷题前唠嗑 LeetCode? 启动&#xff01;&#xff01;&#xff01; 原本今天早上要上体育课&#xff0c;没那么早刷每日一题的&#xff0c;本周是体测周&#xff0c;所以体育课取消了&am…

MySQL 教程 1.1

MySQL 教程1.1 MySQL 是最流行的关系型数据库管理系统&#xff0c;在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System&#xff1a;关系数据库管理系统)应用软件之一。 在本教程中&#xff0c;会让大家快速掌握 MySQL 的基本知识&#xff0c;并轻松…

放大招:腾讯云5年服务器和3年轻量应用服务器租用价格表

腾讯云3年轻量和5年云服务器CVM优惠活动入口&#xff0c;3年轻量应用服务器配置可选2核2G4M和2核4G5M带宽&#xff0c;5年CVM云服务器可以选择2核4G和4核8G配置可选&#xff0c;阿腾云atengyun.com分享腾讯云3年轻量应用服务器和5年云服务器CVM优惠活动入口和配置报价&#xff…

【点云上采样】最近邻插值上采样算法

文章目录 声明简介代码 声明 本帖更新中 简介 点云最近邻插值上采样算法是一种常见的点云处理方法&#xff0c;用于将稀疏的点云数据进行上采样&#xff0c;增加点云的密度和细节。该算法基于最近邻的原理&#xff0c;在已有的点云数据中找到最近邻的点&#xff0c;并根据其…

【Spring】bean的基础配置

bean的别名 当在Spring config文件中定义name作为别名后&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…

基于SSM的社区生鲜商城的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

【三种加载自定义控制器的方式 Objective-C语言】

一、关于这个手动创建Window呢,给大家说完了 1.但是呢,要给大家补充一个东西, 有时候,有的框架,可能会用到什么东西呢,我写到下面: [UIApplication sharedApplication] 什么东西,是不是应用程序对象, 然后呢,keyWindow 是不是拿到它的主窗口, 然后呢,add什么东西…

2023年11月中旬大模型新动向集锦

2023年11月中旬大模型新动向集锦 2023.11.21版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 1、谷歌生成式 AI 搜索生成体验&#xff08;SGE&#xff09;扩展到 120 多个新国家/地区 近日&#xff0c;Google 扩展了其由生成式人工智能驱…