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链 :
    AnnotationInvocationHandler → LazyMap.get() → ChainedTransformer.transform()
  • Fastjson链 :
    JdbcRowSetImpl → JNDI注入(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实时阻断漏洞利用
相关推荐
ClickHouseDB3 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906943 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
2501_915106323 小时前
抓包抓到乱码或压缩字节怎么解析,TraceEagle五种查看模式和一键解码
网络协议·计算机网络·网络安全·ios·adb·https·udp
Ruiery3 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
时间售卖铺4 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw4 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社5 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙5 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
mennekes6 小时前
临时用电线路标识:插头颜色、钟面标识配套规范
运维·网络·科技·安全·制造
captain3767 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis