工具分析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 ...
密码实验
仿射密码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152from math import gcddef text_to_numbers(text): return [ord(char) - ord('a') for char in text.lower() if char.isalpha()]def encryption(m, a, b): if gcd(a, 26) != 1: return "密钥a必须与26互质!" numbers = text_to_numbers(m) encrypted_number = [(a * num + b) % 26 for num in numbers] encrypted_text = ''.join(chr(num + ord('a')) for num in encrypted_ ...