返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >CTF之PHP基础学习篇(一)
  • 175
分享到

CTF之PHP基础学习篇(一)

php网络安全学习 2023-10-02 18:10:37 175人浏览 八月长安
摘要

文章目录 前言CTF之PHP基础一、PHP是什么?二、配置PHP环境三、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

--结束END--

本文标题: CTF之PHP基础学习篇(一)

本文链接: https://lsjlt.com/news/422752.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CTF之PHP基础学习篇(一)
    文章目录 前言CTF之PHP基础一、PHP是什么?二、配置PHP环境三、php基础语法 总结 前言 估摸着不少学计算机的同学以及其他专业的小部分同学都对于信息安全感兴趣吧!那对于参加...
    99+
    2023-10-02
    php 网络安全 学习
  • Python学习基础篇(一)
    Python简介和入门Python简介走进Pythonpython的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一...
    99+
    2023-01-31
    基础 Python
  • Tornado基础学习篇
    1.1 Tornado是什么? Tornado是使用Python编写的一个强大的、可扩展的Web服务器。它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中。 我们现在所知道的Tor...
    99+
    2023-01-30
    基础 Tornado
  • Netty学习教程之基础使用篇
    什么Netty?Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架...
    99+
    2023-05-31
    netty 基础
  • 学习手册--Linux基础篇
    目录1. linux系统介绍1.1 linux的概述1.2 linux的优势1.3 linux的分类1.4 常见的发行版linux系统2. Linux的安装3. Linux的基础篇3.1 目录结构3.1.1 那具体有哪些...
    99+
    2022-06-04
    Linux学习 Linux基础
  • Kotlin基础学习-入门篇
    本篇文章来自郭霖大佬的第一行代码中的Kotlin教程,笔者只是在学习Kotlin过程中记录学习过程。 Kotlin系列已更新: Kotlin基础学习-入门篇 Kotlin基础学习-第二篇 Kotli...
    99+
    2023-09-07
    kotlin android
  • [Python]学习基础篇:字典
    字典字典这个数据结构的功能和它的名字一样,根据key得到value值。字典的定义 方法: dict={‘key1’:value1,’key2’:value2……..} 对于字典,key值在字典中不能重复,若出现重复,将更改原有的key对应的...
    99+
    2023-01-31
    字典 基础 Python
  • python之基础篇(一)
    防伪码:忘情公子著一、python介绍  python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。  python语法简洁明晰,特色之一是强制用空白符...
    99+
    2023-01-31
    基础 python
  • PHP基础学习
    第一章、PHP基础 PHP是一种适合Web开发的编程语言,运行于服务器端,可以在C/S架构中为客户端软件提供服务器接口,又可以在B/S上作为架构来搭建动态网站。(本篇文章以B/S架构为基础) Apache为PHP提供工作环境 Apache ...
    99+
    2023-09-12
    php 学习 开发语言
  • 学习shell,这一篇就够了(shell基础)
    目录 一、shell概述 二、shell脚本准备知识 三、条件判断 四、结尾 一、shell概述 1、什么是shell shell是一种命令语言,是为使用者提供操作界面的一种软件,软件可以接收...
    99+
    2023-09-25
    linux centos 运维 网络 服务器
  • 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(...
    99+
    2019-01-18
    R语言学习-基础篇1
  • php学习(一):从基础PHP到高级PHP知识,一站式学习
    1.composer常用命令 composer list --help list命令的帮助 composer list 显示包信息 ...
    99+
    2023-09-05
    php sql 中间件
  • socket.io学习教程之基础介绍(一)
    前言 Web端与服务器间的实时数据传输的是一个很重要的需求,但最早只能通过AJAX轮询询实现。在WebSocket标准没有推出之前,AJAX轮询是唯一可行的方式(通过Flash浏览器也可以,但这里不做讨论...
    99+
    2022-06-04
    基础 教程 socket
  • [Python]学习基础篇:常见的Pyt
    函数列表进制转换函数函数名称及参数功能用例bin(x)将数值x转化为二进制>>> x=10 >>> bin(10) 10hex(x)将数值x转化为十六进制>>> x=10 &g...
    99+
    2023-01-31
    常见 基础 Python
  • shell的基础学习一
    文章目录 一、shell的简介二、 Shell 变量三、Shell 传递参数总结 一、shell的简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shel...
    99+
    2023-10-20
    学习 linux php shell
  • Python基础学习教程:Python基础之基本数据类型(一)
    Python基础学习教程:Python基础之基本数据类型(一)...
    99+
    2023-06-02
  • Java基础学习之标签
    目录一、语法二、控制循环三、案例四、小结一、语法 label: @Test public void test3() { inner: f...
    99+
    2024-04-02
  • python学习之路--python基础
    本文主要介绍下python列表的的一些基本操作 列表是我们在python编程中常用的数据类型之一,通过列表我们可以对数据实现最方便的存储、修改等操作。 定义列表  1 names=['ZhangSan','LiSi','WangWu'] ...
    99+
    2023-01-30
    之路 基础 python
  • c#基础学习之封装
    作为一个初级GIS程序员,关于封装那些宏观的概念暂且不提,编程经常面对的就是“字段,属性,方法”,这也是面向对象的基本概念之一。 1.字段 通常定义为private,表示类的状态信息...
    99+
    2022-11-15
    c# 封装
  • c#基础学习之多态
    最近在看一本书《你必须知道的.Net》,书涵盖的内容比较多,对于c#,.Net平台以往所学的零散东西有了慢慢的总结和新的认识。把一些基础的东西记录于此。 先说说多态吧: 1.基类继承...
    99+
    2022-11-15
    c# 多态
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作