跳转至

网络安全面试题汇总

整理自奇安信、长亭等安全厂商面试真题 最后更新:2026-04-19


一、Web 漏洞基础

1. XSS 与 CSRF 的区别

对比项 XSS CSRF
全称 Cross-Site Scripting Cross-Site Request Forgery
攻击方式 注入恶意脚本,获取用户 Cookie 构造恶意链接,利用用户 Cookie 发起请求
是否能看到 Cookie 不能
发生频率 更容易发生 相对较少
危害程度 更高

2. XSS 原理与利用

XSS 攻击通过在网页中注入恶意脚本,在用户浏览器中执行,常见于表单、搜索框、评论等交互式页面。

属性可控时的利用:

通过控制 HTML 属性(如 onloadonerrorhref)注入恶意脚本:

<img src="x" onerror="alert('XSS')">

HttpOnly 绕过:

HttpOnly 禁止 JS 通过 document.cookie 读取 Cookie,绕过方式:

  • 利用 XSS 读取非 HttpOnly 的 Cookie
  • 利用 CSRF 通过服务端逻辑获取
  • 利用浏览器漏洞或中间人攻击

3. CSRF 防护

  • 使用 CSRF Token 验证表单提交
  • 同源策略限制请求来源
  • 校验 HTTP Referer 头
  • 关键操作使用二次确认

4. SQL 注入

原理: 攻击者将恶意 SQL 语句插入到应用程序的输入参数中,篡改后端数据库查询逻辑,获取数据或控制服务器。

常用关键字: SELECTUNIONWHERE

分类:

类型 说明
数字型 id=1 AND 1=1
字符型 id='1' AND '1'='1
布尔盲注 通过页面返回 true/false 判断
时间盲注 通过响应延迟判断(sleep()
报错注入 利用数据库报错信息回显数据

检测方法(以 id=1 为例):

  1. 尝试 id=1',观察是否报错
  2. 使用 order by N 确定列数
  3. 使用 limit 1,1 绕过分页获取数据

sleep() 被禁用后的替代方案:

  • BENCHMARK(10000000, SHA1('test')) — 通过计算消耗时间
  • WAITFOR DELAY '0:0:5'(MSSQL)
  • 布尔盲注逐位推断数据

绕过方式: 大小写绕过、注释绕过、关键字替换、特殊符号编码

防御措施:

  1. 参数化查询 / 预编译 SQL
  2. 输入过滤与校验
  3. WAF 防护(安全狗、阿里云盾等)
  4. 定期基线检查与漏洞扫描

5. XXE(XML 外部实体注入)

危害:

  • 读取服务器本地文件
  • 发起内网端口扫描
  • SSRF 攻击
  • 命令执行(特定条件下)

易出现的位置: 任何解析 XML 输入的功能 — Web 服务接口、文件上传(xlsx/docx)、SOAP 接口等。

攻击原理: 利用 XML 的 <!ENTITY> 定义外部实体,加载恶意资源。

6. 业务逻辑漏洞 — 任意密码重置

常见场景:

  • 验证码可爆破或可预测
  • 重置链接中的 Token 可伪造
  • 修改请求中的用户 ID 即可重置他人密码
  • 验证步骤可跳过(前端校验,后端未校验)

根因: 缺乏严格的身份验证、逻辑校验不完整、前后端校验不一致。


二、中间件漏洞

IIS

版本 漏洞
IIS 6.0 .asp; 解析漏洞(分号截断)
IIS 7.0/7.5 Fast-CGI 解析漏洞(xx.jpg/.php
通用 短文件名枚举、PUT 上传

Java 中间件

中间件 典型漏洞
Apache Struts2 远程代码执行(CVE-2017-5638 等)
Apache Tomcat 文件上传漏洞、路径穿越
Spring Framework Spring4Shell 远程代码执行
WebLogic 反序列化 RCE

其他

  • Apache:目录遍历、解析漏洞
  • Nginx:配置错误导致的目录穿越、CRLF 注入
  • Tomcat:AJP 协议漏洞(Ghostcat)

三、有害的 HTTP 请求头

请求头 风险
Referer 泄露用户来源页面信息
User-Agent 指纹识别、UA 注入
X-Forwarded-For IP 地址伪造
Authorization 包含敏感认证信息
Cookie 会话劫持
Host Host 头注入攻击

四、渗透测试思路

单一网站

信息收集
├── CDN 判断 → 有则找真实 IP
├── 旁站 / C 段扫描
├── CMS 识别 → 中间件、插件、操作系统
├── 端口探测
├── 目录扫描
├── JS 文件分析(敏感信息泄露)
└── APP、公众号等关联资产

漏洞探测
├── 常规漏洞测试(SQL/XSS/RCE/文件上传...)
├── 漏洞验证 → 能否获取 WebShell 或权限
└── 漏洞利用

权限提升
├── Windows:内核溢出、数据库提权、DLL 劫持、组策略
└── Linux:内核漏洞、SUID 提权、sudoers 配置错误

日志清理

网段/区域

使用 Goby 等工具批量扫描资产,批量打点,对薄弱点进行漏洞探测。

漏洞扫描工具

  • Nessus — 系统漏洞扫描
  • AWVS — Web 漏洞扫描
  • AppScan — Web 应用安全测试

五、应急响应

流程

收集信息 → 判断类型 → 深入分析 → 清理处置 → 产出报告
  1. 收集信息:搜集客户信息和中毒信息,备份现场
  2. 判断类型:勒索病毒、挖矿、断网、DDoS 等
  3. 深入分析:日志分析、进程分析、启动项分析、样本分析
  4. 清理处置:杀进程、删文件、打补丁、修复
  5. 产出报告:输出完整的安全事件报告

Windows 应急

检查项 命令/方法
可疑账号 net userlusrmgr.msc 检查隐藏/克隆账号
系统日志 eventvwr.msc 查看登录时间和异常
异常端口 netstat -ano 检查可疑连接
定位进程 tasklist \| findstr "PID"
启动项 msconfig 检查可疑启动项
计划任务 任务计划程序中检查异常任务
系统补丁 systeminfo 查看版本和补丁
自动查杀 360、火绒剑;WebShell 用 D 盾、河马
日志分析 360 星图、ELK

Linux 应急

检查项 命令
异常账号 cat /etc/passwd(检查 nologin)
当前登录 who(tty 本地 / pts 远程)、wuptime
历史命令 history(配置显示 IP 和时间)
可疑端口 netstat -antlp \| more
进程分析 ps aux \| grep PIDls -l /proc/PID/exe
运行级别 vi /etc/inittab,检查 /etc/rc.d/rc[0~6].d
定时任务 crontab -l
异常服务 chkconfig --list
安全日志 grep + awk 分析 /var/log/secure
后门查杀 chkrootkit、rkhunter、ClamAV
WebShell D 盾、河马,或手工搜关键函数(evalsystemshell_exec

六、流量分析与 WebShell 特征

基本方法

将流量包导入 Wireshark,使用过滤规则分析。

冰蝎(Behinder)流量特征

  • 基于 Java 开发的动态加密 WebShell 客户端
  • 通信分两阶段:密钥协商 + 加密传输
  • 流量经过 AES 加密,常规 WAF 难以检测

七、代码审计

PHP 常见考点

考点 说明
弱类型比较 0 == '0' 为 true,可绕过逻辑判断
反序列化 unserialize() 处理恶意数据导致 RCE
命令注入 system()exec()passthru() 未过滤输入
文件包含 include($_GET['file']) 导致 LFI/RFI

Python 框架漏洞

框架 常见漏洞
Django XSS、CSRF、SQL 注入
Flask SSTI 模板注入、路径穿越
FastAPI 路径穿越、参数校验绕过