我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CTF之PHP基础学习篇(一)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CTF之PHP基础学习篇(一)

文章目录


前言

估摸着不少学计算机的同学以及其他专业的小部分同学都对于信息安全感兴趣吧!那对于参加这相关的比赛就应该更有兴趣了。那么我们首先就了解一下下这相关的比赛——CTF(Capture The Flag)
CTF是一种流行的信息安全竞赛形式,其英文名可直译为“夺得Flag”,也可意译为“夺旗赛”。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。至于更加具体的比赛的了解可能需要自己去看看百度或者其他的一些学习视频,在此不做分析了。
人们常觉得准备期间是在浪费时间,只有当真正机会来临时,自己没能力把握的时候,才觉得自己平时没有准备,浪费了时间。 所以想参加CTF比赛的同学首先需要明白一点这玩意大家是需要基础的,今天我主要分享一下我自己在准备CTF比赛中所掌握的一些必要的基础技能。


CTF之PHP基础

一、PHP是什么?

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。除此之外我们还需要了解与他相关的一些概念。
IP(Internet Protocol)是网际互连协议,是TCP/IP体系中的网络层协议,即为计算机网络互连进行通信而设计的协议。
域名(Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称。
DNS(域名系统)(Domain Name System)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
端口(port)可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。如计算机中的80端口。物理端口又称为接口,是可见端口。

二、配置PHP环境

    在此以phpstudy (版本8.1.1.2)和vscode(版本1.65)搭建一个简易运行环境

首先先从官网下载这小皮面板vscode
我们先打开小皮配置一些基础。
首先

第二步
在这里插入图片描述
第三步
在这里插入图片描述
如若遇到MySQL无法正常启动,可能与自己曾经装的MySQL相冲突了。
以管理员身份运行cmd,切换到MySQL/bin目录下
在这里插入图片描述
若要关闭,使用本地MySQL只需要把箭头后面的依次改为
mysqld——install mysql //重新创建服务名mysql
net startmysql//启动服务,切换本地MySQL

如若碰到这一类问题在这里插入图片描述
极有可能是数据库无这一字符集,更改字符集即可。
在这里插入图片描述
再来设置一下PHP环境路径
先打开此电脑,选择属性,高级系统配置,选择环境变量
在这里插入图片描述
打开cmd
在这里插入图片描述
接下来我们配置vscode
打开vscode,先下载安装一些PHP插件。
Open PHP 连接网站
在这里插入图片描述
PHP Debug 连接PHP编译
在这里插入图片描述
PHP IntelliSense 完善PHP代码

在这里插入图片描述

到扩展中正找到插件,然后分别点击PHP和PHP IntelliSense插件的 settings.json 文件,翻到最下面 。
将php.exe的文件夹路径添加到Path环境变量中(php.exe的文件夹即可)
例如: "php.validate.executablePath": "C:/phpstudy_pro/Extensions/php/php7.3.4nts/php.exe;", "php.executablePath": "C:/phpstudy_pro/Extensions/php/php7.3.4nts/php.exe;"
在这里插入图片描述
在这里插入图片描述
将Open PHP 目录修改为小皮的www下
在这里插入图片描述

出现如图及成功了。
在这里插入图片描述
在这里插入图片描述
至此PHP环境配置完成。

三、php基础语法

PHP 一种脚本,可嵌入HTML语言。也是一种弱类型语言,不必声明该变量数据类型。
常见的标记:
脚本标记

标准脚本

php注释与其他语言类似。
PHP输出基础指令 echo/print。
php声明变量和其它语言大致相同,注意一下$符号就行。

PHP的作用域
局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问。

PHP数据类型大致与其它一些语言相似,但有些有所不同,比如PHP 资源类型。
PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用。常见资源数据类型有打开文件、数据库连接、图形画布区域等。由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。使用 get_resource_type() 函数可以返回资源(resource)类型:get_resource_type(resource $handle): string

PHP类型比较

==(比较值,不比较类型)

===(比较值,比较类型)

PHP 常量
常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

PHP并置运算符·

PHP运算符
许多规则与其他语言运算符规则大致相同。有一些比较特殊。

-x         取反x<>y       不等于 x!==y      绝对不等于  如果 x 不等于 y,或它们类型不相同,则返回 true 5!=="5" 返回 true

在这里插入图片描述

PHP比较运算符
<=>

$c = $a <=> $b;如果 $a > $b, 则 $c 的值为 1。如果 $a == $b, 则 $c 的值为 0。如果 $a < $b, 则 $c 的值为 -1。

PHP的条件判断语句与循环语句与我们所学的C++等其它语言语法相似,在此不再多讲。

PHP数组
在 PHP 中,array() 函数用于创建数组:array();
在 PHP 中,有三种类型的数组:
数值数组 - 带有数字 ID 键的数组
关联数组 - 带有指定的键的数组,每个键关联一个值

$age=array("a"=>"35","b"=>"37","e"=>"43");

多维数组 - 包含一个或多个数组的数组
数组排序
sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() - 根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列

在这里就不再详细讲述PHP其他语法点,想要了解更多的可以去看看菜鸟教程PHP

总结

以上就是今天要讲的内容,本文仅仅简单介绍了PHP的相关知识。至于PHP与CTF之间的具体联系,之后会在做题中体现出来。如果文章中存在啥问题,欢迎大家私信我呦。

来源地址:https://blog.csdn.net/m0_62596232/article/details/123595551

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CTF之PHP基础学习篇(一)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python学习基础篇(一)

Python简介和入门Python简介走进Pythonpython的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一
2023-01-31

Tornado基础学习篇

1.1 Tornado是什么?Tornado是使用Python编写的一个强大的、可扩展的Web服务器。它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中。我们现在所知道的Tornado
2023-01-30

Netty学习教程之基础使用篇

什么Netty?Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架
2023-05-31

学习手册--Linux基础篇

目录1. linux系统介绍1.1 linux的概述1.2 linux的优势1.3 linux的分类1.4 常见的发行版linux系统2. Linux的安装3. Linux的基础篇3.1 目录结构3.1.1 那具体有哪些呢?3.1.2 需要
2022-06-04

python之基础篇(一)

防伪码:忘情公子著一、python介绍  python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。  python语法简洁明晰,特色之一是强制用空白符
2023-01-31

[Python]学习基础篇:字典

字典字典这个数据结构的功能和它的名字一样,根据key得到value值。字典的定义 方法: dict={‘key1’:value1,’key2’:value2……..} 对于字典,key值在字典中不能重复,若出现重复,将更改原有的key对应的
2023-01-31
2023-09-12

R语言学习-基础篇1

###第一周:R基础rm(list = ls())  #ctr+L###矩阵相乘,函数diag()a=matrix(1:12,nrow=3,ncol=4)b=matrix(1:12,nrow=4,ncol=3)a%*%ba=matrix(1:16,nrow=4
2019-01-18

socket.io学习教程之基础介绍(一)

前言Web端与服务器间的实时数据传输的是一个很重要的需求,但最早只能通过AJAX轮询询实现。在WebSocket标准没有推出之前,AJAX轮询是唯一可行的方式(通过Flash浏览器也可以,但这里不做讨论)。AJAX轮询原理是设置定时器,定时
2022-06-04

[Python]学习基础篇:常见的Pyt

函数列表进制转换函数函数名称及参数功能用例bin(x)将数值x转化为二进制>>> x=10 >>> bin(10) 10hex(x)将数值x转化为十六进制>>> x=10 >>> hex(10) '0xa'oct(x)将数值X转化为八进制>
2023-01-31

Python基础学习教程:Python基础之基本数据类型(一)

Python基础学习教程:Python基础之基本数据类型(一)
2023-06-02

python学习之路--python基础

本文主要介绍下python列表的的一些基本操作列表是我们在python编程中常用的数据类型之一,通过列表我们可以对数据实现最方便的存储、修改等操作。定义列表 1 names=['ZhangSan','LiSi','WangWu'] 列表的访
2023-01-30

c#基础学习之封装

说到封装,其实是比较基础类的问题,它为程序设计提供了系统与系统,模块与模块,类与类之间交互的实现手段
2022-11-15

c#基础学习之多态

多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态
2022-11-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录