自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 DASCTF 2024暑期挑战赛 easyjob

然后还需要一个写这个文件的paylaod,还是一样的paylaod,不过是使用com.sun.org.apache.xml.internal.security.utils.JavaUtils", “writeBytesToFilename”所以目标又变成打hessian反序列化了,看了看题目的依赖,第一肯定是打jndi注入咯,但是不行,题目不出网,转手打内存马,打内存马首先利用Rome+temp的组合,但是发现没有rome依赖,我们选择使用heesian原生的链子来打。我们这里因为要打内存马,有三种选择。

2024-08-15 18:34:19 939

原创 bluecmsphp代码审计

其实有很多不可以的地方这里也说一下,首先是我们只能找数字型了,或者报错注入也可以,但是这个代码没有输出报错的信息,一些数字型注入的输入都是被intval函数修饰了的,刚刚的两个都是没有被修饰的。重点是最后一段,如果我们的face_pic1和face_pic2不存在的话,就去判断文件里面是否有face_pic3,如果有就删除,没有任何限制的。重点是最后一段,如果我们的face_pic1和face_pic2不存在的话,就去判断文件里面是否有face_pic3,如果有就删除,没有任何限制的。

2024-08-15 13:09:13 777

原创 thinkphp8反序列化分析

摆了一个暑假,正好看见周会有人分析了tp反序列化,想起这条链子的发现者就是我尊敬的nivia,这不得好好分析一下,而且师傅也是分析了这个,所以有了这个文章。

2024-08-12 20:46:58 998 1

原创 熊海1.0cmsPHP代码审计

下载之后直接使用phpstduy搭建就好了。

2024-08-05 11:52:26 1314

原创 XMLDecoder反序列化

因为比较简单,自己也没有去复现一下怎么的,也没有去调试,其实调试就是调试对标签的解析过程参考https://www.freebuf.com/articles/web/321222.html的解析过程参考https://www.freebuf.com/articles/web/321222.html图片都是用的这个链接的。

2024-08-02 13:54:23 509

原创 AspectJWeaver反序列化

aspectjweaver中有一个SimpleCache类,SimpleCache类中的内部类StoreableCachingMap是一个继承HashMap的类。一眼顶真可以写文件,跟进writeToPath((String) key, valueBytes)文件路径就是folder + File.separator + key;那怎么触发put方法,如果有cc的依赖的话,看到我们的lazymap。其实没有什么好讲的,随便水一下,因为学过cc链都知道了利用。懂的都懂了,也不需要我多说了。

2024-07-29 13:10:46 383

原创 [CISCN 2023 华北]normal_snake

调用这条链是很容易的,然后就是hex字节码部分,一开始选择的是jackson的原生链,以为也没有其他的依赖了。一开始我的思路是以为不能出网,直接二次反序列化打的字节码加载,首先通过yaml反序列化调用set方法触发。发现是出网的,只需要打URL远程类加载就好了其实,首先是我们的恶意文件,是看的别人的。简单说一次,其实就是hex加载的paylaod里面套一个url加载的。算了直接说吧,不想截图了,就多了一个C3P0和yaml的依赖。然后思路就是C3P0的二次反序列化打。的绕过其实也不难,!

2024-07-12 17:23:32 476

原创 2023安洵杯 ezjava

可以看到出口类是一个找不到,然后jndi类是用不了,jackson反序列化是不行的,一般出口类都没有的时候就是到注入了,这里有fm模板的依赖,大概率是覆盖index.ftl然后去模板注入,但是CB的入口杯卡死了,可以使用CB的TreeBag链。有CB依赖和pgsql的依赖,而且pgsql还是漏洞版本,还有cb依赖,估计的思路是cb触发getter打pgsql。然后还有cc依赖不过是3.2.2版本的,还有Freemaker的模板。而Spring的配置文件这里确实是这样的,所以就是这样打。

2024-07-09 14:23:04 947

原创 Mini-L-CTF-2022 minispringboot Thymeleaf模板注入 spel的绕过

怎么绕过new和Runtime方法很多,其实可以执行命令的还有ProcessBuilder。可以看见路由和return的值我们都是可以控制的,所以这个很简单,相当于就套一个。禁用了new和untime和也就是Runtime。然后反弹shell,需要base64编码解码。使用BCEL或则Spring自带的字节码。就是一个低版本的Thymeleaf注入。怎么绕过new,这里我们这个是关键词。主要是spel绕过,我们看到waf。然后如果要绕Runtime。1.使用New就好了。

2024-07-05 15:59:08 421

原创 CC7关于ConstantTransformer返回值不能和put一样的分析

实验室的gaorenyusi也是学到cc7的时候问了我一个很好的问题,我当时学的时候没有在意,然后就去调试分析解决了一下。

2024-06-29 16:02:34 638

原创 Spring简单学习

此时你对工资的控制转变了,由原来的你控制,变成了你媳妇控制。工厂方法模式(Factory Method),又称多态性工厂模式,属于设计模式三大分类中的创建型模式,作为抽象工厂模式的孪生兄弟,工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,也就是说工厂模式让实例化推迟到子类。简单工厂模式,又叫做静态工厂模式(Static Factory Method),由一个工厂对象决定创建出哪一种产品类的实例,简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。

2024-06-28 23:20:04 1030

原创 java安全必学之Javassist 学习

这个非常简单,只需要你自己加一个依赖。

2024-06-24 17:16:19 1515

原创 R3CTF NinjaClub复现

反正前人就是很难绕过的,这种时候就要变换思路了,但是漏洞点还是在ssti,因为__的过滤,所以很多内置的函数就不可以使用了,然后我们看看这个类本身有什么函数,因为这个类的话是没什么利用函数的,我们看到这个函数还继承了。可以看到只需要我们传入的参数满足一些条件是可以pickle反序列化的,而且我们的参数都是可以控制的。来到我们的这个函数,因为它有一个参数非常让我们怀疑,就是我们的allow_pickle。沙箱中,这个沙箱会有严格的过滤,几乎是不可能绕过的,我们看看过滤了什么。可以用我们的pker工具。

2024-06-17 13:03:03 380

原创 log4j漏洞学习

其实学完之后回过头造成漏洞的原理就是Log4j引入了lookup接口原本的目的是来支持在日志输出时获取任意位置的Java对象。通过使用lookup接口,Log4j可以通过适当的配置和调用,动态地从程序运行环境中获取所需的对象,然后将其作为日志消息的一部分输出到日志目标中。

2024-06-14 00:23:40 1267

原创 shiro反序列化分析

Apache Shiro 是一个 Java 安全框架,包括如下功能和特性:Authentication:身份认证/登陆,验证用户是不是拥有相应的身份。在 Shiro 中,所有的操作都是基于当前正在执行的用户,这里称之为一个 Subject,在用户任意代码位置都可以轻易取到这个Subject。

2024-06-11 19:15:14 1579

原创 python内存马学习

重复的函数名将导致冲突,函数名已经被绑定到另一个函数对象上,所以不能成功注入。可以看到这里并没有对这个函数做check,而code_or_exception和f不就是之前的那两个参数吗,如果我们绕过上面的register_error_handler函数,对这里的函数进行控制,一样可以达到我们的目的。其次,def创建的函数是在解析时立即执行的,这导致在此类注入攻击场景下使用已存在的函数名,会在解析阶段就执行,而非等待触发该请求处理函数时执行,这会导致执行时刻不符合预期,有可能因此无法成功注入。

2024-05-22 12:47:09 1630 1

原创 fastjson1.2.68对于文件操作的分析最全

这次分析也是分析了很久,因为每个链子都是自己去跟着分析了的,然后主要是去学习了一下怎么去挖链子。

2024-05-15 19:51:52 1356

原创 对于fastjson之rmi利用问题的解决

也是被一个问题困扰了好久,都要崩溃了,就为了一个问题调试半天的代码,最后终于解决了,现在做一个记录,幸好没有放弃,感觉学java是比较慢的,但是学java就是重在分析能力的提升,所以慢也没有关系当然,自己尝试的方法远远不止这些,调试了很多。所以如果自己更清楚这个过程的话,知道过程的关键点就会容易得多。

2024-05-14 13:34:26 787 1

原创 关于TrAXFilter类在动态加载的利用思考以及如何无视构造器获取对象

而且这个构造方法是public的,所以我根本不需要再添加其他代码,只需要实例化它就可以直接弹出计算机了,为什么还需要InstantiateTransformer类来实例化它呢?才想起是因为Runtime是没有继承序列化接口的,所以如果你直接实例化它,它是不能进行序列化的,也就不会反序列化了,所以我们得利用继承了序列化接口的类去搭。找不到方法,我们尝试了很久,都没有获取到,于是java爷给我讲了一个unsafe类,可以无视构造方法实例化一个类。可以发现获取成功了,nice,nice。运行后可以弹出计算器。

2024-04-25 21:51:14 571 1

原创 java反序列化之CC4超详细易懂分析

当然,学习这个链子之前,你得好好把cc3和cc2给看明白,这样你学起来就会很简单,因为cc4就是cc2+cc3,当然这里我会再给你讲解一下类的作用,顺便给我复习,也给你讲明白,写得不容易,免费的赞点一下吧。

2024-04-22 21:30:18 606 3

原创 java反序列化之CC5超详细易懂分析

在你学习这篇文章之前,cc1和cc6已经已经是会的,这样才能更好的来理解这篇文章。

2024-04-22 21:27:12 462 2

原创 java反序列化之cc3链的多种情况

因为前面以及分析过cc2和TemplatesImpl类加载了,所以这里主要是与前面的知识来进行一个结合我们知道利用TemplatesImpl类的核心就是触发newtransformer方法。

2024-04-22 10:51:42 782 1

原创 java反序列化之CC2超详细易懂分析

抄一下图参考https://www.cnblogs.com/byErichas/p/15749668.html。

2024-04-18 20:00:00 1689 1

原创 爆赞好文之java动态字节码加载(TemplatesImpl)简谈

虽然已经学过了,不过忘完了,nice,重学动态加载就是很动态知道吧,你以为,说了等于没说,怎么个动态法呢?具体是在于三个函数loadClass()从已经加载的类缓存、父加载器等位置寻找类(其实就是双亲委派机制),在前面没有找到的情况下执行findClassfindClass()根据基础URL指定的方法来加载类的字节码,可能会在本地文件系统,jar包,或是远程http服务器上读取字节码,然后交给下一个函数defineClass()的作用就是处理前面传入的字节码,将其处理为真正的Java类。

2024-04-17 20:49:49 1333

原创 面向编程和面向对象

什么是面向编程,直接说一大堆代码理解不了我举例子,比如我要洗衣服,我需要放衣服,放洗衣粉,放水,开机,等步骤,是一个步骤一个步骤的来,这就是一个面向编程的过程,面向对象的话就不在乎什么过程了,我只在乎洗衣机能干嘛,它能洗衣服,人能干嘛,人能放衣服和开机,然后只需要对象的交互。这个是为了减少代码的重复度,比如学生,你要写作业,我也要写作业,你的方法和我的方法差不多,只是写作业的内容不同,为了避免代码太多,我们直接定义一个父类学生,不管大学生小学生都继承就好了,直接就有了写作业的方法。

2024-04-17 08:28:50 754

原创 CVE-2021-43798 Grafana 文件读取漏洞

影响版本 Grafana 8.0.0-beta1 to 8.3.0攻击者可以通过将包含特殊目录遍历字符序列(…/)的特制HTTP请求发送到受影响的设备来利用此漏洞。成功利用该漏洞的攻击者可以在目标设备上查看文件系统上的的任意文件。

2024-04-16 20:25:50 1367

原创 2024 NKCTF 全世界最简单的CTF

第一步是要获得global这个模块,原来是获取process模块,但是如果我获取到了global,那什么都好获取了。这次比赛没有做出来,看了wp,感觉差一点东西,也学到了一些绕过waf的方法。然后就要获取我们的process模块,并且引用child_process。它就不能够这样绕过了,因为它是方法,不是字符,不能当作字符处理。我们通过反射来绕过,就是根据你提供的对象的键获取到对应的值。但是题目过滤了很多东西,我们分别来思考怎么绕过。我们绕过了process,还需要绕过exec。很明显的vm沙盒逃逸问题。

2024-04-12 12:10:47 566

原创 python原型链污染原理分析

会把我们的dst也就是父类father的secret属性赋值为secret!可以看到现在的src和dst的新值,但是这次会进入setattr(dst, k, v)方法,因为我们的v已经不是dict了。然后进入elif,判断我们的dst里面有没有k这个属性,并取出来的值为一个dict,看到上面的是满足的。2024-03-18 分类: 阅读(23) 评论(1)到这里我们就明白了污染的整个过程了,也明白了原理。然后又进行同样的判断,还是会进入elif那里。可以看到我们的src和dst的新值。

2024-04-10 09:10:40 458 1

原创 go语言常用标准库

它提供了bufio.Reader和bufio.Writer类型,其内部分别包装了io.Reader和io.Writer对象,同时分别实现了io.Reader和io.Writer接口。http.NewRequest(method, url string, body io.Reader) (*http.Request, error): 创建一个新的HTTP请求。http.Do(req *http.Request) (*http.Response, error): 执行一个HTTP请求,并返回响应。

2024-04-08 01:16:15 821

原创 开发中go语言的作用之详细分析

Go语言中的结构体(struct)支持匿名字段,这是一种特殊的字段,它允许你直接从另一个结构体中继承字段。匿名字段的概念类似于其他语言中的组合(Composition)或继承(Inheritance)。X intY intPointRadius int在这个例子中,Circle 结构体包含了 Point 结构体的字段 X 和 Y,以及它自己的字段 Radius。上面的Point就是匿名字段,这里的匿名字段主要是继承作用,去继承Point的属性其实这也是匿名字段最主要的作用。

2024-04-06 21:23:14 1876 1

原创 用过就是熟悉 tp长链子反序列化

发现会读取hint.php的内容,然后把内容写入文件,但是文件名不可以控制,这个马上可以爆,我们肯定第一步是要读取这个文件吧。我先在本地获得一个时间戳,然后我用python发包,不断去访问这个文件,然后时间戳不断+1,最后访问到我们的文件。我们跟Loginsubmit这个方法发现根本没有,正和我们的意,完美,完美就看看怎么调用get方法。慢慢看呗,最好是调用了就能触发tostring的,你别说,真有,我们看到windows的这里。也就是我们的files,你别说,真找到了,然后就闭环了,就可以构造poc了。

2024-04-05 22:20:42 502 1

史上最全XYCTFwp

XYCTFre全解wp,web除了java全解wp,pwn和密码部分wp,misc大部分wp,这个是道格安全团队的wp

2024-04-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除