当前位置: 首页 > news >正文

1 渗透基础

目录

基础前沿

1 vulhub环境搭建

1 proxychains工具:编辑配置文件

2 docker

docker环境搭建

配置docker的代理:

2 nginx编译安装--FPM

1 php.ini

2 php-fpm

3 nginx

4 nginx php-fpm php

1 基本角色分工

2. 请求处理全流程

步骤 1:客户端发送请求

步骤 2:Nginx 接收请求

步骤 3:Nginx 配置示例

步骤 4:Nginx 与 PHP-FPM 通信

步骤 5:PHP-FPM 处理请求

步骤 6:PHP 脚本执行

步骤 7:结果返回

步骤 8:Nginx 返回响应

总结

3 DNS

命令解释

1 dig

2 nslookup

DNS的解析过程


基础前沿

1 vulhub环境搭建

1 proxychains工具:编辑配置文件

vim /etc/proxychains.conf

查看代理端口号:7890

查看本机网卡,一般虚拟机都是vmnet8:

设置配置文件,改代理IP和端口号

测试: proxychains curl http://www.google.com

后面又去访问了google发现不行了,但是访问其他的外网可以正常访问

2 docker

docker环境搭建

需要下载以下的包,如果下载失败可以先apt upgrade 或者 --fix-missing解决问题

sudo apt-get install --fix-missing docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

配置docker的代理:

先创建配置目录

mkdir -p /etc/systemd/system/docker.service.d

写代理:

sudo tee /etc/systemd/system/docker.service.d/proxy.conf <<-'EOF'

[Service]

Environment="HTTP_PROXY=http://192.168.37.1:7890"

Environment="HTTPS_PROXY=http://192.168.37.1:7890"

Environment="NO_PROXY=localhost,127.0.0.1,192.168.37.0/24" # 不代理本地和局域网地址 EOF

测试:拉取环境

docker ps -a

docker rm -f $(docker ps -aq)

docker images

docker rmi $(docker images | awk '{print $3}')

删除第三列的ID

然后构建镜像环境:

docker compose up -d

部署完成,查看镜像和容器:

docker ps -a

docker images

本地访问查看是否成功:

ok!部署完成

进入容器:

docker exec -it 9b7a360a3476 /bin/bash

这里有一个.dockerenv文件,说明我是在docker容器里面,如果说拿下一个网站有这个说明是在容器里面,并没有进入真实的物理机(所以有docker逃逸)

因为docker是最小化的安装,所以他的很多命令都没有

修改docker文件的方法:

1,直接下载软件安装包或者更新源

apt-get upgrade

2,将文件名复制出来,在本地进行修改

docker cp 9b7a360a3476:/var/www/html/color.php /tmp

打开进行修改再复制回去,因为cp是覆盖

3,vscode直接修改

2 nginx编译安装--FPM

1 php.ini

2 php-fpm

3 nginx

进入此配置目录

修改nginx的配置文件,配置与php联动的文件

root@yang:/usr/local/nginx/conf#vim nginx.conf

4 nginx php-fpm php

1 基本角色分工
  • Nginx:高性能的 Web 服务器和反向代理服务器,负责接收客户端请求、静态文件处理和请求转发。
  • PHP-FPM:PHP FastCGI 进程管理器,负责管理 PHP 进程池并处理 PHP 脚本的执行。
  • PHP:脚本语言,执行 PHP 代码并生成动态内容
2. 请求处理全流程
步骤 1:客户端发送请求

用户通过浏览器或其他客户端工具(如 curl)访问网站,例如请  求 http://example.com/index.php

步骤 2:Nginx 接收请求

Nginx 作为 Web 服务器监听 80/443 端口,接收到请求后根据配置文件(nginx.conf 中的配置)决定如何处理:

  • 静态文件请求:直接返回 HTML、CSS、JS、图片等静态资源。
  • PHP 脚本请求:通过 fastcgi_pass 指令将请求转发给 PHP-FPM 处理
步骤 3:Nginx 配置示例

步骤 4:Nginx 与 PHP-FPM 通信

Nginx 通过 FastCGI 协议 将请求转发给 PHP-FPM:

  • 通信方式
    • TCP 套接字(如 127.0.0.1:9000):适合跨服务器通信或调试。
    • Unix 套接字(如 /run/php/php7.4-fpm.sock):性能更高,适合本地通信。
  • 传递参数:Nginx 将请求信息(如 SCRIPT_FILENAMEQUERY_STRINGHTTP_HOST 等)封装为 FastCGI 参数传递给 PHP-FPM。
步骤 5:PHP-FPM 处理请求

PHP-FPM 接收到请求后:

  1. 进程池管理:从空闲进程池中选择一个 PHP 进程(若没有则创建新进程,需配置允许)。
  2. 执行 PHP 脚本:PHP 进程读取并执行指定的 PHP 文件(如 index.php)。
  3. 环境准备:PHP 进程会加载 php.ini 配置,并根据脚本需求加载扩展(如 mysqliredis 等)。
步骤 6:PHP 脚本执行

PHP 解释器执行脚本,可能涉及:

  • 数据库查询(如 MySQL、PostgreSQL)。
  • 文件读写。
  • 调用第三方 API。
  • 生成动态内容(如 HTML、JSON)。
步骤 7:结果返回

PHP 执行完成后,将生成的内容(如 HTML 页面)返回给 PHP-FPM,PHP-FPM 再通过 FastCGI 协议将结果返回给 Nginx。

步骤 8:Nginx 返回响应

Nginx 收到 PHP-FPM 的响应后,添加 HTTP 头(如 Content-TypeCache-Control),并将内容返回给客户端浏览器。

总结
  • Nginx 负责请求分发:静态文件自己处理,PHP 脚本转发给 PHP-FPM。
  • PHP-FPM 管理进程池:提高 PHP 脚本执行效率,避免频繁创建进程。
  • PHP 专注业务逻辑:执行代码并生成动态内容。

3 DNS

命令解释

此节介绍了DNS查询常用命令nslookup和dig。nslookup可进行正向解析、查询指定数据类型和TTL值等,支持指定域名服务器;dig能正向、反向解析,查询特定记录及追踪解析过程。nslookup适合基本查询和诊断,dig功能更强大全面。

1 dig

1.正向解析:使用 dig 域名 @server-ip 的格式,其中server-ip是指定的DNS服务器IP地址。

2.反向解析:使用 dig –x ip @server-ip 的格式,可以查询指定IP地址对应的域名。

3.查询特定类型的记录:使用 dig 域名 type 的格式,其中type是想要查询的记录类型,如A、AAAA、MX、NS、SOA等。

4.追踪解析过程:使用 dig +trace 域名 的格式,可以追踪域名的解析过程,显示从根域名服务器开始到最终权威服务器的解析路径。

2 nslookup

1.正向解析:直接输入 nslookup 域名,例如 nslookup www.baidu.com,即可查询指定域名的IP地址。

2.查询域名制定数据类型:使用 nslookup type=类型 域名 的格式,其中类型可以是A、AAAA、MX、NS、SOA等,用于查询指定类型的记录。 3.查询域名TTL值:使用 nslookup –d 域名 的格式,可以查询指定域名的TTL值。 此外,nslookup还支持指定域名服务器进行查询。例如,nslookup server 8.8.8.8 可以将Google的公共DNS服务器8.8.8.8设置为默认服务器进行查询。

nslookup更适合基本的DNS查询和网络诊断,而dig则提供了更为深入和全面的DNS查询和分析功能。

DNS的解析过程

①客户机向其本地域名服务器发出DNS请求报文。

②本地域名服务器收到请求后,查询本地缓存,若没有该记录,则以DNS客户的身份向根域名服务器发出解析请求。

③根域名服务器收到请求后,判断该域名属于.com域,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器。 ④本地域名服务器向顶级域名服务器dns.com发出解析请求报文。

⑤顶级域名服务器dns.com收到请求后,判断该域名属于abc.com域,因此将对应的授权域名服务器dns.abc.com的IP地址返回给本地域名服务器。

⑥本地域名服务器向授权域名服务器dns.abc.com发起解析请求报文。

⑦授权域名服务器dns.abc.com收到请求后,将查询结果返回给本地域名服务器。

⑧本地域名服务器将查询结果保存到本地缓存,同时返回给客户机

http://www.dtcms.com/a/287625.html

相关文章:

  • FOC算法六步算法 以及 Vds保护是什么
  • 石子问题(区间dp)
  • 【c++】提升用户体验:问答系统的交互优化实践——关于我用AI编写了一个聊天机器人……(12)
  • QCC系列显示交互层的自研技术突破与实践
  • 论文reading学习记录4 - weekly - 视觉端到端开创-LOAM
  • 6 STM32单片机的智能家居安防系统设计(STM32代码+手机APP设计+PCB设计+Proteus仿真)
  • VRRP-虚拟路由冗余协议
  • leetcode3_435 and 605
  • 在服务器(ECS)部署 MySQL 操作流程
  • C++控制台贪吃蛇开发:从0到1绘制游戏世界
  • Linux --进程信号
  • 2025年燃气从业人员证考试题库及答案
  • Linux——文件压缩和解压
  • 结合python面向对象编程,阐述面向对象三大特征
  • volka 可理解性输入:做家务
  • 学习C++、QT---29(QT库中QT事件的介绍和用了几个案例来对事件怎么使用的讲解)
  • lvs原理及实战部署
  • Linux内核设计与实现 - 第5章 系统调用
  • CS231n-2017 Lecture3线性分类器笔记
  • 什么是 Git 的钩子 Hooks?包括哪些内容?
  • picoCTF 2024: [[NoSQL]] Injection - Writeup
  • K8s与Helm实战:从入门到精通
  • 【杂谈】硬件工程师怎么用好AI工具做失效分析
  • 图像缩放的双线性插值算法
  • Keepalived 监听服务切换与运维指南
  • Redis常见线上问题
  • 如何实现电脑自动关机与定时任务管理
  • MySQL 深度性能优化配置实战指南
  • UGUI 性能优化系列:第三篇——渲染与像素填充率优化
  • Redis性能测试全攻略:工具实操与性能优化指南