Bootstrap

2025年渗透测试面试题总结-奇安信安全工程师(题目+回答)

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

目录

 奇安信安全工程师

1. MVC框架详细说明

2. SQL注入详细介绍

3. XSS和CSRF的区别

4. XXE漏洞原理

5. XXE涉及的关键函数

6. 文件上传漏洞

7. 常见Web漏洞类型

8. Apache 7.0文件上传黑名单绕过

9. 对称加密与非对称加密

10. MD5是否是非对称加密?

11. Apache可以执行PHP文件吗?

12. 反序列化漏洞原理


 

 奇安信安全工程师

1. MVC框架详细说明

MVC(Model-View-Controller) 是一种分层设计模式,用于将应用程序的逻辑、数据和界面分离,提升代码可维护性和扩展性。

  • Model(模型)
    • 职责:处理数据逻辑(如数据库操作、数据验证)。
    • 示例:用户数据存取、订单状态更新。
  • View(视图)
    • 职责:展示数据(UI界面)。
    • 示例:HTML页面、JSON响应。
  • Controller(控制器)
    • 职责:接收用户输入,协调Model和View。
    • 示例:处理HTTP请求、调用Model处理数据、返回View渲染结果。

交互流程

  1. 用户发起请求(如访问URL)。
  2. Controller接收请求,调用Model处理数据。
  3. Model返回数据结果给Controller。
  4. Controller将数据传递给View渲染,最终返回给用户。

实际应用框架

  • Spring MVC(Java):通过@Controller注解定义控制器。
  • Ruby on Rails:约定优于配置,自动路由映射。

2. SQL注入详细介绍

原理:攻击者通过构造恶意输入,篡改原始SQL语句逻辑,实现非授权数据操作。
常见类型

  1. 联合查询注入
    • 示例:' UNION SELECT username, password FROM users--
    • 利用:通过UNION合并查询结果,泄露敏感数据。
  2. 布尔盲注
    • 示例:' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE id=1)='a'--
    • 利用:通过页面返回状态差异推断数据内容。
  3. 报错注入
    • 示例:' AND updatexml(1,concat(0x7e,(SELECT version())),1)--
    • 利用:触发数据库报错并回显敏感信息。

防御措施

  • 参数化查询(核心方法):使用预编译语句(如PreparedStatement)。
  • 输入过滤:禁止特殊字符(如'--)。
  • 最小权限原则:数据库账户仅授予必要权限。

3. XSS和CSRF的区别

特征XSS(跨站脚本攻击)CSRF(跨站请求伪造)
攻击目标用户浏览器用户已登录的Web应用
利用方式注入恶意脚本到页面伪造用户身份发起请求(如转账)
防御手段输入过滤、输出编码(如HTML实体转义)CSRF Token校验、SameSite Cookie属性
典型案例盗取Cookie、页面劫持自动提交表单、修改用户设置

4. XXE漏洞原理

原理:利用XML解析器的外部实体(External Entity)功能,读取本地文件、发起网络请求或执行远程代码。
触发条件

  • XML解析器未禁用外部实体(如PHP的libxml_disable_entity_loader(false))。
  • 用户可控的XML输入(如上传XML文件、API请求参数)。

攻击示例xml

<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <data>&xxe;</data> 

防御方案

  • 禁用外部实体解析:设置LIBXML_NOENT为禁用状态。
  • 使用JSON替代XML:避免解析不可信数据。

5. XXE涉及的关键函数

  • PHP
    • simplexml_load_string():解析XML字符串。
    • DOMDocument::loadXML():加载XML文档。
  • Java
    • DocumentBuilder.parse() :解析XML输入流。
  • 防御函数
    • PHP的libxml_disable_entity_loader(true):禁用外部实体。

6. 文件上传漏洞

原理:未对上传文件类型、内容、路径进行严格校验,导致恶意文件(如Webshell)被执行。
常见绕过手段

  1. 扩展名绕过
    • 修改后缀:shell.php.jpg → 服务器仅检查最后一个后缀。
    • 大小写混淆:shell.PhP
  2. 文件内容绕过
    • 添加图片头(如GIF89a)伪装为图片。
    • 利用Apache解析漏洞:shell.php.xxx 可能被解析为PHP。

防御措施

  • 白名单校验:仅允许特定扩展名(如.jpg.png)。
  • 文件内容检测:检查文件魔数(Magic Number)。
  • 存储隔离:上传文件存放到非Web目录。

7. 常见Web漏洞类型

  1. 注入漏洞:SQL注入、命令注入。
  2. 跨站脚本(XSS):存储型、反射型。
  3. 跨站请求伪造(CSRF):伪造用户操作。
  4. 文件上传漏洞:上传恶意文件。
  5. 不安全配置:默认密码、目录遍历。
  6. 反序列化漏洞:执行恶意代码。
  7. 逻辑漏洞:越权访问、支付金额篡改。

8. Apache 7.0文件上传黑名单绕过

绕过方法

  1. 双扩展名shell.php.jpg → Apache可能忽略.jpg
  2. 特殊字符shell.php%00.jpg (需PHP版本<5.3.4)。
  3. .htaccess覆盖:上传.htaccess文件,定义解析规则(如AddType application/x-httpd-php .xxx)。
  4. 大小写混淆shell.PHp

防御建议

  • 禁用危险解析规则(如php.conf 中限制扩展名)。
  • 使用mime_content_type()检测真实文件类型。

9. 对称加密与非对称加密

类型特点常见算法
对称加密加密解密使用相同密钥,速度快AES、DES、3DES
非对称加密公钥加密、私钥解密,安全性高RSA、ECC、DSA

应用场景

  • 对称加密:大数据加密(如文件传输)。
  • 非对称加密:密钥交换、数字签名。

10. MD5是否是非对称加密?

答案:否。

  • MD5是哈希算法(Hash),用于生成固定长度摘要(如32位十六进制值),不可逆。
  • 非对称加密需满足加密/解密双向操作(如RSA)。

11. Apache可以执行PHP文件吗?

答案:是。

  • 配置方式
    • 安装PHP模块(如mod_php)。
    • 配置httpd.conf 添加AddHandler application/x-httpd-php .php
  • 注意:错误配置(如允许上传.php文件)可能导致代码执行漏洞。

12. 反序列化漏洞原理

原理:将序列化数据还原为对象时,若未校验数据来源,可能触发恶意代码执行。
触发条件

  • 存在危险的反序列化函数(如PHP的unserialize()、Java的ObjectInputStream.readObject() )。
  • 攻击者可控序列化数据。

攻击示例(PHP)php

// 恶意序列化数据 $data = 'O:8:"Example":1:{s:3:"cmd";s:10:"calc.exe";}'; unserialize($data); // 触发__destruct()或__wakeup()方法执行系统命令 

防御方案

  • 避免反序列化不可信数据。
  • 使用安全反序列化库(如Java的SerialKiller)。

;