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实时阻断漏洞利用
相关推荐
聪明努力的积极向上2 小时前
【MYSQL】GET_LOCK使用方法简单解析
数据库·mysql
艾伦~耶格尔3 小时前
【MySQL体系结构详解:一条SQL查询的旅程】
数据库·学习·mysql
Lu Yao_3 小时前
golang -- viper
服务器·数据库·golang
wanhengidc3 小时前
在云手机中游戏可以自动更新吗?
运维·科技·安全·游戏·智能手机
千里马学框架3 小时前
安卓15 audio新专题发布:安卓系统手机车机音频audio子系统深入实战开发专题
android·智能手机·音视频
wanhengidc3 小时前
云端虚拟手机:云手机的原理是什么?
运维·安全·游戏·智能手机
介一安全4 小时前
【Web安全】CRLF注入攻击深度解析:原理、场景与安全测试防御指南
安全·web安全·网络安全·代码审计·安全性测试
小傅哥4 小时前
互联网大厂Java面试宝典:Spring Boot与微服务全栈提问实战解析
java·spring boot·微服务·面试·技术栈
没有了遇见4 小时前
Android 虚拟环境之虚拟环境检测<完结版>
android