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

安全面试3

文章目录

  • 一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名
  • 用转义字符防御时,如果遇到数据库的列名或是表名本身就带着特殊字符,应该怎么做
  • 宽字节注入
    • 原理
    • 防御宽字节注入的方法
  • 基于黑白名单的修复,现在的生产基本都是用的docker,ip是随时变的,而且docker重启后可能什么都不一样了,怎么做一个修复
  • SSRF漏洞出现点
  • 木马查杀流程
  • sqlserver提权方式
  • mysql的提权
  • redis的漏洞
  • php原生的敏感函数
    • 代码执行类函数
    • 系统命令执行类函数
    • 文件操作类函数
    • 数据库操作类函数
    • 其他敏感函数

一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名

  1. 通过公开信息手动收集:访问该单位的官方网站,通常在页面底部会列出其相关的其他域名。
  2. 通过域名注册信息查询:WHOIS查询:通过WHOIS工具(如 Whois Lookup)查询单位拥有的域名。输入已知的域名,查看注册信息中的“Registrant Name”或“Organization”字段,可能会发现其他域名。
  3. 通过SSL证书信息
  4. 通过搜索引擎:site:example.com “单位名称”:查找与单位名称相关的域名。
    intext:“单位名称” inurl:about:查找单位介绍页面中提到的域名。
  5. 域名监控工具:使用工具如 DomainTools 或 Farsight DNSDB,监控单位名称或关键词相关的域名注册情况。

用转义字符防御时,如果遇到数据库的列名或是表名本身就带着特殊字符,应该怎么做

  1. 大多数数据库系统提供了标识符引用符,用于处理包含特殊字符的列名或表名。(mysql使用反引号)
  2. 使用ORM框架:原理:ORM(对象关系映射)框架会自动处理列名和表名的引用问题,避免手动拼接SQL语句。

宽字节注入

原理

某些字符集(如GBK、BIG5)使用多字节编码,即一个字符可能由多个字节组成。例如,在GBK编码中,’ 的单字节编码是 0x27,而 0xbf27 是一个合法的宽字符。
当应用程序对用户输入进行转义时(如将 ’ 转义为 '),如果数据库使用宽字符集,攻击者可以构造特殊输入,使转义字符 \ 被“吃掉”。

防御宽字节注入的方法

  1. 统一字符集
  2. 禁用宽字符集
  3. 正确使用转义函数:使用数据库驱动的参数化查询或预处理语句,而不是手动转义。
  4. 编码转换:在接收到用户输入后,将其转换为统一的字符集(如UTF-8)。

基于黑白名单的修复,现在的生产基本都是用的docker,ip是随时变的,而且docker重启后可能什么都不一样了,怎么做一个修复

  1. 使用服务标识代替 IP 地址:在容器化环境中,IP 地址是动态分配的,但服务名称(Service Name)或容器名称是相对稳定的。可以通过服务标识(如服务名、标签、元数据)来替代 IP 地址。
  2. 动态更新黑白名单:结合容器编排平台(如 Kubernetes、Docker Swarm)的 API,获取容器的实时 IP 并更新到黑白名单中。
  3. 基于标签或元数据的黑白名单:为容器打上标签(Labels)或元数据(Metadata),并根据这些标签动态生成黑白名单。

SSRF漏洞出现点

  1. 分享:通过URL地址分享网页内容
  2. 转码服务(通过URL地址把原地址的网页内容调优,使其适合手机屏幕的浏览)
  3. 在线翻译
  4. 图片加载与下载:通过URL地址加载或下载图片
  5. 图片、文章收藏功能
  6. 未公开的api实现及调用URL的功能
  7. 从URL关键字中寻找

木马查杀流程

  1. 查看异常连接
  2. 查看进程名字及服务
  3. 删除进程并查看系统配置
  4. 查找病毒注册表开机启动项
  5. 删除病毒源文件
  6. 删除一些后门程序之类的

sqlserver提权方式

  1. xp_cmdshell扩展存储过程提权
  2. xp_dirtree写入文件提权
  3. sp_oacreate提权
  4. xp_regwrite映像
  5. 沙盒提权
  6. CLR提权
  7. Agent Job提权
  8. R和python脚本执行提权
  9. 差异备份写入webshell

mysql的提权

  1. 利用 UDF(用户定义函数)提权:MySQL 支持用户定义函数(UDF),攻击者可以通过加载恶意的共享库(如 .so 或 .dll 文件)来执行系统命令。上传恶意共享库到服务器。
    使用 CREATE FUNCTION 加载共享库。
    调用 UDF 执行系统命令。
  2. 利用 MySQL 日志文件提权:MySQL 的日志文件(如慢查询日志、通用日志)可以被用来写入恶意代码,从而执行系统命令。启用日志功能并设置日志文件路径。
    写入恶意代码到日志文件。
    通过日志文件执行系统命令。
  3. 利用 MySQL 配置文件提权:MySQL 配置文件(如 my.cnf)可能被攻击者修改,从而加载恶意插件或修改权限。
  4. 利用 MySQL 弱口令提权:如果 MySQL 用户使用弱口令,攻击者可以通过暴力破解获取管理员权限。
  5. 利用 MySQL 漏洞提权
  6. 利用操作系统提权:如果 MySQL 以 root 权限运行,攻击者可以通过 MySQL 提权到操作系统 root 权限。
  7. 利用 SQL 注入提权:通过 SQL 注入漏洞,攻击者可以执行管理员操作(如创建用户、修改权限)。

redis的漏洞

  1. 未授权访问漏洞:Redis 默认监听在所有网络接口(0.0.0.0)且无需密码认证,攻击者可以直接访问 Redis 服务并执行任意操作。
  2. SSH 密钥写入漏洞:攻击者可以通过 Redis 的未授权访问漏洞,将公钥写入目标服务器的 ~/.ssh/authorized_keys 文件,从而获取 SSH 访问权限。
  3. 主从复制漏洞:攻击者可以通过 Redis 的主从复制功能,将恶意数据同步到从节点,从而实现数据篡改或 RCE。
  4. Lua 沙盒逃逸漏洞:Redis 的 Lua 脚本执行环境可能存在沙盒逃逸漏洞,攻击者可以执行任意系统命令。
  5. 持久化文件漏洞:Redis 的持久化文件(如 RDB 或 AOF)可能被篡改,导致数据损坏或恶意代码执行。
  6. 信息泄露漏洞:Redis 的 INFO 命令可能泄露敏感信息(如服务器配置、内存使用情况等)。
  7. Redis 6.0 的 ACL 功能:Redis 6.0 引入了访问控制列表(ACL)功能,但配置不当可能导致权限绕过。
  8. Redis 暴露在公网:Redis 服务暴露在公网,可能被攻击者扫描并利用。

php原生的敏感函数

代码执行类函数

  1. eval()
  2. assert()
  3. create_function()
  4. preg_replace():创建一个匿名函数。create_function(‘’, $_GET[‘code’]); 可能导致代码执行。

系统命令执行类函数

  1. exec()
  2. system()
  3. passthru()
  4. shell_exec()
  5. popen()

文件操作类函数

  1. include()
  2. include_once()
  3. require()
  4. require_once()
  5. file_get_contents()
  6. fopen()
  7. unlink()
  8. move_uploaded_file()

数据库操作类函数

  1. mysql_query()
  2. mysqli_query()
  3. pg_query()

其他敏感函数

  1. extract():变量覆盖
  2. parse_str():变量覆盖
  3. unserialize()

相关文章:

安全面试3

文章目录 一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名用转义字符防御时,如果遇到数据库的列名或是表名本身就带着特殊字符,应该怎么做宽字节注入原理防御宽字节注入的方法 基于黑白名单的修复&…...

软件测试:1、单元测试

1. 单元测试的基本概念 单元(Unit):软件系统的基本组成单位,可以是函数、模块、方法或类。 单元测试(Unit Testing):对软件单元进行的测试,验证代码的正确性、规范性、安全性和性能…...

球队训练信息管理系统设计与实现(代码+数据库+LW)

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装球队训练信息管理系统软件来发挥其高效地信息处理的作用&a…...

【Bluedroid】AVRCP 连接源码分析(二)

接着上一篇【Bluedroid】AVRCP 连接源码分析(一)-CSDN博客,继续AVRCP连接的源码分析。 getcapabilities_cmd packages/modules/Bluetooth/system/btif/src/btif_rc.cc /***************************************************************************** Function …...

OSS(对象存储服务)

OSS(对象存储服务) 是一种用于存储和管理非结构化数据的云存储服务,其核心设计面向海量数据的高扩展性、高可靠性和低成本存储。以下从定义、核心原理、架构特点和应用场景等方面详细介绍: 一、什么是OSS? OSS&#x…...

《深入理解JVM》实战笔记(二): 类加载机制与类加载器

序言 Java 语言的强大之处之一在于其动态加载的能力,使得 Java 程序可以在运行时加载新的类,而不需要在编译时确定所有的类信息。这一切都离不开 JVM 的类加载机制。本篇博客将详细探讨 JVM 的类加载过程以及类加载器的工作原理,帮助你更深入…...

ChromeDriver下载

平时为了下个驱动,到处找挺麻烦,收集了很多无偿分享给需要的人,仅供学习和交流。 ChromeDriver 102.0.5005.61 ChromeDriver 105.0.5195.102 ChromeDriver 108.0.5359.71 ChromeDriver 111.0.5563.64 ChromeDriver 116.0.5845.97 Chrom…...

《深度学习实战》第1集:深度学习基础回顾与框架选择

本专栏系列博文旨在帮助读者从深度学习的基础知识逐步进阶到前沿技术,涵盖理论、实战和行业应用。每集聚焦一个核心知识点,并结合实际项目进行实践,避免空谈理论,简洁明快,快速切入代码,所有代码都经过验证…...

Docker 部署AnythingLLM

两个指令搞定 1.下载镜像 docker pull mintplexlabs/anythingllm 2.运行容器 export STORAGE_LOCATION$HOME/anythingllm mkdir -p $STORAGE_LOCATION chmod -R 777 $STORAGE_LOCATION touch "$STORAGE_LOCATION/.env" docker run -d -p 3001:3001 \ --cap-add SY…...

泰山派RK3566移植QT,动鼠标时出现屏幕闪烁

总结: 交叉编译到 泰山派rk3566跑调海康摄像头的qt应用程序失败了。 X11无效窗口。 移植QT注意 屏幕分辨率不要改。改了执行QT的时候,framebuffer识别不出设备。 命令行安装QT-Creator sudo install 类似的指令安装Qt-Creator时,可能找不到编…...

关于Java 反射的简单易懂的介绍

目录 #0.总览 #1. 类的反射 ①介绍 ②获取 ③作用 获取构造函数: 创建实例: 字段操作: 方法操作: 获取修饰符: #2.总结 #0.总览 反射,官方是这样介绍它的: Reflection is a …...

市场趋势中突破确认的多维度判断方法

波动率突破策略是众多交易者广泛采用的重要交易策略之一。而在这一策略中,准确判断突破是否有效,是决定交易成败的关键环节。仅仅依据单一因素来确认突破,往往会使交易者陷入误判的困境,导致不必要的损失。因此,采用多…...

网络空间安全(2)应用程序安全

前言 应用程序安全(Application Security,简称AppSec)是一个综合性的概念,它涵盖了应用程序从开发到部署,再到后续维护的整个过程中的安全措施。 一、定义与重要性 定义:应用程序安全是指识别和修复应用程序…...

【MyBatis】CRUD、配置解析、ResultMap、分页实现

目录标题 1、Mybatis简介1.1、什么是MyBatis1.2、持久化1.3、持久层1.4、为什么需要MybatisMyBatis的优点 2.1、代码演示搭建实验数据库导入MyBatis相关 jar 包 03、CRUD操作3.1、namespace3.2、select3.3、insert3.4、update3.5、delete 04、MyBatis配置解析4、配置解析4.3、m…...

Linux系统编程之高级信号处理

概述 在前一篇文章中,我们介绍了signal函数、sigaction函数等基本的信号处理方法。在本篇中,我们将介绍信号处理的一些高级用法,包括:阻塞与解除阻塞、定时器等。 阻塞与解除阻塞 有时候,我们不希望某个信号立即被处理…...

深度学习驱动的车牌识别:技术演进与未来挑战

一、引言 1.1 研究背景 在当今社会,智能交通系统的发展日益重要,而车牌识别作为其关键组成部分,发挥着至关重要的作用。车牌识别技术广泛应用于交通管理、停车场管理、安防监控等领域。在交通管理中,它可以用于车辆识别、交通违…...

钉钉快捷免登录 通过浏览器打开第三方系统,

一、钉钉内跳转至浏览器的实现 使用钉钉JSAPI的跳转接口 在钉钉内通过dd.biz.navigation.openLink方法强制在系统浏览器中打开链接。此方法需在钉钉开发者后台配置应用权限,确保应用具备调用该API的资格37。 示例代码: dd.ready(() > {dd.biz.navigat…...

力扣——杨辉三角

题目链接&#xff1a; 链接 题目描述&#xff1a; 思路&#xff1a; 直接找规律&#xff0c;按照数学的思路来 每一行的列最大索引 < 行索引 实现代码&#xff1a; class Solution {public List<List<Integer>> generate(int numRows) {List<List<In…...

stm32108键C-B全调性_动态可视化乐谱钢琴

108键全调性钢琴 一 基本介绍1 项目简介2 实现方式3 项目构成 二 实现过程0 前置基本外设驱动1 声音控制2 乐谱录入&基础乐理3 点阵屏谱点动态刷新4 项目交互控制5 录入新曲子过程 三 展示&#xff0c;与链接视频地址1 主要功能函数一览2 下载链接3 视频效果 一 基本介绍 …...

mysql之规则优化器RBO

文章目录 MySQL 基于规则的优化 (RBO)&#xff1a;RBO 的核心思想&#xff1a;模式匹配与规则应用RBO 的主要优化规则查询重写 (Query Rewrite) / 查询转换 (Query Transformation)子查询优化 (Subquery Optimization) - RBO 的重中之重非相关子查询 (Non-Correlated Subquery)…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...