2025年渗透测试面试题总结-小某鹏汽车-安全工程师(题目+回答)

发布于:2025-03-10 ⋅ 阅读:(17) ⋅ 点赞:(0)

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

目录

小鹏汽车-安全工程师

一、XXE漏洞与SSRF漏洞

1. XXE(XML External Entity)漏洞

2. SSRF(Server-Side Request Forgery)

二、代码审计流程

1. 环境搭建

2. 敏感入口分析

3. 漏洞模式匹配

4. 自动化辅助

三、数据库类型判断

1. 语法差异法

2. 系统函数探测

3. 错误信息法

四、SQL注入分类与利用

1. 注入类型

2. 利用链扩展

五、SQL注入原理与防御

1. 原理

2. 防御方案

六、护网行动与安全产品理解

1. 护网实战职责

2. 安全产品能力矩阵

七、内网渗透思路

1. 信息收集阶段

2. 横向移动技术

3. 权限维持手段

4. 跨域攻击


 

小某鹏汽车-安全工程师

xxe漏洞是什么?ssrf是什么?
聊一聊代码审计得流程
怎么判断一个数据库是mysql还是oracle?
sql注入得种类,利用方式?
sql注入原理与防御思路
护网的时候主要做了什么,聊一聊对安全产品的理解
内网渗透了解吗?聊一聊内网渗透的思路

一、XXE漏洞与SSRF漏洞

1. XXE(XML External Entity)漏洞
  • 定义:攻击者通过篡改XML文件中的实体定义,利用外部实体引用读取服务器文件、发起网络请求或执行远程代码。
  • 触发场景:XML解析器未禁用外部实体解析(如PHP的LIBXML_NOENT未启用)。
  • 利用方式xml
    <!-- 读取本地文件 --> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <data>&xxe;</data> <!-- 发起SSRF请求 --> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://内网IP:端口"> ]> 
  • 危害:敏感文件泄露、内网探测、远程代码执行(需结合其他漏洞)。
2. SSRF(Server-Side Request Forgery)
  • 定义:服务端未校验用户输入,攻击者构造恶意请求使服务器发起非预期的内部或外部请求。
  • 常见触发点:URL参数(如图片下载、网页代理功能)。
  • 利用场景
    • 攻击内网服务(如Redis未授权访问)
    • 云服务器元数据泄露(如AWS的169.254.169.254
    • 绕过IP白名单(通过302跳转或DNS重绑定)
  • 防御:禁用协议(如file://gopher://)、校验请求目标IP范围。

二、代码审计流程

1. 环境搭建
  • 使用IDE(如PhpStorm)全局搜索敏感函数(如exec()mysql_query())。
  • 配置调试环境(如Xdebug)动态跟踪数据流。
2. 敏感入口分析
  • 输入点追踪:关注$_GET$_POST、文件上传等未过滤的输入。
  • 框架特性:检查路由解析(如Spring MVC的@RequestMapping)、模板引擎(如Freemarker)是否启用沙箱。
3. 漏洞模式匹配
  • SQL注入:查找拼接SQL语句的代码段(如"SELECT * FROM users WHERE id=" + userInput)。
  • 反序列化:识别ObjectInputStream.readObject() 调用点。
  • 逻辑漏洞:如订单支付金额未校验、权限校验缺失(如未验证isAdmin标志)。
4. 自动化辅助
  • 工具使用
    • 静态分析:Fortify(商业)、Semgrep(开源规则库)
    • 动态插桩:覆盖测试工具(如JaCoCo)定位未覆盖代码路径。

三、数据库类型判断

1. 语法差异法
  • 注释符
    • MySQL:#-- (需有空格)
    • Oracle:--
  • 字符串拼接
    • MySQL:CONCAT('a','b')
    • Oracle:'a' || 'b'
2. 系统函数探测
  • 版本函数
    • MySQL:SELECT version()
    • Oracle:SELECT banner FROM v$version
  • 时间函数
    • MySQL:SLEEP(5)
    • Oracle:DBMS_LOCK.SLEEP(5)
3. 错误信息法
  • 故意触发错误:
    • MySQL错误示例:You have an error in your SQL syntax
    • Oracle错误示例:ORA-00933: SQL command not properly ended

四、SQL注入分类与利用

1. 注入类型
类型 特征 利用工具示例
联合查询注入 页面回显数据 sqlmap -u "url" --union
布尔盲注 页面响应状态差异(True/False) 手工构造AND 1=1
时间盲注 基于时间延迟判断 IF(1=1,SLEEP(5),0)
报错注入 数据库错误信息回显 extractvalue(1,concat(0x7e,version()))
堆叠查询 支持多语句执行(如PHP+MySQLi) ; INSERT INTO logs VALUES ('hacked')
2. 利用链扩展
  • 文件读写:MySQL的LOAD_FILE()INTO OUTFILE(需secure_file_priv为空)。
  • OS命令执行:Oracle的DBMS_SCHEDULER创建作业执行系统命令。

五、SQL注入原理与防御

1. 原理
  • 根本原因:用户输入被拼接为SQL语句的一部分,如:java
    String query = "SELECT * FROM users WHERE id='" + userInput + "'";
  • 攻击载荷:闭合引号并插入恶意代码,如' UNION SELECT 1,password FROM users--
2. 防御方案
  • 参数化查询(核心方案):python
    cursor.execute("SELECT * FROM users WHERE id = %s", (user_input,))
  • 纵深防御
    • WAF规则:过滤UNIONSLEEP等关键字。
    • 权限控制:数据库账户遵循最小权限原则(禁用FILE权限)。
    • 错误处理:生产环境关闭详细错误回显。

六、护网行动与安全产品理解

1. 护网实战职责
  • 前期准备:资产梳理(使用Nexpose扫描暴露面)、漏洞修复(优先处理CVSS 9.0+漏洞)。
  • 防守工作
    • 流量监控:分析全流量日志(如ELK堆栈)定位异常请求。
    • 蜜罐部署:使用HFish伪装脆弱服务诱捕攻击者。
  • 应急响应:隔离被攻陷主机、取证分析(使用Volatility提取内存数据)。
2. 安全产品能力矩阵
产品类型 优势场景 局限性
WAF 快速拦截已知攻击模式 无法防御0day/逻辑漏洞
EDR 端点行为监控(如勒索软件) 资源占用高
NDR 网络流量异常检测(如C2通信) 依赖规则库更新
态势感知 多源日志关联分析 误报率高需人工验证

七、内网渗透思路

1. 信息收集阶段
  • 主机发现:ARP扫描(arp-scan)、NetBIOS查询。
  • 服务探测:Nmap脚本(smb-os-discovery.nse )识别操作系统。
  • 凭据提取
    • Windows:Mimikatz抓取LSASS内存密码。
    • Linux:查找/etc/shadow备份文件。
2. 横向移动技术
  • 协议利用
    • SMB:利用永恒之蓝(MS17-010)攻击未打补丁主机。
    • RDP:密码喷洒攻击(使用Hydra批量测试弱口令)。
  • 票据传递:Kerberos黄金票据伪造(需域控KRBTGT账户哈希)。
3. 权限维持手段
  • 后门植入
    • Windows:计划任务添加持久化启动项。
    • Linux:修改.bashrc或安装SSH后门。
  • 隐蔽隧道
    • DNS隧道工具:DNScat2
    • ICMP隧道:icmpsh
4. 跨域攻击
  • 域信任漏洞:利用AD域间信任关系(如SID History滥用)。
  • 组策略利用:通过GPO推送恶意脚本到所有域机器。