项目经验总结
项目一
在大二升大三的那个暑假,我在亲戚的公司待着。当时突然没网了,网络延迟特别高,网址根本打不开。我以为是我自己电脑的问题,我先ping回环地址,发现能通,说明我电脑本身没问题。然后ping网关不同,说明故障出在外部网络。当时公司里大家也都说连不上网了。还有一两个同事说还出现了IP冲突,因为我是学网安的嘛,对数通这方面知道一些,我就提议说让我去设备那里看看。去设备间查看,发现接入交换机和核心交换机的指示灯都在疯狂闪烁,而且是所有端口一起闪,当时我就觉得这应该是二层环路问题。然后我用console线登录核心交换机,输入“display interface brief”命令,看到有个下联接入交换机的端口,带宽利用率一直维持在非常高,应该是这个接入交换机发生了环路,接着我又进入这个接入交换机的终端,果然发现了有两个端口的带宽占用率特别高。然后我输入“display mac-address flapping”命令,发现有大量MAC地址在这两个端口之间频繁漂移,所以我判断是二层环路导致了广播风暴。但是呢,二层环路应该不会引发IP冲突,当时我还不知道IP冲突是怎么回事,想着先把二层环路解决掉。
我先在交换机上输入“interface GigabitEthernet0/0/1”进入异常端口,执行“shutdown”命令,从源头及时关闭端口,几秒钟后网络恢复了基本通信。接着顺着异常端口,追踪到员工小王的工位。到工位后发现,他为了同时连接电脑和打印机,私接了一个家用小交换机,而且这个交换机的两根网线不小心同时插在了公司的网络接口上,形成了环路。
我拔掉了多余网线和那个交换机,结果IP冲突竟然也好了,我查阅了资料才知道小王买的那个家用小交换机其实是个家用无线路由器(带 LAN 口)。他不仅插了两根线形成环路,这个路由器本身还默认开启了 DHCP 服务。它开始给全公司发“192.168.1.x”的假地址,导致其他同事的电脑拿到的地址和核心网关冲突,从而报 IP 地址冲突。
为了防止以后再出现这样的情况,我在核心交换机和所有接入交换机上全局启用STP协议,输入“stp mode rstp”命令将生成树模式设置为快速生成树,还针对每个接入交换机的用户端口,配置了“stp edged-port enable”命令,将用户接入端口配置为 edged-port(边缘端口),既防止了次生环路,又实现了终端的高速接入。还开启了的端口安全,”port-security enable”,”port-security max-mac-count 1”设置该端口最大只允许学习一个mac地址,防止私接设备。还开启了DHCP snooping,防止私接DHCP服务器,还配置了信任端口(trust).
配置完这些后,那个暑假再也没有发生过环路导致的瘫痪故障。老板后来还开玩笑说,省下的那笔找人上门排查故障的费用,够给我发一笔不小的实习工资了。
项目二
是在大三的寒假的时候,就快放寒假那阵,然后因为实验室里面有一些资源,有些同学他需要回家之后还能访问,所以就需要做一个 VPN 来使,在家里也可以访问到实验室内部的资源,于是我就去在防火墙上做了这个SSL VPN。
| 特性 | IPsec | SSL VPN (Web方式) | OpenVPN | WireGuard |
|---|---|---|---|---|
| 工作层级 | L3(网络层) | L4-L7(传输层以上) | L3或L2,自成一派,灵活性强 | L3 |
| 默认端口 | UDP 500/4500 | TCP 443 | UDP 1194,可改TCP,易伪装成HTTPS流量 | 仅UDP 51820(可改固定端口,但UDP某些严格网络中可能被屏蔽) |
| 需要客户端? | 建议安装(但 OS 部分内置) | 通常不需要 | 需要 | 需要 |
| NAT 穿透 | 复杂(需 NAT-T) | 好 | 好 | 好 |
| 配置难度 | 高(参数多,易出错) | 中(商用设备低) | 中(需生成证书和配置文件) | 低 |
| 性能 | 高 | web代理模式中,隧道模式较高 | 中(用户态) | 最高(代码少,加密开销小,省电) |
| 典型场景 | 站点到站点 | 远程办公 Web 访问 | 全隧道远程访问(全内网访问,开发或运维) | 现代高性能 VPN |
之前文档中的 SSL VPN(子类型 ssl)属于远程访问类,特点是:
- 使用 HTTPS 端口,方便穿透。
- 支持 Web 资源(无客户端)和 L3VPN(需插件/OpenVPN 模式)。
- 管理层面通常集成在下一代防火墙(NF)中,有用户认证、资源授权等功能。
它与 IPsec 的主要区别:
- IPsec 更适合固定网络互联,配置对等技术参数,不依赖用户登录。
- SSL VPN 更适合动态用户接入,每个用户独立认证,可以精细控制允许访问哪些资源(而非整个子网)。
1 | 常见的VPN部署在防火墙上主要有SSL VPN和IPSec VPN两种。 |
1 | SSL VPN分两种场景: |
创建接口,配置SSL VPN相关参数,新建链路,新建用户组,新建资源组,配置授权访问策略。
问题:客户端看到VPN已连接,但无法访问任何内网资源。因为NF默认阻断一切通信,需要配置允许由ssl接口所在安全区到内网通讯的安全策略。
创建VPN类型且子类型为ssl的接口
设置SSL VPN相关的基本参数
新建链路,配置链路的接口,VPN访问地址,VPN端口(此链路映射到VPN的端口,默认50001),登录端口(https端口,默认443)。
配置用户可访问的资源,新建资源,资源类型包括WEB和L3VPN两种,L3需要安装插件并与NF建立SSL VPN隧道才能访问。选择协议和地址类型
配置授权访问策略,新建授权访问,选择用户组和资源组,认证凭据可以选用户名密码认证或证书
应用配置
遇到的问题:NF默认阻断一切通信,需要配置允许由ssl接口所在安全区到内网通讯的安全策略
点击SSL VPN状态可看到在线用户和网关状态
配置结束后远程用户即可访问服务器发布的资源:WEB类型:https://服务器端NF链路接口 IP:SSLVPN认证端口,登录,L3类型可以登陆后下载客户端插件启用L3VPN控件,连接隧道访问资源,或下载客户端配置文件,将配置文件导入openVPN客户端相应的目录中,再通过openVPN客户端登录连接隧道访问资源。
1 |
|
OWASP Top 10 2021 十大漏洞的核心原理
A01: 失效的访问控制(Broken Access Control)
核心原理:服务端未对受保护资源执行不可绕过的权限校验,仅依赖前端控制,导致攻击者可越权访问或操作。
- 水平越权:同角色用户访问他人私有数据(如用户 A 看用户 B 订单)
- 垂直越权:普通用户访问管理员功能
- 未授权访问:直接绕过登录访问受限接口
- 常见场景:参数篡改、不安全直接对象引用、API 未校验 POST/PUT/DELETE 权限
A02: 加密机制失效(Cryptographic Failures)
核心原理:敏感数据在传输、存储、使用全生命周期未遵循密码学最佳实践,导致数据泄露或篡改。
- 使用 MD5、SHA-1、DES 等过时 / 弱算法
- 密钥硬编码、泄露、管理不当
- 明文传输(HTTP)、未启用 TLS/HTTPS
- 密码用快速哈希存储(未加盐 / 低迭代)
A03: 注入(Injection)
核心原理:数据与指令未分离,用户可控输入未经校验 / 转义直接拼接到 SQL、NoSQL、OS 命令、LDAP 等语句中执行,改变原有逻辑。
- 最常见:SQL 注入(
' OR '1'='1) - 其他:命令注入、EL/OGNL 注入、ORM 注入
A04: 不安全设计(Insecure Design)
核心原理:架构 / 业务流程设计阶段缺失安全控制,属于 “先天缺陷”,完美代码也无法修复。
- 缺少威胁建模、安全设计模式
- 业务流程漏洞:密码找回可被绕过、无防暴力破解
- 信任前端参数、未做二次校验
- 未限制资源消耗、无防机器人 / 重放设计
A05: 安全配置错误(Security Misconfiguration)
核心原理:服务器、应用、数据库、中间件使用不安全默认配置或配置不当,暴露攻击面。
- 默认账号 / 密码未修改
- 调试模式、示例页面、敏感端点(Actuator)对外暴露
- 错误页泄露堆栈 / 版本信息
- CORS 配置过宽、缺少安全 HTTP 头(HSTS、CSP)
A06: 自带缺陷和过时的组件(Vulnerable and Outdated Components)
核心原理:应用依赖的第三方库、框架、中间件存在已知高危漏洞或已停止维护,攻击者利用公开漏洞直接攻破。
- 典型:Log4j2、Fastjson、Spring4Shell 等
- 未更新、未清理无用依赖、传递依赖引入漏洞
A07: 身份识别与认证错误(Identification and Authentication Failures)
核心原理:身份验证与会话管理存在缺陷,攻击者可冒充合法用户。
- 弱密码、默认密码、无复杂度策略
- 无防暴力破解 / 撞库、无 MFA
- 会话 ID 泄露(URL)、未超时、未注销
- JWT 弱密钥、无过期 / 吊销机制
A08: 软件和数据完整性故障(Software and Data Integrity Failures)
核心原理:未校验代码、依赖、数据的完整性,导致被篡改、植入恶意内容。
- 供应链攻击(如 SolarWinds)
- 不安全反序列化(不可信数据反序列化执行代码)
- 自动更新无签名校验、CDN 资源劫持
A09: 安全日志与监控故障(Security Logging and Monitoring Failures)
核心原理:未记录 / 未正确记录安全事件,或无有效监控告警,导致攻击无法及时发现与溯源。
- 未记录登录失败、越权、敏感操作
- 日志缺失关键信息、仅存本地易被删除
- 无告警、入侵发现周期长
A10: 服务端请求伪造(Server-Side Request Forgery, SSRF)
核心原理:攻击者诱导服务器向任意 URL 发起请求,绕过防火墙访问内网、云元数据、本地资源。
- 利用图片加载、URL 代理、Webhook 等接口
- 访问云元数据(169.254.169.254)获取 AK/SK
- 内网端口扫描、读取本地文件(file://)
IPS 防网络和系统,WAF 防网站和代码漏洞。
| 维度 | ✅ WAF (Web应用防火墙) | ✅ IPS (入侵防御系统) |
|---|---|---|
| 防护对象 | 专注于Web服务器和Web应用 | 防护网络内的所有主机和设备 |
| 工作层级 | 应用层 (OSI第7层),精通HTTP/HTTPS | 网络层至应用层 (OSI第4-7层),协议范围广 |
| 核心能力 | 深度解析HTTP流量,防御SQL注入、XSS等Web攻击 | 检测并阻断各类网络扫描、蠕虫、漏洞利用企图 |
| 流量解密 | 支持SSL/TLS卸载,可检查加密流量 | 不支持解密,无法检查加密流量中的威胁 |
| 部署方式 | 串联或旁路,通常部署在Web服务器前端 | 主要采取串联部署,直接嵌入网络数据流路径中 |
| 工作机制 | 流量代理、深度协议解析、综合检测引擎 | 特征匹配(基于签名的检测)、异常行为分析 |
1. 数据库级别操作(管理“容器”)
在进入具体数据之前,你需要先管理好“库”。
- 查看所有库:
SHOW DATABASES; - 创建库:
CREATE DATABASE demo_db CHARACTER SET utf8mb4;(建议永远带上字符集,防止乱码) - 进入库:
USE demo_db; - 删库(跑路必备/慎用):
DROP DATABASE demo_db;
2. 表级别操作(定义“结构”)
表是存放数据的核心,了解其结构是进行 SQL 注入时的第一步。
创建表:
SQL
1
2
3
4
5
6CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);查看表结构:
DESC users;或SHOW CREATE TABLE users;修改表名:
ALTER TABLE users RENAME TO member;添加字段:
ALTER TABLE users ADD email VARCHAR(100);
3. 数据操作(DML:增删改查)
这是日常开发和渗透测试中最常接触的部分。
| 动作 | 常用语法示例 |
|---|---|
| 增 (Insert) | INSERT INTO users (username, password) VALUES ('admin', '123456'); |
| 删 (Delete) | DELETE FROM users WHERE id = 1;(注意: 不带 WHERE 会清空全表) |
| 改 (Update) | UPDATE users SET password = 'new_password' WHERE username = 'admin'; |
| 查 (Select) | SELECT username, password FROM users WHERE status = 1 ORDER BY id DESC; |
4. 高级进阶:渗透与分析常用函数
如果你想从安全角度看 MySQL,以下这些“骚操作”函数非常重要:
- 获取元数据:
SELECT DATABASE();—— 查看当前数据库名。SELECT USER();—— 查看当前登录用户(判断是否是 root 权限)。SELECT VERSION();—— 查看版本(不同版本注入手法不同)。
- 字符串拼接:
CONCAT('a', 'b', 'c')—— 拼接字符串。GROUP_CONCAT(username)—— 将多行结果合并为一行(注入时一次性导出所有用户名常用)。
- 子查询与联合查询:
UNION SELECT:将两个查询结果合并。这是 SQL 注入获取非法数据的核心手段。
5. 权限管理(安全防御视角)
对应 OWASP 中提到的“权限控制失效”,在 MySQL 端应这样加固:
创建受限用户:
CREATE USER 'web_user'@'localhost' IDENTIFIED BY 'Strong_Password123!';只给 DML 权限:
GRANT SELECT, INSERT, UPDATE ON demo_db.* TO 'web_user'@'localhost';(这样即使 Web 端被注入,黑客也无法执行 DROP TABLE 或访问系统库)
在 MySQL 中,information_schema 是一个非常特殊的库。它就像是数据库的“目录索引”,记录了所有库名、表名和列名。
Linux 常见命令(分类整理、面试 + 实操必背)
一、目录与文件操作
1 | pwd # 查看当前工作目录 |
二、文件查看与编辑
1 | cat a.txt # 一次性查看全部内容 |
三、系统信息与进程
1 | uname -r # 查看内核版本 |
四、网络操作
1 | ip a # 查看网卡、IP地址 |
五、搜索与过滤
1 | grep "关键词" a.txt # 文件内过滤关键词 |
六、压缩与解压
1 | # zip |
七、权限管理
1 | chmod 755 文件名 # 修改文件权限 |
八、软件安装(常用发行版)
1 | # CentOS / RedHat |
九、开关机 & 重启
1 | reboot # 重启 |
极简背诵口诀
pwd 查路径,cd 切目录,ls 看文件;
cat 看内容,rm 删文件,cp 复制 mv 移;
ps 查进程,top 看负载,ip 看网络;
grep 过滤,find 查找,tar 压缩解压。
| 对比项 | VMware 虚拟机 | Docker 容器 |
|---|---|---|
| 虚拟化层级 | 硬件级虚拟化 | 系统层 / 进程级虚拟化 |
| 内核 | 拥有独立系统内核 | 共享宿主机内核 |
| 资源占用 | 高、笨重 | 极低、轻量 |
| 启动速度 | 分钟级 | 秒级 |
| 隔离性 | 强隔离、完全独立 | 弱隔离,内核共享 |
| 适用场景 | 多系统、环境模拟、渗透测试 | 项目部署、微服务、快速交付 |
三者如何协同工作?(典型实验场景)
想象你要测试一个存在 SQL 注入 漏洞的 Web 环境,最专业的做法如下:
- 宿主机 (Windows/macOS): 作为你的操作台。
- 虚拟机 (VMware + Ubuntu): 在 VMware 中装一个 Linux 系统,作为你的测试服务器。这样即使服务器被黑,也不会影响你的宿主机数据。
- 容器 (Docker): 在这台 Ubuntu 虚拟机里,用 Docker 启动一个 MySQL 和一个存在漏洞的 PHP 应用。
- 优势: 你可以一键删除容器并重建,环境永远保持纯净。
交换机配置
**接入交换机:**vlan划分广播域,开启STP(生成树协议),将接入端口配置为 Edge Port(边缘端口),开启DHCP Snooping(防私接路由器分配错误IP),设置信任端口和非信任端口
**核心交换机:**为每个vlan配置虚拟网关,DHCP地址配置,静态路由与黑洞路由
1 | system-view |
防火墙部署,安全域划分、NAT策略、安全访问控制
完整业务配置逻辑(极简流程)
- 接口配置 IP,划分对应安全域
- 配置域间安全策略,放行必要流量
- 配置源 NAT,让内网正常上网
- 配置目的 NAT(端口映射),发布内网服务器到外网
- 开启防护:攻击防护、ACL、黑洞、应用过滤
一、防火墙三种部署方式
1. 路由模式(三层模式)
- 接口配置 IP,充当网关、跨网段转发
- 适合:替代路由器、边界出口、多网段互联
2. 透明模式(二层模式)
- 接口无需 IP,相当于二层交换机,直接透传流量
- 适合:不改变原有网段、现有网络改造、串接防护
3. 混合模式
- 部分接口路由、部分透明,灵活组网
二、典型安全域模型
| 安全域 | 说明 | 常见接口 |
|---|---|---|
| Trust 域(信任区) | 内部办公、生产网络,安全等级最高 | 内网接口 |
| Untrust 域(非信任区) | 互联网,外部不可信网络 | 外网接口 |
| DMZ 域 | 对外提供服务的服务器(Web、邮件),安全等级中等 | DMZ 接口 |
| Management 域 | 防火墙管理接口,严格限制访问 | MGMT 接口 |
典型配置逻辑示例表
原理:基于五元组 + 应用 + 用户 + 时间做访问控制,控制安全域之间的流量放行 / 拒绝。
五元组:源 IP、目的 IP、源端口、目的端口、协议
| 源安全域 | 目的安全域 | 动作 | 服务/应用 | 安全配置 |
|---|---|---|---|---|
| Trust | Untrust | 允许 | HTTP/HTTPS | 开启内容过滤 & 源 NAT |
| Untrust | DMZ | 允许 | HTTPS (443) | 开启 IPS & 目的 NAT |
| DMZ | Untrust | 允许 | DNS/更新源 | 限制目的 IP 范围 |
| Untrust | Trust | 拒绝 | 任何 | 默认拦截一切 |
| Trust | DMZ | 允许 | 根据业务放行 |
四、NAT 策略(重点两类)
1. 源 NAT(SNAT)内网上网
作用:内网私网 IP 访问互联网时,转换成防火墙公网 IP,实现上网。
场景:Trust → Untrust 上网
原理:私网地址 转换为 防火墙出口公网 IP / 公网地址池
多对一转换、地址池转换
2. 目的 NAT(DNAT)端口映射
作用:外网用户通过公网 IP + 端口,访问内网 / DMZ 的服务器。
场景:外网访问公司网站、业务系统
原理:公网 IP: 端口 → 映射到 内网服务器私网 IP: 业务端口
常见安全工具原理 + 用法(面试 / 笔试背诵版)
涵盖:Nmap、Burp Suite、CS(Cobalt Strike)
一、Nmap 端口扫描工具
1. 作用
内网资产探测、端口开放扫描、服务版本识别、系统探测、漏洞弱端口发现,渗透测试信息收集核心工具。
2. 工作原理
发送特制数据包(TCP、UDP、ICMP),根据目标主机返回报文,判断:
- 主机是否存活
- 端口开放 / 关闭 / 过滤
- 运行服务、版本、操作系统
3. 常用命令
1 | # 1. 存活主机扫描 |
4. 扫描类型
-sS半开扫描(SYN 扫描,速度快、隐蔽)-sT全连接扫描(完整 TCP 三次握手)-sUUDP 端口扫描
二、Burp Suite 渗透测试神器(Web 安全核心)
1. 作用
针对Web 应用抓包改包、漏洞探测、暴力破解、报文分析,专门挖掘 OWASP Top10 漏洞。
2. 工作机制
- 浏览器设置代理,流量经过 Burp 本地监听端口;
- 拦截 HTTP/HTTPS 所有请求与响应;
- 手动篡改参数、Cookie、请求头;
- 重放请求、批量扫描、爆破、漏洞检测。
3. 五大核心模块
Proxy 代理模块
抓包、拦截、改包,手动测试注入、XSS、越权等漏洞。
Repeater 重发器
手动修改请求参数,反复发送、对比响应,漏洞验证核心。
Intruder 入侵模块
自动化爆破:弱密码、目录爆破、参数 fuzz、验证码爆破。
Decoder 解码器
加解密 / 编码:URL、Base64、Hex、Unicode,绕过编码检测。
Scanner 扫描器
自动扫描 Web 漏洞:SQL 注入、XSS、文件上传、命令执行等。
4. 典型使用流程
浏览器挂代理 → Proxy 抓包 → 发送到 Repeater 改包测试 → 利用 Intruder 爆破 → 漏洞验证导出报告。
三、Cobalt Strike(CS 远控 / 渗透工具)
1. 作用
内网渗透、权限维持、横向移动、后渗透控制,团队协作 APT 级工具。
2. 架构原理(C/S 架构)
- Team Server 服务端:攻击者服务器,集中管理所有主机;
- Beacon 被控端(木马):植入靶机,定时回连服务端;
- 客户端:攻击者操作界面,下发控制指令。
3. 核心功能
- 远程命令执行、文件上传下载、屏幕监控、进程管理;
- 内网横向渗透:扫描内网主机、SMB 爆破、域内渗透;
- 权限提升、持久化后门、注册表 / 计划任务维持;
- 流量加密、多种上线方式(HTTP/HTTPS/DNS),规避防火墙、杀毒。
4. 安全风险
- 生成的 Beacon 木马极易被杀毒、EDR、防火墙拦截;
- 企业安全设备重点拦截 CS 特征流量、默认端口、指纹。
四、三者用途区分(必背)
- Nmap:网络层 / 主机层,资产发现、端口服务扫描、前期信息收集。
- Burp Suite:应用层 Web 专用,网站漏洞测试、抓包改包、Web 渗透。
- CS(Cobalt Strike):后渗透 / 内网横向,主机控制、内网渗透、权限维持。
五、极简简答题总结
- Nmap:通过发送探测报文,探测网段存活主机、开放端口、服务版本,用于渗透前期资产收集。
- Burp Suite:以代理抓包为核心,拦截篡改 Web 请求,手动 + 自动化测试各类 Web 应用漏洞。
- Cobalt Strike:团队化内网渗透工具,服务端 + 被控端架构,实现主机远控、内网横向移动与权限维持。
搭建 Web 环境 + Python POC/EXP 编写 + 自动化扫描开发
(网络安全面试 / 实操简答题 + 实操框架,精简好背)
一、Web 环境搭建
1. 常见组合
- LAMP:Linux + Apache + MySQL + PHP
- LNMP:Linux + Nginx + MySQL + PHP(主流)
- Windows:phpStudy / XAMPP / WAMP 一键集成环境
2. 作用
搭建本地测试靶场,用于漏洞复现、POC 调试、脚本测试、本地安全实验。
包含:Web 服务、数据库、解析环境,快速部署动态网站与漏洞环境。
3. 核心组件作用
- Nginx/Apache:Web 服务,监听 80/443,解析分发请求
- PHP:动态脚本解析,处理页面逻辑、参数交互
- MySQL:存储网站数据、账户信息
二、Python POC / EXP 脚本编写
1. 概念区分
- POC:概念验证,只检测漏洞是否存在,不破坏、不拿权限
- EXP:漏洞利用,直接执行命令、 getshell、读取文件,实现攻击效果
2. 核心依赖库
python
运行
1 | import requests # 发送HTTP请求,最核心 |
3. 简易 POC 模板(通用结构)
- 定义目标 URL、漏洞 Payload
- 构造 HTTP 请求(GET/POST)
- 发送请求,捕获响应包
- 匹配关键字 / 状态码 / 响应长度判断漏洞
- 输出:存在漏洞 / 不存在漏洞
极简示例(Web 漏洞通用写法)
python
运行
1 | import requests |
4. 编写要点
- 增加超时、异常捕获,防止脚本卡死
- 对特殊字符 URL 编码,绕过 WAF
- 区分 GET/POST、请求头、Cookie、Token
- 正则 / 关键字匹配,提高检测准确率
三、自动化扫描开发(Python)
1. 开发思路
- 资产收集:读取 IP/URL 目标列表
- 批量 POC 检测:循环调用各类漏洞 POC
- 多线程 / 协程:提升扫描速度
- 结果输出:保存漏洞 IP、漏洞名称、请求报文
- 日志记录 + 报告生成
2. 核心技术点
- 批量遍历目标、批量请求
- 多线程
threading/ 线程池concurrent.futures - 批量指纹识别(标题、端口、特定特征)
- 漏洞 POC 批量调度,一键全量扫描
3. 自动化扫描器功能
- 批量 URL 检测
- 弱口令批量检测
- 常见 CVE 漏洞批量 POC 扫描
- 简单端口 + Web 应用结合巡检
3. 自动化扫描开发逻辑
开发一个自动化扫描器(如简易版的 AWVS 或 Xray),其核心逻辑分为四个阶段:
阶段一:目标搜集 (Crawler/Scanner)
- 使用
requests爬取页面链接。 - 识别指纹(Fingerprinting):通过
Header或favicon.ico识别目标是 CMS、Nginx 还是特定框架。
阶段二:Payload 分发 (Plugin System)
- 采用插件化设计。每一个漏洞(如 Struts2、Log4j)写成一个独立的
.py文件。 - 主程序通过
importlib动态加载这些插件,并发起请求。
阶段三:并发处理 (Concurrency)
- 单线程扫描太慢。使用 Python 的
threading或asyncio(异步 IO)提高扫描效率。 ThreadPoolExecutor是最容易上手的并发实现方式。
阶段四:结果输出
- 将发现的漏洞保存为 JSON 或 HTML 报告,方便复查。
四、简答题背诵版(考试直接写)
Web 环境搭建
通过 LNMP/LAMP 或一键集成工具,部署 Nginx/Apache、MySQL、PHP,构建动态网站测试环境,用于漏洞复现、脚本调试与安全实验。
Python POC/EXP 编写
基于 requests 库构造 HTTP 请求,拼接漏洞 Payload,通过响应内容、状态码判断漏洞;POC 用于漏洞验证,EXP 用于漏洞利用、执行恶意操作。
自动化扫描开发
使用 Python 结合多线程,批量导入目标资产,整合各类漏洞 POC,循环发送检测请求,自动化完成批量漏洞检测、结果汇总,提升渗透测试效率。