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

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.xdnf.cn/news/15696.html

相关文章:

  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - snowNLP库实现中文情感分析
  • 【unitrix】 6.7 基本结构体(types.rs)
  • Python 使用期物处理并发(使用concurrent.futures模块下载)
  • Leetcode刷题营第三十三题:对称二叉树
  • 五大开源OCR开源框架评估01-Tesseract:OCR 领域的远古巨神
  • Docker安装教程
  • GaussDB join 连接的用法
  • 7.18 Java基础 |
  • 正则表达式,Collection集合,迭代器
  • 差分数组算法
  • [simdjson] 填充字符串 | `document` 对象 | on-demand 模式
  • C++并发编程-14. 利用栅栏实现同步
  • Redis学习其三(订阅发布,主从复制,哨兵模式)
  • Windows 安装WSL +Docker 部署通义千问大模型(同步解决Ubuntu启动命令闪退)
  • 图片平铺下去总是有个缝隙的解决方案
  • Vue常见指令
  • 【解码文本世界的“隐形分界线”:Windows与Linux回车换行之谜】
  • Python网络爬虫之selenium库
  • coredns使用etcd
  • Gitee 远程库多人如何协作?
  • CCF编程能力等级认证GESP—C++1级—20250628
  • QT窗口(4)-浮动窗口
  • Kotlin封装
  • 萤石摄像头C++SDK应用实例
  • 微信小程序 wx.request() 的封装
  • Github库镜像到本地私有Gitlab服务器
  • PortSwigger Labs 之 点击劫持利用
  • RPC 与 Feign 的区别笔记
  • Spring AI开发智能客服(Tool calling)
  • 开启modbus tcp模拟调试