2025年渗透测试面试题总结-42(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

目录

PHP安全审计要点

[1. 常见漏洞对应函数](#1. 常见漏洞对应函数)

[2. PHP安全特性](#2. PHP安全特性)

[3. 代码审计方法论](#3. 代码审计方法论)

Java安全深度解析

[1. 命令执行方式](#1. 命令执行方式)

[2. 反序列化原理](#2. 反序列化原理)

[3. ysoserial利用链示例](#3. ysoserial利用链示例)

[4. Shiro反序列化漏洞](#4. Shiro反序列化漏洞)

[5. 核心机制理解](#5. 核心机制理解)

[6. 代码审计重点](#6. 代码审计重点)

Python安全实践

[1. 非脚本工具开发](#1. 非脚本工具开发)

[2. Web框架安全](#2. Web框架安全)

[3. 代码审计关键](#3. 代码审计关键)

通用审计建议

复制代码
## PHP
1. 常见漏洞对应函数(挨个问)
- 命令执行
- 代码执行
- 文件包含
- 文件上传
- 文件删除
- SSRF
- ...
2. PHP安全特性有关注吗
3. 代码审计(mvc/非mvc)

## Java
1. Java执行命令的几种方式
2. Java反序列化的原理
3. 讲讲yso的链
4. Shiro 反序列化原理
5. 反射,代理,类加载这些熟悉吗
6. 代码审计

## Python
1. 是否写过非脚本的工具
2. Web框架(flask/django)
3. 代码审计

PHP安全审计要点

1. 常见漏洞对应函数
漏洞类型 危险函数/场景 审计要点
命令执行 system(), exec(), passthru(), shell_exec(), 反引号 `` 用户输入直接拼接命令参数
代码执行 eval(), assert(), preg_replace(/e), call_user_func(), create_function() 动态执行用户可控字符串
文件包含 include(), require(), include_once(), require_once() 未过滤的路径参数(LFI/RFI)
文件上传 move_uploaded_file() + 临时文件路径 未验证文件类型/内容,目录遍历
文件删除 unlink() 用户可控路径未校验
SSRF file_get_contents(), curl_exec(), fsockopen() 用户控制URL协议(如php://input
反序列化 unserialize() 魔术方法(__wakeup(), __destruct()
2. PHP安全特性
  • 类型弱校验===== 区别(如 "0e123" == "0" 为true)
  • 魔术引号废弃 (PHP 5.4+):需手动转义(addslashes() vs mysqli_real_escape_string()
  • 安全配置
    open_basedir(目录隔离)、disable_functions(禁用高危函数)、allow_url_include=Off
  • Filter扩展filter_var($input, FILTER_VALIDATE_URL) 过滤输入
3. 代码审计方法论
  • 非MVC架构
    追踪用户输入($_GET/$_POST) → 危险函数调用链,关注全局过滤缺失
  • MVC框架(如Laravel)
    重点审查路由控制器 → 中间件过滤 → ORM/SQL构建(避免原生SQL拼接)

Java安全深度解析

1. 命令执行方式
复制代码
java`// 1. Runtime执行 Runtime.getRuntime().exec("cmd /c whoami"); // 2. ProcessBuilder(更灵活) new ProcessBuilder("cmd", "/c", "calc").start(); // 3. JNI调用本地库(需编译) native void executeCommand(String cmd);`
2. 反序列化原理
  • 核心机制
    ObjectInputStream.readObject() 自动调用对象的readObject()readExternal()方法
  • 利用条件
    靶库中存在可串联的Gadget链(如InvokerTransformer + ConstantTransformer
3. ysoserial利用链示例
  • CommonsCollections链
    AnnotationInvocationHandlerLazyMap.get()ChainedTransformer.transform()
  • Fastjson链
    JdbcRowSetImplJNDI注入(lookup()触发LDAP/RMI请求)
4. Shiro反序列化漏洞
  • 根源 :Cookie中rememberMe字段使用AES-CBC加密
    → 密钥硬编码 → 伪造序列化数据触发readObject()
  • 利用:结合CommonsBeanutils等链构造内存马
5. 核心机制理解
  • 反射Class.forName(), Method.invoke() 动态加载/调用类
  • 动态代理InvocationHandler 拦截方法调用(AOP攻击面)
  • 类加载 :双亲委派机制 → 突破需自定义ClassLoader(如Tomcat热部署)
6. 代码审计重点
  • 框架入口 :Struts2的Action参数、Spring MVC的@RequestMapping
  • 表达式注入 :OGNL/SpEL表达式解析(如${@runtime.exec(...)}
  • 三方库漏洞:Log4j JNDI、Fastjson autoType等

Python安全实践

1. 非脚本工具开发
  • 场景:网络扫描器(Scapy)、GUI工具(PyQt)、RPC服务(gRPC)
  • 安全实践
    使用subprocess代替os.system() ,禁用pickle序列化协议
2. Web框架安全
框架 高危点 防御方案
Flask render_template_string()(SSTI) 禁止动态模板,用Jinja2沙箱
Django eval()执行用户输入 启用CSRF中间件,ORM防SQL注入
3. 代码审计关键
  • 输入校验input()sanitize(如html.escape()
  • 依赖风险requirements.txt 包含漏洞库(如requests SSRF)
  • 反序列化pickle.loads() → 重写__reduce__执行命令

通用审计建议

  1. 输入输出控制
    • 白名单校验 > 黑名单过滤
    • 输出编码(如HTML实体化)
  2. 最小权限原则
    • PHP:禁用exec函数
    • Java:配置SecurityManager沙箱
  3. 依赖管理
    • 定期扫描composer.json/pom.xml/requirements.txt
  4. 纵深防御
    • WAF拦截异常请求
    • RASP实时阻断漏洞利用
相关推荐
工程师老罗6 小时前
如何在Android工程中配置NDK版本
android
陌上丨7 小时前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
Hello.Reader7 小时前
Flink ZooKeeper HA 实战原理、必配项、Kerberos、安全与稳定性调优
安全·zookeeper·flink
AI_56787 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
ccecw7 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
JH30737 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
数据知道7 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
智驱力人工智能7 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
数据与后端架构提升之路8 小时前
论系统安全架构设计及其应用(基于AI大模型项目)
人工智能·安全·系统安全
麦聪聊数据9 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构