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

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、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. 框架审计重点
框架常见漏洞审计关注点
SpringSpEL 注入、CVE-2022-22965参数绑定、表达式解析
Fastjson反序列化漏洞(<=1.2.47)AutoType 校验逻辑
Shiro硬编码密钥、RememberMe 反序列化Cookie 加密算法与密钥强度
Struts2OGNL 表达式注入拦截器参数过滤机制
HibernateSQL 注入(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. 漏洞复现经验
漏洞类型代表案例关键点
RCELog4j2 (CVE-2021-44228)JNDI 服务构造(LDAP)
反序列化Fastjson (CVE-2022-25845)绕过 AutoType 校验
SSRFWeblogic (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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值