PHP程序员必须会的 45 个PHP 面试题
Q1: == 和 === 之间有什么区别?
话题: HP困难: ⭐
如果是两个不同的类型,运算符 == 则在两个不同的类型之间进行强制转换
=== 操作符执行’类型安全比较‘
这意味着只有当两个操作数具有相同的类型和相同的值时,它才会返回 TRUE。
1 === 1: true
1 == 1: true
1 === "1": false // 1 是一个整数, ...
3. php反序列化从入门到放弃(入门篇)
Hvv期间爆出来一个漏洞:Yii框架反序列化RCE利用链。php反序列化已经从最开始的CTF宠儿,到现在框架的pop利用链构造,利用方式也越来越多样化。遂来系统性的学习一下php反序列化,本系列文章会从php反序列化漏洞的基础开始(入门篇),结合一些cms实例来学习pop利用链的构造,最后对Yii框架反序列化RCE利用链漏洞进行分析 ...
PHP-FPM未授权访问漏洞
这是在复现西湖论剑2020的NewUpload时学习到的知识点,觉得很有趣就记录下来了。
0x01 起因
参考文章:西湖论剑Web之NewUpload(黑白之道)
划水时间看着师傅的WriteUp时,发现了如下让我不解的操作(我这感人知识面)。本着菜就要多读书的原则,开始了一探究竟。
0x02 深究
根据文章中提供的参考链接也了解到了这个操作 ...
docker-dockerfile构建与部署php
dockerfile构建与部署php
1. 创建dockerfile存放目录
1.1 创建目录
[root@docker ~]# mkdir -p /dockerfile
[root@docker ~]# cd /dockerfile/
[root@docker dockerfile]# mkdir -p php
[root@docker dockerfile]# cd php/
2. 创建php dockerfile配置文件
2.1 创建文件
[root@docker nginx]# touch Dockerfile
2.2 下载ph ...
BUUCTF-[极客大挑战 2019]PHP 1
打开题目,我们就看到这个猫,先是用鼠标晃了晃,还跟着我的光标摇脑袋。我是来做题的。前端工程师肯定也对这个下功夫了。
有一个良好的备份网站的习惯很好啊,我们首先根据题目的提示,用dirsearch扫目录
如果没有这个工具的可以去github上下载就可以了。
最终,我们扫到这个备份文件
www.zip ...
CTFshow web入门 (php特性)
web 89
<?php
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;
}
}
构造数组绕过即可
payload:?mun[]=1
web 90
web 91
<?php
show_sourc ...
利用PHP_SESSION_UPLOAD_PROGRESS进行文件包含
我们可以利用session.upload_progress将木马写入session文件,然后包含这个session文件。不过前提是我们需要船家女一个session文件,并且知道session文件的存放位置。
session里有一个默认选项,session.use_strict_mode默认值为off。
此时用户是可以自己定义Session ID的。比如,我们在Cookie里设置PHPSESSID=flag,PHP ...
PHP加密解密
PHP加密解密
对称加密
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。
AES加密算法
密码学中的高级加密标准(Advanced Encryption Standard,AE ...
php反序列化漏洞
前言
本文总结php的反序列化,有php反序列字符串逃逸,php反序列化pop链构造,php反序列化原生类的利用,phar反序列化,session反序列化,反序列化小技巧,并附带ctf小题来说明,还有php反序列化的预防方法(个人想法),建议按需查看,如有错误还望斧正。
如非特别说明运行环境为PHP 7.2.33-1+ubuntu18.04.1
为什么要序列化 ...
PHP代码执行/命令执行总结
代码执行
eval
(PHP 4, PHP 5, PHP 7)
eval( string $code) : mixed
把字符串 code 作为PHP代码执行。
eval($_POST['c']);
直接蚁剑链接密码为c
assert
(PHP 4, PHP 5, PHP 7)
assert( mixed $assertion[, Throwable $exception]) : bool
如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。
使用方法同e ...
PHP反序列化漏洞
1.什么是序列化和反序列化?
PHP的序列化就是将各种类型的数据对象转换成一定的格式存储,其目的是为了将一个对象通过可保存的字节方式存储起来这样就可以将学列化字节存储到数据库或者文本当中,当需要的时候再通过反序列化获取。
serialize() //实现变量的序列化,返回结果为字符串
unserialize() //实现字符串的 ...
口罩预约管理系统——系统网站实现(前端+PHP+MySQL)
口罩预约管理系统网站实现
一、前言
二、系统登陆逻辑及界面实现
三、用户模块
1、用户预约系统界面
2、用户查看我的订单界面
3、用户修改预约信息
四、管理员模块
1、管理员登陆界面
2、 ...
centos7 PHP7.1 Failed to restart php-fpm.service: Unit not found.
在编译PHP以后没有将PHP添加到服务列表导致使用systemcel命令时候出现
解决步骤
1.打开vi /lib/systemd/system/php-fpm.service文件,如果没有就重新新建一个
2.复制一下内容到文件内,记着更改一下PHP的文件目录
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=你的文件目录/php/sbin ...
PHP 正则匹配手机号
PHP 正则匹配手机号(国内)
PHP提供了多种内置的正则匹配函数,如php_filter() 、php_grep()、php_match_all()等,最重要的是我们要根据要判定的数据要求,来精准判定,以此来达到最后的目的。
本次,我们判定国内的手机号格式,要求:不匹配卫星电话的号段。
电信网编号总览
序号号码长度备注正则规则
1
13x
1 ...
口罩预约管理系统——数据库设计(前端+PHP+MySQL)
目录
一、背景
二、口罩预约管理系统介绍
三、数据库设计
四、 MySQL创建数据库以及数据表
五、数据库设计总结
本系统项目源码已经上传CSDN资源啦,有需要可以下载!传送门 (https://download.csdn.net/download/Charzous/18776350)
一、背景
2020年的疫情影响了我们的生产生活,政府不断加大力度联防联 ...
Linux服务器部署php环境 版本php-5.6.40(踩坑版)
项目需求要在阿里云ecs ubuntu服务器上部署php环境以便配置前端代码
与前端小哥探讨好兼容版本后,决定使用php-5.6.40
部署这玩意整了我半天。。。(踩坑...移坑!...踩坑...移坑!...)
进入步骤
1. 获取源yum,由于配置出了点问题我放弃了,还是apt-get安装工具
2. 安装php5.6.40
服务器上/usr/local/目录下执行命 ...
php 配置Gmail 发送邮件 PHPMailer
hotmail 获取邮箱授权码
准备
首先你应该登陆https://mail.google.com地址,注册一个Gmail邮箱,然后设置开启IMAP访问
打开设置,开启IMAP访问
获取应用专用密码
专用密码介绍 访问Google账号
安全性>检查是否开启双重认证
开启双重认证成功后,进入设置应用密码
选择您的常用设备,获取一次性授权码
使用PHPMailer ...
php对接“paypal/Checkout-PHP-SDK“支付流程
前言
公司一个网站项目有国外的用户给我们发邮件希望能用paypal支付,于是交给了我,我们这个项目两年前是有对接paypal通道的,但是一直没有开放,测试测了并不能完成付款流程。
看paypal官方是最近有出一个新的sdk,老的应该不在支持更新了,于是打算用新的SDK重新对接,新的github地址:https://github.com/paypal ...
PHP安装Redis扩展
PHP安装Redis扩展
开始在 PHP 中使用 Redis 前,我们需要确保已经安装了redis服务,且你的机器上能正常使用PHP。 接下来让我们安装 PHP redis 驱动,下载地址为:https://github.com/phpredis/phpredis/releases。
下载并安装
cd /opt
wget https://github.com/phpredis/phpredis/releases/tag/5.3.0RC2
tar -zxvf 5.3.0RC2
...
Navicat 使用HTTP代理连接mysql ntunnel_mysql.php
使用Navicat工具调试mysql数据库很方便,因为老的http连接mysql的代码仅支持 mysql_connect,但新的PHP已经不支持此函数了。在网上找的新方法,使用 mysqli_connect 替代。
1. 将 ntunnel_mysql.php 放网站可访问目录2. 使用浏览器测试访问 http://www.z1.com/ntunnel_mysql.php3. 配置Navicat使用http连接mysql,如下图:
...