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实时阻断漏洞利用
相关推荐
冰夏之夜影1 天前
【ADB】常用按键代码:adb的所有模拟按键
adb
necessary6531 天前
explain analyze和直接执行SQL时间相差10倍?
数据库
Arenaschi1 天前
Android
android·linux·运维·笔记·其他·docker
向宇it1 天前
【Mysql知识】Mysql索引相关知识详解
数据库·mysql
肖永威1 天前
MuMu模拟器使用入门实践指南:从ADB连接到Frida动态分析
python·adb·frida·mumu
文人sec1 天前
性能测试-jmeter13-性能资源指标监控
数据库·测试工具·jmeter·性能优化·模块测试
2501_915918411 天前
HTTPS 请求抓包实战,从请求捕获到解密分析的逐步流程与工具组合(https 请求抓包、iOS 真机、SSL Pinning 排查)
android·ios·小程序·https·uni-app·iphone·ssl
草字1 天前
uniapp 打包安卓apk。同时安装正式和测试的apk。
android·uni-app
摩羯座-185690305941 天前
VVIC 平台商品详情接口高效调用方案:从签名验证到数据解析全流程
java·前端·数据库·爬虫·python