CTF_第四节-PHP的基础知识
一、PHP的基础概念
PHP是一种脚本语言,和我们的Python类似,不过他是仅运行在服务器上的,通过 URL 访问后来解释执行。
我们执行Python脚本的时候,是使用 python githack.py 这种形式。
而我们需要执行PHP的时候,是直接访问 http://www.xxx.com/index.php
访问后,服务器上会解释执行 index.php 这个文件,然后执行的结果返回给我们的浏览器
PHP由于简单易学、部署简单、快速开发、多平台兼容的特性,很快就脱颖而出,成为众多 小众网站的首选语言,因为PHP够小、够简单、,甚至单人就可以开发出一套完整的网站系统,不像Java那样笨重。
适合中小型企业网站的开发。
总结:PHP是网站的一种脚本语言,文件名是 .php ,是用来写网站的,适合中小型网站的开发。
二、PHP环境的安装
php运行环境
所谓的 php 运行环境,其实就是和我们 Python 的环境一样,不过我们这里选择一个集成的运行环境
下载完,打开之后,是这样的
在 “网站” 里边可以设置网站根目录
到这php运行环境就搭建完成了
php开发环境
这里推荐 VSCode 因为简单易用,功能强大,插件市场好
还有一个可以用 PhpStorm 但是吧,收费
这个就是自行选择
PHP的基础语法
$_GET
在 url 后边直接加入参数比如 ?a=b 这就是 get 型数据提交,那么在 php 代码中,是如何接收这个参数和值的呢?
新建一个 php 文件 写入如下代码:
1 |
|
浏览器运行后会发现
我们进行了传参 a=asd
返回的结果就是我们刚刚传递的参数
换一个思想,试一下上传系统命令呢?
那我们就要知道PHP里边能执行系统命令的函数,这里使用 system()
修改代码为
1 |
|
继续传参,这里修改值为 “systeminfo”(查看系统信息)
因为我的php环境是在Windows做的,所有命令就是windows的Dos命令
这里乱码的原因是因为编码问题
$_POST
跟 $_GET 相类似,但是区别在于, $_GET 传参是直接在URL里边明文传参,但是 $_POST 传参的时候在 URL 里边是看不见明文的
在 URL 里直接传参也是不可以的
但是我们利用 Buro抓包- -> 重发 来修改参数
从而获取敏感信息
(以上为个人理解)
认识函数
php的函数是一个功能标签
函数的功能就是想浏览器输出后面引号中的内容。
php的函数基本语法是 函数名(函数参数);
函数可以有0个或者多个参数,如果没有参数,就不写
php中的函数,有自带的系统函数,也有用户的自定义函数
比如我们常用的系统函数,phpinfo,它会显示当前服务器的php基本信息,不如版本、各项设置等
自定义函数
function 函数名(参数){
函数体;
};
1 |
|
危险函数
比较危险的函数,顾名思义,就是如果用户的参数可控,会造成灾难性后果
比如PHP终于有一个 system 函数
三、小结
PHP 基础基本上就这些了,遇到不懂的函数,就要看手册