渗透安全(渗透防御)④

安装php

由于有些安全性bug经过时间的检验后,会被人为修复,所以,想要复现当时的bug需要下载当时的环境,而直接使用apt下载php会直接下载最新版,会导致bug被修复,从而导致无法复现。因此需要安装php库,然后再下载所需要版本的php

下载仓库

复制代码
sudo apt-get install software-properties-common    ---安装 software-properties-common 这个工具包。
sudo add-apt-repository -y ppa:ondrej/php    ---添加一个名为 ondrej/php 的 PPA(Personal Package Archive)到系统的软件源列表中
sudo apt-get update    ---更新

下载php

复制代码
sudo apt-get install php7.3 php7.3-mysql php7.3-fpm php7.3-curl php7.3-xml php7.3-gd php7.3-mbstring php-memcached php7.3-zip
---这是7.3版本常用的php

update-alternatives --config php    ---查看php版本

修改主配文件

复制代码
find / -name www.conf    ---在整个文件系统中查找名为 www.conf 的文件
cd /etc/php/7.3    ---进入 PHP 7.3 的配置目录,准备查看或编辑相关配置文件

主配文件在cli,fpm目录下都有,此时要注意,cli只在命令行生效,fpm可以在网页生效,因此改fpm目录中的主配文件。

复制代码
 cd pool.d/  
---/etc/php/7.3/fpm/
├── php.ini          ← PHP 全局配置(如内存限制、时区等)
└── pool.d/          ← **进程池配置目录**
    └── www.conf     ← 默认的"www"进程池配置  

 vim www.conf   
---www.conf 是 PHP-FPM 默认的主进程池配置文件,控制着:
PHP 以什么用户身份运行(安全关键!)
如何与 Nginx/Apache 通信(通过 socket 还是端口)
资源使用限制(最大子进程数、请求超时等)

 sudo systemctl restart php7.3-fpm    ---重启服务
 sudo ss -tulnp | grep :9000    ---确保php在监听9000端口

编辑nginx文件

复制代码
vim /etc/nginx/sites-available/default    ---编辑nginx文件
sudo systemctl restart nginx    ---重启nginx
systemctl status nginx    ---查看nginx状态

确保这一部分的内容和php配置文件中的一致。

测试

复制代码
cd /var/www/html/    ---来到nginx网页根目录
vim phpinfo.php    ---编辑一个网页测试文件
    <?php phpinfo();    ---文件内容

先确定nginx可以正常访问

在确定文件可以正常访问

RSA算法

上一章提到了HTTPS,我们都知道HTTPS和HTTP相比,HTTPS是安全的,为什么安全,是因为在HTTP的基础上加了一个SSL,使其加密。而为什么加密很安全,可能很多人都说不出来。想要知道为什么安全,我们就要先知道RSA算法是什么。因为本人的数学真的很烂,所以这里不讲解什么,只是大概讲一下逻辑,这里强烈推荐大家去搜索阮一峰rsa1,2的文章,里面非常详细的讲解了RSA算法。

RSA算法是什么

RSA算法其实是三个数学家设计的算法,用他们三个人的名字的首字母命名。其实就是非对称加密。而要理解这个算法,我们首先得知道欧拉函数,这是这个算法的核心。而公私钥的生成如下:

第一步,随机选择两个不相等的质数p和q。

第二步,计算p和q的乘积n

第三步,计算n的欧拉函数φ(n)。

第四步,随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。

第五步,计算e对于φ(n)的模反元素d

第六步,将n和e封装成公钥,n和d封装成私钥

而如果想在知道e的情况下推导出d(用公钥算出私钥),就需要以下步骤

(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。

  (2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。

  (3)n=pq。只有将n因数分解,才能算出p和q。

但是以目前人类的算力来说,只能破解829位的密钥(2020年数据),而现今的HTTPS一般的密钥长度是2048位,特殊场景(如金融行业)是3072 位或 4096 位,以目前人类的算力,公开记录中成功分解的最大整数仅为 829 位。面对现在主流的 2048 位密钥,想要通过分解 n 来反推私钥,在数学上被认为是计算不可行的。也就是说我们无法算出私钥的那个d的值,所以RSA算法安全,所以HTTPS安全。

相关推荐
德迅云安全-上官32 分钟前
DDoS 安全防护在企业安全防护中的作用
安全·ddos
王维同学6 小时前
[自学][Windows C++]RunOnceEx 注册表分组键的安全遍历
c++·windows·安全·开源
川石课堂软件测试8 小时前
安全测试|常见SQL注入攻击方式、实例及预防
服务器·数据库·sql·功能测试·测试工具·安全·单元测试
上海云盾-小余8 小时前
中小站点防护避坑:低价高防服务存在的各类安全短板剖析
网络·爬虫·安全·ddos
武子康9 小时前
从恶意 Dataset 到横向移动:一套可落地的 Dataset Processing Threat Model(资产边界 + 威胁枚举 + 5 层控制)
人工智能·安全
羽翼安全9 小时前
企业内网终端可视化风控方案解析,电脑屏幕防泄露系统保障数据资产安全
安全
数据知道11 小时前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全
qizayaoshuap11 小时前
# [特殊字符] 密码生成器 — 鸿蒙ArkTS安全算法与密码强度评估系统
java·算法·安全·华为·harmonyos
是Yu欸13 小时前
AI跨模态鉴伪技术实测
人工智能·安全·ai作画·aigc·合合信息·ai-native·waic
William Dawson14 小时前
【华为云 MRS Redis 安全集群 Kerberos 认证接入实战(Spring Boot \+ Jedis)】
redis·安全·华为云