安全面试3

news/2025/2/23 8:02:27

文章目录

  • 一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名
  • 用转义字符防御时,如果遇到数据库的列名或是表名本身就带着特殊字符,应该怎么做
  • 宽字节注入
    • 原理
    • 防御宽字节注入的方法
  • 基于黑白名单的修复,现在的生产基本都是用的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()

http://www.niftyadmin.cn/n/5863187.html

相关文章

aws(学习笔记第二十九课) aws cloudfront hands on

aws(学习笔记第二十九课) 使用aws cloudfront 学习内容: 什么是aws cloudfront练习使用aws cloudfront 1. 什么是aws cloudfront aws cloudfront的整体架构 这里可以看出,aws引入了edge location的概念,用户的client与edge location进行是…

centos7的yum出错

当执行yum时报如下错误 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infrastock error was 14: curl#6 - "Cou…

Go、Java、Python、C/C++、PHP、Rust 语言全方位对比分析

简介 在当今多元化的编程世界中,不同的编程语言各有千秋,适用于不同的应用场景。本文聚焦于 Go、Java、Python、C/C、PHP 和 Rust 这六种热门编程语言,深入剖析它们的优劣势以及各自的最佳适用场景,旨在为开发者在选择合适的编程…

Python基于Django的酒店推荐系统【附源码】

博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

Java计算机毕业设计基于SSM宠物美容信息管理系统数据库源代码+LW文档+开题报告+答辩稿+部署教程+代码讲解

源代码数据库LW文档(1万字以上)开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统:Window操作系统 2、开发工具:IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

[Android]DialogLifeCycle禁止点击背景关闭弹窗

在 Kotlin 中,可以通过设置 Dialog 的 setCanceledOnTouchOutside 方法来避免点击弹窗之外的背景而关闭弹窗。您可以在 DialogLifeCycle 的 show 方法中设置这一属性。 fun Context.dialogCustom(layout: Int, style: Int R.style.dialogCenter, onInit: DialogMo…

【多模态处理篇八】【DeepSeek增强现实:AR导航实时推理优化】

一、AR导航的「地狱级难度」挑战 搞AR导航就像在钢丝上跳街舞——既要实时感知环境,又得丝滑渲染虚拟指引,还得防着手机发烫罢工。具体难点包括: 1. 算力饥渴症 手机端要同时处理: 摄像头画面(30fps+)SLAM定位(每秒百次坐标计算)3D箭头渲染(每帧万级三角形) 这相当…

FTP 实验(ENSP模拟器实现)

FTP 概述 FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行文件传输的标准协议。它允许用户在两台计算机之间上传和下载文件。 1、FTP采用客户端-服务器模型,客户端通过FTP客户端软件,连接到FTP服务…