2025年渗透测试面试题总结-拷打题库30(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
2025年渗透测试面试题总结-拷打题库30
Java反序列化原理
常用中间件漏洞
Windows/Linux日志文件路径
OOB(Out-of-Band)攻击
IDR(入侵检测与响应)
SQL注入种类
SQL注入修复
预编译原理
XSS原理
XSS种类与区别
XSS修复
XXE漏洞原理
XXE修复
SSRF漏洞原理
SSRF种类与修复
CSRF漏洞原理
CSRF修复
CORS漏洞原理
CORS修复
RCE漏洞原理
RCE修复
越权漏洞(IDOR)
2025年渗透测试面试题总结-拷打题库30
Java?反序列化的原理 谈谈自己常用的中间件漏洞 Windows和Linux的日志文件放在哪里 谈谈OOB 谈谈IDR SQL注入种类 SQL注入修复 预编译原理 XSS原理 XSS种类 XSS区别 XSS修复 XXE漏洞原理 XXE漏洞修复 服务器端请求伪造(SSRF)漏洞原理 服务器端请求伪造(SSRF)漏洞种类 服务器端请求伪造(SSRF)漏洞修复 跨站点请求伪造(CSRF)漏洞原理 跨站点请求伪造(CSRF)漏洞种类 跨站点请求伪造(CSRF)漏洞修复 跨域资源共享(CORS)漏洞原理 跨域资源共享(CORS)漏洞种类 跨域资源共享(CORS)漏洞区别 跨域资源共享(CORS)漏洞修复 远程执行代码(RCE)漏洞原理 远程执行代码(RCE)漏洞修复 越权漏洞(IDOR)漏洞原理 越权漏洞(IDOR)漏洞种类 越权漏洞(IDOR)漏洞区别 越权漏洞(IDOR)漏洞修复
Java反序列化原理
- 序列化与反序列化机制
Java通过ObjectOutputStream
将对象转为字节流(序列化),ObjectInputStream
将字节流还原为对象(反序列化)。关键接口为Serializable
。- 漏洞触发点
反序列化未受信的输入时,若目标类重写了readObject()
方法且存在危险操作(如调用Runtime.exec()
),攻击者可构造恶意对象链触发代码执行。- 常见利用链
典型如Apache Commons Collections的InvokerTransformer
、Fastjson的JNDI
注入。
常用中间件漏洞
- Apache Tomcat
- CVE-2020-1938(Ghostcat):AJP协议文件读取/包含。
- CVE-2017-12615:PUT方法任意文件上传。
- Nginx
- 配置错误导致目录遍历(如
alias
路径解析问题)。- CVE-2019-20372:内存泄露导致DoS。
- WebLogic
- CVE-2017-10271:XML反序列化漏洞。
- CVE-2020-14882:未授权命令执行。
Windows/Linux日志文件路径
- Windows
- 系统日志:
C:\Windows\System32\winevt\Logs\System.evtx
- 安全日志:
Security.evtx
(记录登录、权限变更)。- Linux
- 系统日志:
/var/log/syslog
或/var/log/messages
- 认证日志:
/var/log/auth.log
(SSH登录记录)。
OOB(Out-of-Band)攻击
- 原理
利用非直接通信通道(如DNS、HTTP)外传数据,绕过传统回显限制。例如,通过DNS查询将数据库内容发送到攻击者服务器。- 应用场景
SQL盲注(OOB注入)、XXE外带数据。- 工具
Burp Collaborator、DNSLog平台。
IDR(入侵检测与响应)
- 功能
实时监控网络流量和主机行为,识别异常模式(如SQL注入特征),并触发阻断或告警。- 技术类型
- 基于签名(规则库) vs. 基于行为分析(机器学习)。
- 典型方案
Suricata(NIDS)、EDR(终端检测响应)。
SQL注入种类
- 联合查询注入
利用UNION SELECT
合并结果集。- 报错注入
触发数据库错误回显信息(如updatexml()
函数)。- 盲注
- 布尔盲注:通过页面真/假状态判断。
- 时间盲注:利用
sleep()
延迟响应。
SQL注入修复
- 预编译(参数化查询)
彻底隔离代码与数据,如MyBatis的#{}
占位符。- 输入过滤
白名单校验数据类型(如整型强制转换)。- 最小权限原则
数据库连接账户仅分配必要权限。
预编译原理
- SQL解析阶段分离
预编译先将SQL语句发送给数据库编译为模板,参数后续以安全方式绑定,避免拼接。- 防止语义篡改
例如,输入' OR 1=1
会被视为纯字符串而非SQL逻辑。- 支持性
需数据库驱动支持(如JDBC的PreparedStatement
)。
XSS原理
- 攻击本质
未过滤的用户输入被作为HTML/JavaScript解析执行。- 触发场景
用户输入反射到页面(如搜索框)、存储到数据库(评论功能)。- 利用链
窃取Cookie、钓鱼攻击、键盘记录。
XSS种类与区别
类型 存储位置 触发方式 持久性 存储型XSS 数据库 用户访问包含恶意代码的页面 长期生效 反射型XSS URL参数 用户点击恶意链接 一次性 DOM型XSS 前端代码(不经过服务器) 前端解析URL参数触发 客户端侧
XSS修复
- 输出转义
根据上下文使用HTML实体编码(如<
转义为<
)。- CSP(内容安全策略)
限制脚本来源:Content-Security-Policy: script-src 'self'
。- HttpOnly Cookie
防止JavaScript读取敏感Cookie。
XXE漏洞原理
- XML外部实体注入
攻击者通过自定义<!ENTITY>
加载外部资源(如file:///etc/passwd
)。- 利用场景
文件读取、SSRF、DoS(递归实体爆炸)。- 危险函数
PHP的simplexml_load_string()
、Java的DocumentBuilder
。
XXE修复
- 禁用外部实体
Java:factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true)
。- 使用安全解析器
如Python的defusedxml
库。- 输入过滤
禁止<!DOCTYPE
和<!ENTITY
声明。
SSRF漏洞原理
- 攻击者控制服务器发起请求
通过篡改URL参数让服务器访问内部系统(如http://127.0.0.1:8080/admin
)。- 协议利用
利用file://
读取文件、gopher://
发送任意TCP包。- 绕过技巧
DNS重绑定、IPv6地址、URL编码。
SSRF种类与修复
- 基本SSRF
直接请求内部资源,修复:过滤输入中的内网IP和敏感协议。- 基于DNS重绑定
修复:限制DNS解析范围,设置请求超时。- 协议黑名单绕过
修复:仅允许HTTP/HTTPS协议,禁用其他协议。
CSRF漏洞原理
- 跨站请求伪造
用户登录A网站后,访问恶意B网站,B网站伪造A网站的请求(如转账操作)。- 依赖条件
- 目标站点Cookie未设置SameSite属性。
- 请求参数可预测(如订单ID)。
- 攻击类型
GET型(图片标签)、POST型(自动提交表单)。
CSRF修复
- Anti-CSRF Token
服务端生成随机Token,校验请求合法性。- SameSite Cookie属性
设置SameSite=Strict
或Lax
。- 二次验证
敏感操作需重新输入密码或短信验证。
CORS漏洞原理
- 跨域资源共享错误配置
响应头Access-Control-Allow-Origin: *
允许任意域跨域请求。- 利用场景
窃取用户数据(若withCredentials
为true)。- 攻击类型
- 反射型CORS:通过恶意页面触发跨域请求。
- 服务器信任域泛解析(如
*.example.com
)。
CORS修复
- 严格限制Origin
动态校验Origin
头,仅允许可信域名。- 避免通配符
*
尤其当请求携带Cookie时。- 限制方法/头
设置Access-Control-Allow-Methods: GET, POST
。
RCE漏洞原理
- 用户输入触发命令执行
如Java的Runtime.getRuntime().exec(input)
。- 常见入口点
反序列化、模板注入(如Freemarker)、系统命令调用。- 利用链
绕过过滤(如${@java.lang.Runtime@getRuntime().exec("calc")}
)。
RCE修复
- 输入白名单校验
仅允许特定字符(如数字、字母)。- 禁用危险函数
避免直接调用系统命令。- 沙箱隔离
使用Docker或安全沙箱运行非信任代码。
越权漏洞(IDOR)
- 原理
未校验用户权限,通过修改参数(如/user?id=123
)访问他人资源。- 类型
- 水平越权:访问同角色其他用户数据。
- 垂直越权:普通用户访问管理员功能。
- 修复
- 服务端校验资源归属。
- 使用不可预测的间接引用(如GUID替代自增ID)。