网络安全问题任重道远
从资产测绘到拿到超级管理员用户5个小时解决战斗
或许是我运气好误打误撞
iuu的个人博客
网络安全问题任重道远
从资产测绘到拿到超级管理员用户5个小时解决战斗
或许是我运气好误打误撞
一般来讲,混淆分为两种
比如 SG11、Swoole Compiler 等
本文主要针对第二种,而单文件加密的一般都是对源码进行字符串操作,比如对字符串移位、拼接,或者重新定义变量,重新赋值数组,总之就是尽可能减少程序可读性。但是所有加密过的代码都会经过多次eval来重新还原为php代码执行,所以我们可以hook PHP中的eval函数来输出经过eval函数的参数,参数就是源码。
PHP中的eval函数在Zend里需要调用zend_compile_string函数,我们写一个拓展直接hook这个函数就行了。不过我不会写c代码,所以参考网上的文章,在GitHub中找到了现成的一个拓展库。
https://github.com/bizonix/evalhook/tree/master
安装扩展之后终端执行
php xxx.php
即可打印出解析后的PHP代码 注意变量名无法被还原
参考链接 https://y4er.com/posts/hook-eval/
在安装swoole5.1版本的时候遇到centos7.9 curl版本过低问题,导致无法安装swoole扩展
下边是详细解决办法
vim /etc/yum.repos.d/city-fan.repo
然后在里面添加如下内容:
[CityFanforCurl]
name=City Fan Repo
baseurl=http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/
enabled=0
gpgcheck=0
[CityFanforCurl]
name=City Fan Repo
baseurl=http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/
enabled=0
gpgcheck=0
yum update curl --enablerepo=CityFanforCurl -y
cURL将会更新到一个最新的稳定版。
curl --version
Kubernetes (k8s) 由多个组件组成,这些组件协同工作以提供一个强大的容器编排平台。常见的 Kubernetes 组件:
负责接收和处理来自用户、工具和其他 Kubernetes 组件的 REST 操作请求。它是 Kubernetes 控制平面的入口。
一个分布式键值存储,用于存储 Kubernetes 集群的所有数据,包括集群的配置信息和状态数据。
负责执行集群中的控制循环,确保集群的实际状态符合预期状态。常见的控制器包括节点控制器、复制控制器、端点控制器等。
负责将待调度的 Pod 分配到合适的节点上。它考虑各种调度策略、资源需求、节点的健康状况等因素。
运行在每个节点上的代理,负责与 API Server 通信,管理该节点上的 Pod 和容器。kubelet 接收 Pod 规格并确保容器按要求运行。
负责维护网络规则,允许 Kubernetes 服务之间的网络通信。它实现了服务的负载均衡。
负责运行容器的实际软件,可以是 Docker、containerd、CRI-O 等。
一个基于 Web 的 Kubernetes 用户界面,用于查看集群状态和管理资源。
Kubernetes 提供内部 DNS 服务,用于为其他 Kubernetes 服务创建 DNS 记录,使服务之间可以通过 DNS 名称相互访问。
管理 Ingress 资源,提供 HTTP 和 HTTPS 路由功能,将外部流量引导到集群内的服务。
用于监控和可视化集群状态。Prometheus 收集指标数据,Grafana 用于展示这些数据。
Kubernetes 的包管理工具,用于简化应用的安装和管理。
这些组件共同协作,使得 Kubernetes 能够高效地管理和编排容器化应用。了解这些组件及其功能,可以更好地管理和运维 Kubernetes 集群。
Pod是k8s中最小的部署单元。
Pod是一组容器的集合。
Pod中的容器是共享网络的。
Pod的生命周期是短暂的。
Controller可以确保预期的Pod的副本数量。
Controller确保所有的Node运行同一个Pod。
一次性任务和定时任务。
无状态应用部署。
有状态应用部署。
定义一组Pod的访问规则。