文章目录

  • 前言
  • 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语言。也是一种弱类型语言,不必声明该变量数据类型。
常见的标记:
脚本标记
<script languge=" php">php代码</script>
标准脚本

<?phpphp代码
?>

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
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>

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之间的具体联系,之后会在做题中体现出来。如果文章中存在啥问题,欢迎大家私信我呦。

CTF之PHP基础学习篇(一)相关推荐

  1. 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录

    目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历) ...

  2. python基础代码的含义_Python基础学习篇

    原标题:Python基础学习篇 1.编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是unicode 字符串. 当然你也可以为源码文件指定不同的编码:# -*- codi ...

  3. 鸟哥的linux私房菜-基础学习篇 读书笔记

    从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...

  4. 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)

    鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一) 第零章 计算机概论 0.1 电脑:辅助人脑的好工具 0.1.1 计算机硬件五大组成部分 0.1.2 一切设计的起点: C ...

  5. 鸟哥的Linux私房菜-基础学习篇(第四版):鸟哥-电子书

    内容简介: 本书是知名度颇高的Linux入门书<鸟哥的Linux私房菜基础学习篇>的新版,全面而详细地介绍了Linux操作系统. 全书分为五部分:第一部分着重说明计算机的基础知识.Linu ...

  6. 电子书 鸟哥的Linux私房菜 (基础学习篇 第三版).pdf

    <鸟哥的Linux私房菜 (基础学习篇 第三版)>是颇具知名度的Linux入门书<鸟哥的Linux私房菜:基础学习篇>的全新版,全面而详细地介绍了Linux操作系统. 全书分为 ...

  7. 鸟哥的Linux私房菜基础学习篇 第0章与第1章的重点探索

    鸟哥的Linux私房菜基础学习篇 第0章与第1章的重点探索 目录 鸟哥的Linux私房菜基础学习篇 第0章与第1章的重点探索 前言 一.计算机概论 1.知识基础 2.知识初阶 3.知识进阶 二.Lin ...

  8. 《鸟哥的Linux 私房菜 基础学习篇(第三版)》——1.2 Torvalds的Linux开发

    本节书摘来自异步社区<鸟哥的Linux 私房菜 基础学习篇(第三版)>一书中的第1章,第1.2节,作者:鸟哥著,更多章节内容可以访问云栖社区"异步社区"公众号查看 1. ...

  9. QT界面开发--基础学习篇一(上)

    一.Qt简单介绍: 1.QT的简单理解: Qt简单的说就是一种可以跨平台的编程语言工具,可以直接类比C语言和C++. 且一般QT的代码逻辑也是以C语言和C++(也可以适用于像JS的语言),可以直观理解 ...

最新文章

  1. keras bi-lstm_LSTM用于文本生成的应用介绍-使用Keras和启用GPU的Kaggle Kernels
  2. 学术 | 据说以后在探头下面用帽子挡脸没用了:用于遮挡物检测的对称卷积神经网络——SymmNet...
  3. [ACM_NYOJ_21]三个水杯(BFS广度优先搜索)
  4. python 修改模板对象的属性_django小技巧之html模板中调用对象属性或对象的方法...
  5. c++协程1 (boost::coroutine)
  6. 2020.2idea创建web_IntelliJ IDEA 2017.3 完整的配置Tomcat运行web项目教程(多图)
  7. 从程序员到项目经理(七):程序员加油站 -- 完美主义也是一种错
  8. jquery如何阻止子元素相应mouseout事件
  9. 金士顿U盘被写保护的解决方法(量产)
  10. python 处理阻尼正弦
  11. Qt笔记(十五)之设置程序图标
  12. 【游戏客户端】剧情系统
  13. 【NOI2007】社交网络
  14. VTK笔记-图形相关-多边形数据转换图像数据-vtkPolyData转换为vtkImageData
  15. FTDI FTD2XX 驱动学习笔记(一)
  16. 华为任正飞关于“活下去”的呼声不断刷屏,《Android市场寒气十足,该如何存活》?
  17. 解析展望激光雷达——自动驾驶
  18. css通知页面,CSS3 transition 实现通知消息轮播条
  19. 我的架构梦:(二)MyBatis的一级、二级、分布式缓存的应用以及源码分析
  20. 英飞凌 | 140W(28V/5A) USB-PD3.1 高功率密度方案

热门文章

  1. html网页公式编辑软件,如何在网页中插入MathType公式
  2. 运筹说 第42期 | 算法介绍之运输问题
  3. 键盘修改改器绿化版免安装
  4. Unraid 使用技巧集合
  5. 金融风控之贷款违约预测
  6. ISO3834国际焊接认证简介
  7. 【FXCG】传奇人物保罗•都铎•琼斯(二)
  8. 结对编程—四则运算(JAVA)(卢泰佑、李密)
  9. 十字路口通行优先权,十字路口通行规则图解
  10. java mye,Java - MyEclipse中国官方网站-技术交流论坛