Web服务器学习笔记(基础+原理+实操+漏洞)
一、Web核心基础认知
1. Web四大核心组成(通俗类比+专业解析)
核心逻辑:客户端发起请求 → 协议传递请求 → 服务器处理请求 → 返回资源,四者协同完成Web访问全流程,通俗类比更易理解:
-
客户端(用户侧)- 请求入口
-
组成:用户使用的设备(电脑/手机)+ 软件(浏览器/小程序、APP)
-
核心作用:发起资源访问请求(如打开网页、点击按钮),接收服务器返回的数据并渲染展示给用户
-
通俗类比:顾客(有需求,主动发起请求)
-
-
服务器(服务侧)- 核心处理节点
-
组成:部署在远程的专用计算机 + Web服务软件(Nginx/Apache/IIS等)
-
核心作用:存储网页、图片、视频等Web资源,接收并解析客户端请求,处理完成后返回对应资源
-
通俗类比:厨房(存储食材/成品,处理顾客需求,产出对应餐品)
-
-
网络协议 - 通信规则(桥梁)
-
定义:客户端与服务器之间的「通信语言」,制定数据传递、解析的规则,确保数据不丢失、不混乱
-
核心协议:HTTP(明文传输,不安全)、HTTPS(加密传输,安全,主流)
-
通俗类比:服务员(传递顾客需求,反馈厨房产出,衔接两端)
-
-
Web资源 - 访问的核心内容
-
定义:服务器存储的各类文件、数据,是Web的内容载体,也是用户最终要访问的内容
-
常见示例:HTML网页文件、jpg/png图片、mp4视频、后端接口数据、脚本文件(PHP/JSP等)
-
通俗类比:餐品/食材(厨房产出的核心,也是顾客的最终需求)
-
类比总结:顾客(客户端)把需求告诉服务员(网络协议),服务员传达给厨房(服务器),厨房处理后把餐品(Web资源)通过服务员传递给顾客,完成一次完整交互。
2. 关键基础概念(新手必记)
-
localhost:本机域名,特指「当前正在使用的电脑」,对应固定IP地址 127.0.0.1,用于访问自己电脑上搭建的Web服务(别人无法访问)。
-
file://:伪协议,用于直接访问本地电脑上的文件(无需Web服务器),比如双击本地HTML文件,浏览器地址栏会显示该协议。
-
网页三大构成:三者协同实现网页的「结构+样式+交互」,缺一不可:
-
HTML(超文本标记语言):定义网页结构和内容(如标题、段落、图片、链接),是网页的「骨架」。
-
CSS(层叠样式表):定义网页的视觉表现(如颜色、字体、布局、动画),是网页的「外观」。
-
JavaScript(JS):实现网页交互功能(如按钮点击、表单验证、动态内容更新),让静态页面「动起来」,是网页的「灵魂」。
-
二、Web应用访问完整流程(核心原理)
从用户输入URL到看到网页,共3个核心步骤,环环相扣:
-
步骤1:用户输入URL,完成DNS解析
-
用户在浏览器输入URL(如http://www.baidu.com),浏览器先通过DNS服务器,将域名(www.baidu.com)解析为服务器的IP地址(如180.101.49.11)。
-
核心目的:找到请求要发送到的「目标服务器」(相当于根据店名找到厨房的地址)。
-
-
步骤2:建立TCP连接,确保通信稳定
-
通过「TCP三次握手」,在客户端和服务器之间建立稳定的连接,确保数据传递不丢失、不重复。
-
类比:服务员和厨房确认「通道畅通」,可以传递需求和餐品。
-
-
步骤3:HTTP请求与响应,完成资源交互
-
客户端通过HTTP/HTTPS协议,向服务器发送具体请求(如“获取首页HTML”“下载一张图片”)。
-
服务器接收请求,解析请求内容,找到对应的Web资源(或执行脚本处理请求),生成HTTP响应,将资源返回给客户端。
-
客户端(浏览器)接收响应,解析资源,渲染HTML、CSS、JS,最终展示给用户。
-
总结:用户通过客户端(浏览器)发起请求,经网络协议(HTTP/HTTPS)传递到服务器,服务器处理后返回Web资源,最终由浏览器渲染展示给用户。
三、主流Web服务器详解(对比+适配场景)
Web服务器是部署Web应用的核心软件,主流有3种,各有侧重,需根据技术栈和场景选择:
1. IIS(Internet Information Services)
-
所属厂商/性质:微软开发,闭源商业软件,与Windows系统深度绑定。
-
支持系统:仅支持Windows系统(如Windows Server、Windows 10/11专业版)。
-
核心特性:自带图形化管理界面,操作简单;深度集成.NET生态,对微软技术栈支持最好。
-
技术栈适配:优先适配.NET Framework、.NET Core、ASP、ASP.NET等微软脚本。
-
典型应用场景:1. 部署ASP.NET、ASP等微软技术栈项目;2. 企业内网Windows环境下的管理系统(如办公系统、后台管理系统)。
2. Nginx(高性能首选)
-
所属厂商/性质:开源软件(由Igor Sysoev团队发起),免费可用,社区活跃。
-
支持系统:跨平台,支持Windows、Linux、Unix等所有主流系统。
-
核心特性:轻量高效,内存占用极低;高并发处理能力强(可支撑万级以上并发连接);擅长反向代理、负载均衡、静态资源托管。
-
技术栈适配:无明显偏向,适配所有主流技术栈(PHP、Java、Python等)。
-
典型应用场景:1. 高流量网站(电商、视频平台、门户网站)的静态资源服务;2. 需支撑高并发连接的场景;3. 作为反向代理服务器,转发请求到后端服务。
3. Apache HTTP Server(兼容性首选)
-
所属厂商/性质:开源软件(由Apache软件基金会维护),免费可用,历史悠久。
-
支持系统:跨平台,支持Windows、Linux、Unix等。
-
核心特性:模块化设计灵活,可通过插件扩展功能;兼容性极强,支持多种脚本(PHP、Perl、Python等)和扩展。
-
技术栈适配:适配PHP、Perl、Python等脚本,对老旧项目兼容性更好。
-
典型应用场景:1. 中小型网站(博客、企业官网)的动态内容服务;2. 对兼容性要求高、需适配多种脚本的老旧项目。
四、主流Web服务器漏洞实战(基于Vulhub靶场)
Web服务器漏洞是渗透测试的重点,以下是3种主流服务器的经典漏洞,含原理、复现步骤和危害,均基于Vulhub靶场(Ubuntu系统)实操。
1. Apache HTTP Server - 解析漏洞
漏洞原理
Apache支持一个文件拥有多个后缀,且会为不同后缀执行不同指令(如配置文件中AddHandler application/x-httpd-php .php)。核心漏洞:只要文件包含.php后缀,无论后缀位置如何,Apache都会将其识别为PHP文件并解析,无需是最后一个后缀。
漏洞复现(Vulhub)
-
切换到漏洞环境目录:
cd /home/enjoy/vulhub-master/httpd/apache_parsing_vulnerability -
启动漏洞环境:
docker-compose up -d(需提前安装Docker和docker-compose) -
漏洞验证:
-
直接上传.php文件,会被服务器拦截,上传失败;
-
在.php文件后添加.png后缀(如shell.php.png),上传成功;
-
Apache解析时,从右往左识别后缀,看到.php就会当作PHP文件解析,若文件是恶意木马,攻击者即可获取服务器权限。
-
2. Nginx - 解析漏洞
漏洞原理
Nginx在解析文件时,若文件路径后添加/.php,会将该文件当作PHP文件解析。例如:1.jpg/.php,Nginx会忽略.jpg,将其解析为PHP脚本执行。
漏洞复现(Vulhub)
-
切换到漏洞环境目录:
cd /home/enjoy/vulhub-master/nginx/nginx_parsing_vulnerability -
启动漏洞环境:
docker-compose up -d -
漏洞验证:上传普通图片文件(如1.jpg),访问路径1.jpg/.php,Nginx会将该图片文件当作PHP脚本解析,若图片中植入恶意代码,即可执行攻击。
3. IIS 6.0 - 文件名解析漏洞
漏洞原理
IIS 6.0会忽略文件名中「;」后的内容,仅解析「;」前的后缀。例如:test.asp;.jpg,IIS会忽略;.jpg,将文件当作.asp脚本执行,而非普通图片文件。
漏洞危害
攻击者可利用服务器的文件上传功能,将恶意脚本(如webshell)伪装成图片文件(如test.asp;.jpg)上传,绕过文件上传限制;脚本被解析执行后,攻击者可获取服务器权限,读取、修改服务器文件,甚至控制整个服务器。
五、核心总结(重点记忆)
-
Web四大核心:客户端(请求)、服务器(处理)、协议(通信)、资源(内容),缺一不可。
-
网页三大构成:HTML(结构)、CSS(样式)、JS(交互),协同实现网页展示和功能。
-
主流服务器:Nginx(高性能、高并发)、Apache(兼容性好)、IIS(Windows+微软技术栈)。
-
核心漏洞:三类服务器均存在解析漏洞,核心都是「绕过文件上传限制,让恶意脚本被解析执行」,是渗透测试的高频考点。
-
实操关键:Vulhub靶场是练习漏洞复现的核心工具,掌握docker-compose启动环境的基本命令,即可完成大部分漏洞实操。
更多推荐
所有评论(0)