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