php安全修炼手册(持续更新2021.1.6)
(持续更新哟,点个关注和赞吧)
!!!如要学习具体深刻需要善于运用搜索引擎。!!!
php笔记可参考php手册https://www.php.net/
php的构成与理解
众所周知,php(超文本预处理器)是一种基于B/S结构的解释性语言,在我们深入理解php语言之前,我们可能都接触过了比较基础的php语言,再此就不详细展开细节了,我们 ...
docker-compose搭建nginx+php环境
docker-compose搭建nginx+php环境
准备工作
docker-compose的下载安装:
https://www.runoob.com/docker/docker-compose.html
创建工作目录和需要挂载的目录:
# 工作目录(一会儿docker-compose命令将在工作目录下执行)
mkdir -p /disk2/docker/docker-compose
# 需要挂载的目录
mkdir -p /disk2/www
mkdir -p /disk2/n ...
4. php反序列化从入门到放弃(放弃篇)
上篇《php反序列化从入门到放弃(入门篇)》主要总结了PHP的反序列化的一些知识,本篇主要通过cms实例来更好的理解并且挖掘反序列化漏洞。
以下cms的源码地址:https://github.com/bmjoker/Code-audit/
Typecho1.0.14反序列化导致任意代码执行
Typecho是一个PHP版本的轻量版博客系统,存在反序列化导致前台getshell的漏洞, ...
从零开始搭建 PHP 原生环境(Windows 篇)
目录序相关配置下载背景测试环境安装之前的注意事项Apache 安装与配置Apache 配置文件(Apache24/conf/httpd.conf)虚拟主机配置文件 (Apache24/extra/httpd-vhosts.conf)PHP 安装与配置下载 PHPThread Safe 和 Non Thread Safe 的 区别配置 php.ini检查配置安装 Apache 服务并启动MySQL 安装下载 MySQL 最新版新建 My.in ...
php执行shell命令
1、为了给同一个应用项目动态配置多个域名访问,把apache服务器换成了nginx,在/etc/nginx/conf.d/下配置域名命名的配置文件
#所有访问80端口的请求都重写到443 server {
listen 80;
server_name xxx.com www.xxx.com;
rewrite ^(.*)$ https://$host$1 p ...
Linux 离线安装 php
准备工作: (需要先下载好两个东西 libxml2 和 php)
libxml2: http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.30.tar.gz
php : https://museum.php.net/
将压缩包拷如服务器上.
下载好后,开始进入安装流程:
1. 安装libxml2
1 tar -z ...
php grpc中文文档和实例
2020年10月21日15:23:53
官方文档
https://www.grpc.io/docs/languages/php/quickstart/
先决条件
PHP 5.5或更高版本,7.0或更高版本
PECL
compsoer
PHPUnit(可选)
在Ubuntu / Debian上安装PHP和PECL:
对于PHP5:
$ sudo apt-get install php5 php5-dev php-pear phpunit
对于PHP7:
$ sudo apt-get install php7. ...
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 深究
根据文章中提供的参考链接也了解到了这个操作 ...
PHP对接支付宝支付接口
PHP对接支付宝支付接口
(此文章引用
爱玲姐姐
如不同意联系可删除
)
PHP版本对接支付宝支付接口
其实理顺了思路后,按照我接下来的步骤来,真的超级简单啊,为啥有那么多的朋友们折腾了那么久呢,嘿嘿,接下来跟我走吧~
一、下载SDK开发工具包
点击链接下载SDK&Demo
我下载的是PHP的Demo
下载好了之 ...
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、 ...