一、网站的基本组成
一个完整的网站通常由以下核心组件构成:
-
服务器操作系统:Windows Server、Linux、Unix等
-
中间件(Web容器):Apache、Nginx、IIS、Tomcat等
-
脚本语言:PHP、Java、Python、ASP.NET等
-
数据库:MySQL、Oracle、SQL Server、PostgreSQL等
二、网站指纹识别技术
1. 操作系统识别
-
Windows服务器特征:
-
TTL(生存时间)值:默认128(实际网络传输中可能衰减)
-
文件系统大小写不敏感(
Page.html
与page.html
视为同一文件) -
常见端口:3389(RDP)、445(SMB)
-
-
Linux服务器特征:
-
TTL值:默认64
-
严格区分大小写(
Index.php
与index.php
是不同文件) -
常见端口:22(SSH)、21(FTP)
-
检测方法:
ping example.com # 观察TTL初始值 curl -I example.com # 分析响应头特征
2. 中间件识别
中间件类型 | 识别特征 |
---|---|
Apache | 响应头含Server: Apache/2.x.x |
Nginx | 响应头含Server: nginx/x.x.x |
IIS | 响应头含Server: Microsoft-IIS |
Tomcat | 默认错误页面含Apache Tomcat标识 |
工具推荐:
-
Nmap脚本扫描:
nmap -sV --script=http-server-header <target>
-
Wappalyzer(浏览器插件)
3. CMS识别
常见CMS及特征:
-
WordPress:
/wp-content/
目录、generator
标签含WP版本 -
Discuz!:
static/image/common/logo.svg
默认路径 -
DedeCMS:
/data/admin/ver.txt
版本文件
在线检测工具:
三、敏感文件与目录探测
高风险目标清单:
-
版本控制文件:
-
.git/
:Git仓库(可使用GitHack工具下载源码) -
.svn/
:Subversion仓库 -
WEB-INF/web.xml
:Java Web应用配置文件
-
-
临时备份文件:
-
index.php.bak
-
wwwroot.rar
-
database.sql.zip
-
-
环境配置文件:
-
.env
:环境变量文件 -
config.php
:数据库连接配置
-
自动化工具:
dirsearch -u https://example.com -e php,asp,jsp,zip gobuster dir -u https://example.com -w common.txt
四、WAF(Web应用防火墙)识别
常见WAF特征:
-
安全狗:拦截页面含
WAF/2.0-12
标识 -
云锁:响应头含
Yunsuo
字段 -
Cloudflare:Cookie含
__cfduid
字段 -
ModSecurity:默认拦截页面含
Mod_Security
标识
检测方法:
-
手动检测:
curl -X POST "https://example.com" -d "<script>alert(1)</script>" # 观察是否返回403或WAF拦截页面
-
自动化工具:
-
WafW00f:
wafw00f https://example.com
-
Nmap脚本:
nmap --script=http-waf-detect <target>
-
五、实战技巧与注意事项
-
综合信息收集流程:
域名解析 → 端口扫描 → 指纹识别 → 目录爆破 → WAF检测
-
合法合规性:
-
必须获得书面授权方可测试
-
避免使用破坏性Payload
-
-
高级技巧:
-
通过
X-Powered-By
响应头识别PHP版本 -
利用Shodan搜索特定组件资产:
product:"Apache httpd" country:"CN"
-
六、防御建议
-
服务器加固:
-
删除不必要的HTTP响应头(如Server、X-Powered-By)
-
定期清理备份文件和版本控制目录
-
-
WAF配置:
-
开启CC攻击防护
-
设置合理的正则规则拦截目录扫描
-
-
日志监控:
-
监控异常扫描行为(如高频404请求)
-
设置告警阈值(如1分钟内超过50次目录探测)
-