CTFSHOW web 89-100

这边建议去我的gitbook或者github看观感更好(图片更完整)
github:https://github.com/kakaandhanhan/cybersecurity_knowledge_book-gitbook.22kaka.fun
gitbook:http://22kaka.fun

🏈 CTFSHOW PHP特性

(1)WEB 89

①代码解释

 <?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-16 11:25:09
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-18 15:38:51
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/include("flag.php");
highlight_file(__FILE__);if(isset($_GET['num'])){$num = $_GET['num'];if(preg_match("/[0-9]/", $num)){die("no no no!");}if(intval($num)){echo $flag;}
} 

代码逻辑很简单,就是我们要让匹配 n u m 的结果是 0 ,然后 num的结果是0,然后 num的结果是0,然后num变量通过intval为1就可以了。对于preg_match匹配要是0,就说明不能是数字,但是如果是字符串的话,在下面的intval匹配中就会为0,这个时候我们要想到如果$num传入一个数组,那么对于pre_match的特性,就会输出false然后我们就会进入else语句然后num是个数组并且不为空的话,就会输出1,也就是我们的num要通过url解析成一个不为空的数组。

②思路介绍

不知道为什么网上的wp都没有解释一个事情。就是num=[“abc”]和num[]="abc的区别。(这个地方主要是自己最开始也知道要传一个不含有数字的空的字符串去,但是后面发现其实不对。然后弄了很久才发现原来是url解析的问题。这里将讲解一下url对他们的解析的微妙的区别。)

{% hint style=“info” %}
URL解析差异!!!!!!!!!
{% endhint %}

  • 对于num[]=1 ,num被解释为一个数组,其第一个元素为1。这个时候数组的键值是动态生成的索引,例如num[0]=1&num[1]=2。这个时候表达的意思其实是num是个数组,包含一个元素为1的数组。
  • 对于num=[“1”],其实num被解释成为了一个字符串,其值为[“1”].

所以在弄清楚这个后,我们能写出绕过方案

http://65b4d1c3-5cc4-426c-b856-e5c14d755ef0.challenge.ctf.show/?num[]="abc"

(2)web 90

 <?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-16 11:25:09
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-18 16:06:11
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/include("flag.php");
highlight_file(__FILE__);
if(isset($_GET['num'])){$num = $_GET['num'];if($num==="4476"){die("no no no!");}if(intval($num,0)===4476){echo $flag;}else{echo intval($num,0);}
}

①代码解释

其实这个代码的意思也很明确,就是$num不能完全等于4476,但是在intval函数作用后,要等于4476,就能输出flag。

②思路介绍

其实这一题我们看到intval函数的base为0,就应该想到intval的特性。所以我们可以让num是前面带有字母的,但是开头的数字是4476就行。类似4476ba这种。或者你想麻烦点,把他们进行进制转换也可以。

所以我们的方案就是

http://f855998e-1508-4b60-9956-e03eadde4e40.challenge.ctf.show/?num=4476ab

(3)web 91


/*
# -*- coding: utf-8 -*-
# @Author: Firebasky
# @Date:   2020-09-16 11:25:09
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-18 16:16:09
# @link: https://ctfer.com*/show_source(__FILE__);
include('flag.php');
$a=$_GET['cmd'];
if(preg_match('/^php$/im', $a)){if(preg_match('/^php$/i', $a)){echo 'hacker';}else{echo $flag;}
}
else{echo 'nonononono';
}Notice: Undefined index: cmd in /var/www/html/index.php on line 15
nonononono

①代码解释

字符串a在开启了多行模式下满足正则表达式/^php$/,但是在非多行模式下,不满足正则表达式了。正则表达式的意思简单翻译就是转化后的字符串是php。

②思路解释

这个就是我们讲过preg_match含有的特性是绕过多行问题。我们采用的是%0a来解决的。

http://4e1772d9-0414-4f78-a71b-8b49260e5e5e.challenge.ctf.show/?cmd=%0aphp

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

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

相关文章

数据结构(4) 链表(链式存储)

链表&#xff08;链式存储&#xff09; 单链表定义基本操作的实现单链表的插入按位序插入指定节点的前插指定节点的后插 单链表的删除 小结 单链表 定义 顺序表优点:可随机存取&#xff0c;存储密度高&#xff0c;缺点:要求大片连续空间&#xff0c;改变容量不方便。 单链表优…

【蓝桥杯Python】试题 算法训练 比较

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给出一个n长的数列&#xff0c;再进行m次询问&#xff0c;每次询问询问两个区间[L1,R1]&#xff0c;[L2,R2]&#xff0c;   …

【数据结构】顺序栈和链式栈的简单实现和解析(C语言版)

数据结构——栈的简单解析和实现 一、概念二、入栈&#xff08;push&#xff09;三、出栈&#xff08;pop&#xff09;四、顺序栈简单实现 &#xff08;1&#xff09;进栈操作&#xff08;2&#xff09;出栈操作 一、概念 本篇所讲解的栈和队列属于逻辑结构上的划分。逻辑结构…

GO 的 Web 开发系列(五)—— 使用 Swagger 生成一份好看的接口文档

经过前面的文章&#xff0c;已经完成了 Web 系统基础功能的搭建&#xff0c;也实现了 API 接口、HTML 模板渲染等功能。接下来要做的就是使用 Swagger 工具&#xff0c;为这些 Api 接口生成一份好看的接口文档。 一、写注释 注释是 Swagger 的灵魂&#xff0c;Swagger 是通过…

C++初阶:容器(Containers)list常用接口详解

介绍完了vector类的相关内容后&#xff0c;接下来进入新的篇章&#xff0c;容器list介绍&#xff1a; 文章目录 1.list的初步介绍2.list的定义&#xff08;constructor&#xff09;3.list迭代器&#xff08; iterator &#xff09;4.string的三种遍历4.1迭代器4.2范围for循环 5…

AI:126-基于深度学习的人体情绪识别与分析

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

【JavaEE】_CSS常用属性

目录 1. 字体属性 1.1 设置字体家族 font-family 1.2 设置字体大小 font-size 1.3 设置字体粗细 font-weight 1.4 设置字体倾斜 font-style 2. 文本属性 2.1 设置文本颜色 color 2.2 文本对齐 text-align 2.3 文本装饰 text-decoration 2.4 文本缩进 text-indent 2.…

Go+:一种简单而强大的编程语言

Go是一种简单而强大的编程语言&#xff0c;它是在Go语言之上构建的&#xff0c;旨在提供更加强大、灵活和易于使用的编程体验。Go与Go语言共享大部分语法和语义&#xff0c;因此Go开发人员可以很快上手Go&#xff0c;同时也可以使用Go来编写更加简洁和高效的代码。在本文中&…

【c语言】字符串常见函数 上

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;c语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&a…

Unity3d Shader篇(四)— Phong顶点高光反射着色器

文章目录 前言一、Phong顶点高光反射着色器是什么&#xff1f;1. Phong顶点高光反射着色器的工作原理2. Phong顶点高光反射着色器的优缺点优点缺点 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函数5. 片元着色器函数 三、效果四、总…

99.网游逆向分析与插件开发-网络通信封包解析-数据包组织与发送过程逆向分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;定位明文发送数据的关键函数 首先来到下图位置&#xff0c;查看edi的值是怎样来的 然后使用高亮模式查看edi&#xff0c;看看谁给edi赋过值 首先是下图红框位置&#xff0c;mov ecx, edi也就是edi是一…

读千脑智能笔记12_阻止人类灭绝

1. 阻止人类灭绝 1.1. 宇宙中唯一知道这些的物体&#xff0c;唯一知道宇宙存在的物体&#xff0c;是我们的大脑 1.2. 如果没有关于某个事物的知识&#xff0c;我们能说这个事物就一定存在吗&#xff1f; 1.2.1. 我们的大脑扮演着这样一个独特的角色&#xff0c;这很令人着迷…