palu
ezblog首先看源码可以看到
只要访问blcakdoor输入指定key就可以得到flag
但是看不了有什么绕过逻辑,所以我看了眼app这个main类发现指定了某个静态文件夹。这时候我想到会不会有静态目录穿越,所以就试了一下..%2Fapp.jar发现成功读取了读取到app.jar也就知道了key,这题就结束了。
漏洞分析出于好奇我就看了一些依赖发现这个是solon框架的,而且版本还不低,所以我在网上查了一下,发现在今年有个 CVE-2025-1584,但是没有分析文章,所以就只好看一下代码改了啥自己分析了我们可以看到其主要更改了solon-projects/solon-web/solon-web-staticfiles/src/main/java/org/noear/solon/web/staticfiles/StaticMappings.java的路径判断检测了../来防止目录穿越。3.08是没有检测的,当路径有../时也可以进入
工具分析ysoSerial
感觉最近学啥都没什么劲,应该是iscc后遗症。
java开发
JDBCJDBC全称Java DataBase Connectivity。
JDBC再进行sql查询的步骤如下123451.注册驱动(如mysql的驱动)2.进行数据库连接,获取连接对象3.获取sql语句执行对象4.执行sql语句5.释放资源(直接close即可)
注册驱动(如mysql的驱动)注册驱动有两种方法123DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());Class.forName("com.mysql.cj.jdbc.Driver")一种是直接使用驱动管理器DriverManager的registerDriver的方法来注册驱动,而另一种是直接使用forName来加载com.mysql.cj.jdbc.Driverr这个类。
可以发现其类的static块调用了DriverManager.registerDriver(new Driver());所以这两个从本质上其实没区别。
DriverManagerDriverManager 是 Java JDBC(Java Database C ...
SnakeYaml
SnakeYamlSnakeYAML 是一个用于 Java 平台的 YAML 处理库,能够解析和生成符合 YAML 1.1 规范的数据格式。它广泛应用于 Java 生态系统中,尤其是在需要处理配置文件(如 Spring Boot 的 application.yml)或数据序列化的场景中。
SnakeYAML出现安全问题的原因和fastjson很像,都是英文其可以序列化和反序列化对象,再反序列化时会触发类的构造方法和set方法。
示例123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package sankeYaml;public class User { private String name; private int age; public User() { System.out.println("无参构造"); } public int getAge() ...
FCTF
写点有意思的题目吧ez_time这题的重点代码如下1234567891011121314151617181920212223$flag = file_get_contents("/flag");// 这是一个可爱的加密函数~function encrypt($string){ $string = substr($string,0,time()%20); return sha1($string);}// 这是一个可爱的校验函数~function compare($encryptedString, $string){ if (encrypt($string) === $encryptedString){ return true;// 你过关! } return false;// 再接再厉~}$guessMyFlag = $_POST['guessMyFlag'];if (compare(encrypt($guessMyFlag),$flag)) ...
JDK7u21
AnnotationInvocationHandler我们都知道在java反序列化中最重要的是找到应该类方法的动态调用,如cc中的各种transforme,TemplatesImpl的字节码加载而JDK7u21的命令执行点就是在AnnotationInvocationHandler。AnnotationInvocationHandler是一个代理类,而其有一个equalsImpl方法其存在一个反射调用。我们可以发现其memberMethod是遍历了getMemberMethods()。而getMemberMethods的返回值其实是type.getDeclaredMethods();而type我们可控,那么我们只要传入TemplatesImpl的接口Templates就可以调用到newTransformer了不可以直接传入type为TemplatesImpl.class这是因为在遍历方法时第一个遍历的是writeObject,直接抛异常退出了
但是其是一个私有类所以我们要找一下哪里调用了而在其重写的invoke只要当member.equals(“equals”)时就可以调用到equal ...
ACTF
下午打取证晚上打ACTF就牢了一题就牢不动了,其他题看来一下有两题是有思路的但是队友打了我也就没打了upload随便输都可以登陆成功,然后上传文件后发现了文件读取./upload?file_path可以目录穿越12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182import uuidimport osimport hashlibimport base64from flask import Flask, request, redirect, url_for, flash, sessionapp = Flask(__name__)app.secret_key = os.getenv('SECRET_KEY')@app.route('/')def index(): if session.get ...
FIC
l@KE2sax@ldaOh5hghg34&@e10adc3 949ba59abbe56e057f20f883e
CB链
调用父类构造调用j_Teacher构造覅有父类J_E的mb_printinfo
java.util.PriorityQueue在学CB链之前我们需要回忆一下java.util.PriorityQueue,这个类是我们CC2的入口点。我们回忆一下CC2的链子1java.util.PriorityQueue#readObject->heapify->siftDown->siftDownUsingComparator->TransformingComparator#compare->xxx#transform在CC2中我们就已经知道了PriorityQueue可以调用到xxx.compare而在CB1中也是利用了这个来寻找compare类
commons.beanutilscommons beanutils这个类主要提供了对javabean进行操作的方法,如下其可以通过使用PropertyUtils.getProperty或者PropertyUtils.setProperty,BeanUtils.populate等去使用javabean的get或者set类。如下 ...
玄机
蚁剑流量1.木马的连接密码是多少密码为1
2.黑客执行的第一个命令是什么将传参的代码整理一下123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166@ini_set("display_errors", "0");@set_time_l ...