安全面试3
文章目录
- 一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名
- 用转义字符防御时,如果遇到数据库的列名或是表名本身就带着特殊字符,应该怎么做
- 宽字节注入
- 原理
- 防御宽字节注入的方法
- 基于黑白名单的修复,现在的生产基本都是用的docker,ip是随时变的,而且docker重启后可能什么都不一样了,怎么做一个修复
- SSRF漏洞出现点
- 木马查杀流程
- sqlserver提权方式
- mysql的提权
- redis的漏洞
- php原生的敏感函数
- 代码执行类函数
- 系统命令执行类函数
- 文件操作类函数
- 数据库操作类函数
- 其他敏感函数
一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名
- 通过公开信息手动收集:访问该单位的官方网站,通常在页面底部会列出其相关的其他域名。
- 通过域名注册信息查询:WHOIS查询:通过WHOIS工具(如 Whois Lookup)查询单位拥有的域名。输入已知的域名,查看注册信息中的“Registrant Name”或“Organization”字段,可能会发现其他域名。
- 通过SSL证书信息
- 通过搜索引擎:site:example.com “单位名称”:查找与单位名称相关的域名。
intext:“单位名称” inurl:about:查找单位介绍页面中提到的域名。 - 域名监控工具:使用工具如 DomainTools 或 Farsight DNSDB,监控单位名称或关键词相关的域名注册情况。
用转义字符防御时,如果遇到数据库的列名或是表名本身就带着特殊字符,应该怎么做
- 大多数数据库系统提供了标识符引用符,用于处理包含特殊字符的列名或表名。(mysql使用反引号)
- 使用ORM框架:原理:ORM(对象关系映射)框架会自动处理列名和表名的引用问题,避免手动拼接SQL语句。
宽字节注入
原理
某些字符集(如GBK、BIG5)使用多字节编码,即一个字符可能由多个字节组成。例如,在GBK编码中,’ 的单字节编码是 0x27,而 0xbf27 是一个合法的宽字符。
当应用程序对用户输入进行转义时(如将 ’ 转义为 '),如果数据库使用宽字符集,攻击者可以构造特殊输入,使转义字符 \ 被“吃掉”。
防御宽字节注入的方法
- 统一字符集
- 禁用宽字符集
- 正确使用转义函数:使用数据库驱动的参数化查询或预处理语句,而不是手动转义。
- 编码转换:在接收到用户输入后,将其转换为统一的字符集(如UTF-8)。
基于黑白名单的修复,现在的生产基本都是用的docker,ip是随时变的,而且docker重启后可能什么都不一样了,怎么做一个修复
- 使用服务标识代替 IP 地址:在容器化环境中,IP 地址是动态分配的,但服务名称(Service Name)或容器名称是相对稳定的。可以通过服务标识(如服务名、标签、元数据)来替代 IP 地址。
- 动态更新黑白名单:结合容器编排平台(如 Kubernetes、Docker Swarm)的 API,获取容器的实时 IP 并更新到黑白名单中。
- 基于标签或元数据的黑白名单:为容器打上标签(Labels)或元数据(Metadata),并根据这些标签动态生成黑白名单。
SSRF漏洞出现点
- 分享:通过URL地址分享网页内容
- 转码服务(通过URL地址把原地址的网页内容调优,使其适合手机屏幕的浏览)
- 在线翻译
- 图片加载与下载:通过URL地址加载或下载图片
- 图片、文章收藏功能
- 未公开的api实现及调用URL的功能
- 从URL关键字中寻找
木马查杀流程
- 查看异常连接
- 查看进程名字及服务
- 删除进程并查看系统配置
- 查找病毒注册表开机启动项
- 删除病毒源文件
- 删除一些后门程序之类的
sqlserver提权方式
- xp_cmdshell扩展存储过程提权
- xp_dirtree写入文件提权
- sp_oacreate提权
- xp_regwrite映像
- 沙盒提权
- CLR提权
- Agent Job提权
- R和python脚本执行提权
- 差异备份写入webshell
mysql的提权
- 利用 UDF(用户定义函数)提权:MySQL 支持用户定义函数(UDF),攻击者可以通过加载恶意的共享库(如 .so 或 .dll 文件)来执行系统命令。上传恶意共享库到服务器。
使用 CREATE FUNCTION 加载共享库。
调用 UDF 执行系统命令。 - 利用 MySQL 日志文件提权:MySQL 的日志文件(如慢查询日志、通用日志)可以被用来写入恶意代码,从而执行系统命令。启用日志功能并设置日志文件路径。
写入恶意代码到日志文件。
通过日志文件执行系统命令。 - 利用 MySQL 配置文件提权:MySQL 配置文件(如 my.cnf)可能被攻击者修改,从而加载恶意插件或修改权限。
- 利用 MySQL 弱口令提权:如果 MySQL 用户使用弱口令,攻击者可以通过暴力破解获取管理员权限。
- 利用 MySQL 漏洞提权
- 利用操作系统提权:如果 MySQL 以 root 权限运行,攻击者可以通过 MySQL 提权到操作系统 root 权限。
- 利用 SQL 注入提权:通过 SQL 注入漏洞,攻击者可以执行管理员操作(如创建用户、修改权限)。
redis的漏洞
- 未授权访问漏洞:Redis 默认监听在所有网络接口(0.0.0.0)且无需密码认证,攻击者可以直接访问 Redis 服务并执行任意操作。
- SSH 密钥写入漏洞:攻击者可以通过 Redis 的未授权访问漏洞,将公钥写入目标服务器的 ~/.ssh/authorized_keys 文件,从而获取 SSH 访问权限。
- 主从复制漏洞:攻击者可以通过 Redis 的主从复制功能,将恶意数据同步到从节点,从而实现数据篡改或 RCE。
- Lua 沙盒逃逸漏洞:Redis 的 Lua 脚本执行环境可能存在沙盒逃逸漏洞,攻击者可以执行任意系统命令。
- 持久化文件漏洞:Redis 的持久化文件(如 RDB 或 AOF)可能被篡改,导致数据损坏或恶意代码执行。
- 信息泄露漏洞:Redis 的 INFO 命令可能泄露敏感信息(如服务器配置、内存使用情况等)。
- Redis 6.0 的 ACL 功能:Redis 6.0 引入了访问控制列表(ACL)功能,但配置不当可能导致权限绕过。
- Redis 暴露在公网:Redis 服务暴露在公网,可能被攻击者扫描并利用。
php原生的敏感函数
代码执行类函数
- eval()
- assert()
- create_function()
- preg_replace():创建一个匿名函数。create_function(‘’, $_GET[‘code’]); 可能导致代码执行。
系统命令执行类函数
- exec()
- system()
- passthru()
- shell_exec()
- popen()
文件操作类函数
- include()
- include_once()
- require()
- require_once()
- file_get_contents()
- fopen()
- unlink()
- move_uploaded_file()
数据库操作类函数
- mysql_query()
- mysqli_query()
- pg_query()
其他敏感函数
- extract():变量覆盖
- parse_str():变量覆盖
- 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…...
力扣——杨辉三角
题目链接: 链接 题目描述: 思路: 直接找规律,按照数学的思路来 每一行的列最大索引 < 行索引 实现代码: 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 录入新曲子过程 三 展示,与链接视频地址1 主要功能函数一览2 下载链接3 视频效果 一 基本介绍 …...
mysql之规则优化器RBO
文章目录 MySQL 基于规则的优化 (RBO):RBO 的核心思想:模式匹配与规则应用RBO 的主要优化规则查询重写 (Query Rewrite) / 查询转换 (Query Transformation)子查询优化 (Subquery Optimization) - RBO 的重中之重非相关子查询 (Non-Correlated Subquery)…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
