- 博客(57)
- 收藏
- 关注
原创 VulnStack1-内网渗透记录
三台虚拟机IP初始状态固定为192.168.52.0/24网段,所以将仅主机模式的网卡设置为192.168.52.0/24网段。
2024-08-21 17:03:41
1173
原创 servlet内存马
创建javaweb项目,勾选servlet我们可以将idea给的注释写法,改到web.xml里面</</</</</</</记得加依赖(版本改自己tomcat版本)</</</</
2024-08-05 18:12:45
517
原创 fastjson-小于1.2.47绕过
看第二个位置能否利用,是在loadClass里面,我们可以看到这个loadClass用法就是,在缓存中没找到的类加载时把这个类加进缓存中。可以看到loadClass的方法,被替换了,主要的安全逻辑就在替换的方法里,跟进看替换的方法。在上面分析时,我们也能注意到,在loadClass中有对传入类名的处理,对数组类进行处理,把。而MiscCodec的利用就是在加载默认的反序列化器时,Class的反序列化器也是它。所以绕过思路有了,我们先反序列化一个Class,它的值为恶意类,之后再反序列化恶意类。
2024-08-02 21:16:55
1297
原创 fastjson-1.2.24利用
这里调用get方法的话也是在toJSON调用(方法返回Connect,过不了判断,不会在生成反序列化器中调用),顺序很清晰。这里要注意dataSourceName的写法,因为fastjson是根据setter和getter获取的属性,所以名字要根据setter和getter的名字写,而不是根据对应属性名写。我们在json中指定@type参数,故fastjson会尝试将该字符串反序列化为指定类的对象,并调用类中的set方法给对象进行赋值,把反序列化后拿到的对象toJSON时用get方法。
2024-08-01 15:00:35
1518
原创 fastjson-流程分析
下面三个循环,第一个寻找public的set方法,第二个寻找public的属性,第三个寻找public的get方法(如果有了对应的set方法,那么这里不在创建get方法)方法中,找不到符合条件的反序列化器,则把传入的默认当作JavaBean。这个操作是在最后一个循环的下面这里实现的。之后我们就拿到了需要的反序列化器(这有个关于debug的问题,大家看视频吧,这儿就不写了,更新了Person类)下面可以跟一下反序列化器JavaBeanDeserializer中,是如何调用构造函数,set和get方法的。
2024-07-31 17:02:44
1269
原创 JNDI-反序列化
我们模拟一下受害方是存在CC利用链的,所以现在项目中添加依赖。原生反序列化可以直接打,不需要Reference。再回顾一下,在deserializeObject。分析中提到,存在ldap原生反序列化利用点。之后模拟受害方客户端请求。重写一个Ldap的绑定。
2024-07-31 09:24:07
552
原创 JNDI注入-高版本绕过
上面讲到了RMI,CORBA,LDAP漏洞被修复了,漏洞出现在客户端拿到Reference后,通过Reference加载codeBase路径下的factory处。下图是从拿到的Reference中获取factory(BeanFactory),之后调用BeanFactory的getObjectInstance方法。获取Reference的ClassName(javax.el.ELProcessor),并loadClass,得到ELProcessor类。修复之前,利用是在LdapCtx.java中的。
2024-07-30 16:57:31
1085
原创 JNDI注入-ldap绕过
传入var4参数,var4在下图中可以看到是在LDAP中查到的一些属性。下面if语句就是判断,拿到的是什么类型,选择相应的方法去decode。我jdk版本是8u141,可以看到这里也是做了trustURLCodebase的系统限制,不能远程加载类。注意这里又跳到DirectoryManager里面去了,和RMI一样攻击点是不在JNDI的文件中的。我弹计算器代码是写在静态代码块儿中的所以在初始化的时候就弹了计算器。这里面调用到了1中的两个方法,也是没有攻击点的。写在构造函数中的会在下面实例化的时候弹计算器。
2024-07-30 14:37:35
567
原创 JNDI注入-RMI和Reference
之前观察到initialContext.lookup()方法时,最终会调用到registry.lookup()。bind和rebind也是一样的。所以远程RMI有的攻击点,这里也是有的就是本节讲的Reference的攻击点。了构造函数里面,就在执行= null)?实例化Test类时,弹计算器。
2024-07-28 01:15:02
577
原创 RMI反序列化-流程分析
参考RMI应用概述RMIClient首先去rmiregistry注册中心查找,RMIServer开启的端口。之后连接RMIServer。如果在RMIServer中,找不到,还可以去web中查找加载,这也产生了安全隐患。流程图这里引用其他师傅画的流程图,方便理解创建的流程。
2024-07-19 16:27:31
1088
原创 类的动态加载-双亲委派模型
ClassLoader -> SecureClassLoader -> URLCLassLoader -> AppClassLoader (继承关系 父->子)ClassLoader.loadClass -> URLCLass.findClass(重写方法)(路径中能找到类才进入defineCLass) ->SecureClassLoader.defineClass(从字节码加载类)->ClassLoader.defineClass。
2024-07-04 17:17:31
1290
原创 DVWA-CSRF-samesite分析
接DVWA的分析,发现其实Impossible的PHPSESSID是设置的samesite=1.参数的意思参考SameSite:控制 cookie 是否随跨站请求一起发送,这样可以在一定程度上防范跨站请求伪造攻击(CSRF)。下面用DVWA CSRF Low Level来分析下samsite的设置。
2024-06-23 21:54:43
938
原创 DVWA-XSS(Stored)-httponly分析
httponly是微软对cookie做的扩展。这个主要是解决用户的cookie可能被盗用的问题。接DVWA的分析,发现其实Impossible的cookie都是设置的httponly=1,samesite=1.这两个参数的意思参考HttpOnly:阻止 JavaScript 通过 Document.cookie 属性访问 cookie。SameSite:控制 cookie 是否随跨站请求一起发送,这样可以在一定程度上防范跨站请求伪造攻击(CSRF)。
2024-06-23 20:48:48
698
原创 URLDNS利用链
覆盖了URLStreamHandler中的openConnection和getHostAddress方法,其中getHosAddress是本利用链RCE触发点。这里注意一下在put函数中调用了利用链中的putVal函数,后面也会触发DNS请求。在URL hashCode函数中会做个判断,我们将hashCode设置为一个不等于-1的值,就可以不在POC截断触发RCE触发点。我们要修改tab中的K,从而达到写入URL的目的,下面看如何写入tab。tab.key对应的是我们的URL。ysoserial的POC。
2024-06-21 11:45:53
558
原创 “墨者杯”网络安全大赛wp
504错误修改为POST提交拿到php源码,查看逻辑采用数组绕过拿到phpinfo,观察发现这里的意思是每个php页面都包含这个f1444aagggg.php我们直接在url后面加上f1444aagggg.php,获得flag。
2024-06-06 16:38:23
701
1
原创 DVWA-XSS(Stored)
在Low的基础上,message处理增加了strip_tags(addslashes())和htmlspecialchars(),其中addslashes函数添加反斜杠转义单引号、双引号、反斜杠和 NULL 字符。mysqli_real_escape_string() 函数用于对字符串中的特殊字符进行转义,使得这个字符串是一个合法的 SQL 语句。1.过滤输入的字符,例如 “ ’ ”,“ " ”,“<”,“>” 等非法字符;在High的基础上增加了对name参数的严格过滤,并且加入了token机制。
2024-06-06 16:06:43
1160
1
原创 Vulnhub-DC-3
我这蚁剑出了个问题一直提权失败,之后用nc反弹shell到kali才提权成功了。提权部分过程(find 输出太多留下有用部分了)靶机IP:192.168.20.136。searchsploit 查找版本漏洞。去URL中找EXP,下载在攻击机,用。开启一个简单http服务器。这个靶机nc没有-e参数用不了。之后根据URL教程去执行就好。网络有问题的可以看下。ubuntu版本漏洞。
2024-06-06 16:03:34
1178
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人