本プロジェクトはセキュリティ研究のみを目的としており、本プロジェクトを使用した違法な攻撃は禁止されています。発生した結果については利用者が責任を負うものとします
これは、興味を持った、または影響が比較的大きい脆弱性を個人的に再現・公開するためのプロジェクトであり、技術的な価値はあまりありませんが、個人的な技術ノートとしてお使いください。
fastjson
このモジュールは主にfastjsonの悪用gadgetを記録していますが、多くのgadgetは記録されていません。
RCE関連
package:com.threedr3am.bug.fastjson.rce
- com.threedr3am.bug.fastjson.rce.FastjsonSerialize(TemplatesImpl) 利用条件:fastjson <= 1.2.24 + Feature.SupportNonPublicField
- com.threedr3am.bug.fastjson.rce.NoNeedAutoTypePoc 利用条件:fastjson < 1.2.48 設定は不要で、デフォルト設定でRCE可能
- com.threedr3am.bug.fastjson.rce.HikariConfigPoc(HikariConfig) 利用条件:fastjson <= 1.2.59 RCE、AutoTypeの有効化が必要
- com.threedr3am.bug.fastjson.rce.CommonsProxyPoc(SessionBeanProvider) 利用条件:fastjson <= 1.2.61 RCE、AutoTypeの有効化が必要
- com.threedr3am.bug.fastjson.rce.JndiConverterPoc(JndiConverter) 利用条件:fastjson <= 1.2.62 RCE、AutoTypeの有効化が必要
- com.threedr3am.bug.fastjson.rce.HadoopHikariPoc(HikariConfig) 利用条件:fastjson <= 1.2.62 RCE、AutoTypeの有効化が必要
- com.threedr3am.bug.fastjson.rce.IbatisSqlmapPoc(JtaTransactionConfig) 利用条件:fastjson <= 1.2.62 RCE、AutoTypeの有効化が必要
- com.threedr3am.bug.fastjson.rce.ShiroPoc(shiro-core) 利用条件:fastjson <= 1.2.66 RCE、AutoTypeの有効化が必要
...一部省略
SSRF関連
package:com.threedr3am.bug.fastjson.ssrf
- com.threedr3am.bug.fastjson.ssrf.ApacheCxfSSRFPoc(WadlGenerator) 利用条件:fastjson <= 1.2.66 SSRF、AutoTypeの有効化が必要
- com.threedr3am.bug.fastjson.ssrf.ApacheCxfSSRFPoc2(SchemaHandler) 利用条件:fastjson <= 1.2.66 SSRF、AutoTypeの有効化が必要
- com.threedr3am.bug.fastjson.ssrf.CommonsJellySSRFPoc(Embedded) 利用条件:fastjson <= 1.2.66 SSRF、AutoTypeの有効化が必要
- com.threedr3am.bug.fastjson.ssrf.JREJeditorPaneSSRFPoc(JEditorPane) 利用条件:fastjson <= 1.2.66 SSRF、AutoTypeの有効化が必要
...一部省略
DNSドメイン解決関連
package:com.threedr3am.bug.fastjson.dns
DoSサービス拒否関連
package:com.threedr3am.bug.fastjson.dos
leak情報漏洩関連
package:com.threedr3am.bug.fastjson.leak
jackson
RCE関連
package:com.threedr3am.bug.jackson.rce
- com.threedr3am.bug.jackson.rce.AnterosPoc
- com.threedr3am.bug.jackson.rce.EhcacheJndi
- com.threedr3am.bug.jackson.rce.H2Rce
- com.threedr3am.bug.jackson.rce.HadoopHikariConfigPoc
- com.threedr3am.bug.jackson.rce.HikariConfigPoc
- com.threedr3am.bug.jackson.rce.IbatisSqlmapPoc
- com.threedr3am.bug.jackson.rce.JndiConverterPoc
- com.threedr3am.bug.jackson.rce.LogbackJndi
...一部省略
SSRF
package:com.threedr3am.bug.jackson.ssrf
...一部省略
dubbo
このモジュールは主にdubbo関連の脆弱性悪用、セキュリティ強化などを記録しています
- com.threedr3am.bug.dubbo.RomePoc 利用条件:rome依存関係が存在する
- com.threedr3am.bug.dubbo.ResinPoc 利用条件:com.caucho:quercus依存関係が存在する
- com.threedr3am.bug.dubbo.XBeanPoc 利用条件:org.apache.xbean:xbean-naming依存関係が存在する
- com.threedr3am.bug.dubbo.SpringAbstractBeanFactoryPointcutAdvisorPoc 利用条件:org.springframework:spring-aop依存関係が存在する
dubbo-hessian2-safe-reinforcement
dubbo hessian2セキュリティ強化デモ、ブラックリスト方式で一部のgadgetを禁止
padding-oracle-cbc
Javaでpadding-oracle-cbc攻撃を実装した実験コードの記録
- com.threedr3am.bug.paddingoraclecbc.PaddingOracle
padding oracle java実装(複数グループの暗号文実装)
- com.threedr3am.bug.paddingoraclecbc.PaddingOracleCBC
padding oracle cbc java実装(単一グループ <= 16bytes 暗号文実装)
- com.threedr3am.bug.paddingoraclecbc.PaddingOracleCBC2
padding oracle cbc java実装(複数グループの暗号文実装)
- com.threedr3am.bug.paddingoraclecbc.PaddingOracleCBCForShiro
shiro padding oracle cbc java実装
xxe
各種XML解析コンポーネントによるXXEの再現、およびそのfixコードの記録
commons-collections
数年前に逆シリアライゼーションを学習していたときに適当に書いたもの
security-manager
java security managerのいくつかのバイパス実験コード
rmi
rmi関連サービス、およびその悪用など
tomcat
tomcat関連の脆弱性
ajp-bug
tomcat ajpプロトコル関連の脆弱性
- com.threedr3am.bug.tomcat.ajp 任意ファイル読み取りおよびjspレンダリングRCE CVE-2020-1938
cas
cas関連の脆弱性
- cas-4.1.x~4.1.6 逆シリアライゼーション脆弱性(デフォルトキーを利用)
- cas-4.1.7~4.2.x 逆シリアライゼーション脆弱性(暗号化キーと署名キーを知る必要がある)
spring
いくつかのSpring脆弱性の再現実験コードの記録
- spring-actuator(jolokia、snake-yaml、h2-hikariCP、eureka)
- spring-cloud-config-server(CVE-2019-3799)
- spring-cloud-config-server(CVE-2020-5405)
- spring-cloud-config-server(CVE-2020-5410)
- spring-session-data-redis RCE
apache-poi
apache-poi excel解析脆弱性関連の記録
feature
いくつかの攻撃データの特徴。本来は正規表現などで全て検出できるかどうかを確認するつもりだった
java-compile
java動的コンパイル、バイトコード操作の実装コード
nexus
maven nexusのいくつかのRCE、Auth Bypass脆弱性の再現記録
ShardingSphere-UI
ShardingSphere-UIのいくつかの脆弱性記録
- CVE-2020-1947 (YAML逆シリアライゼーションRCE脆弱性)
shiro
最近shiroで発見されたいくつかの認証バイパス脆弱性を記録
- bypass shiro <= 1.4.1
- bypass shiro <= 1.5.2 (CVE-2020-1957)
- bypass shiro <= 1.5.3 (CVE-2020-11989)