
रे RayVentory Scan Engine के rvia टूल में कमांड इंजेक्शन कमजोरियों को प्रदर्शित करता है, जो getconfig, upload, inventory और oracle विकल्पों के माध्यम से मनमाना कमांड निष्पादन की अनुमति देता है।
Raynet के rvia में कमांड इंजेक्शन विरोधियों को getconfig, upload, inventory, और oracle विकल्पों के माध्यम से कमांड निष्पादित करने की अनुमति देता है।
एक सत्यापन केवल तब किया जाता है (यदि कॉन्फ़िगरेशन प्रॉपर्टी ForbiddenCurlChars के माध्यम से /etc/rvia_configuration में कॉन्फ़िगर किया गया हो) जब /opt/rvia/rvia.cfg कॉन्फ़िगरेशन फ़ाइल से URL प्राप्त किया जाता है, और तब नहीं जब URL सीधे getconfig या upload विकल्पों को पास किया जाता है।
/opt/rvia/rvia getconfig \;command\;

अंतर्निहित रूप से, निर्मित कमांड इस प्रकार दिखता है:

oracle विकल्प के माध्यम से भी कमांड इंजेक्ट करना संभव है।
यह विकल्प विफल हो सकता है यदि
rviaद्वारा Java वातावरण नहीं मिलता है (अंतर्निहित रूप सेfindकमांड का कॉल किया जाता है) और/opt/rvia/rvia.cfgमेंjavaPathsविकल्प सेट नहीं है
इस मामले में, /opt/rvia/rvia.cfg को विकल्प javaPaths=/usr/lib/jvm/java-21-openjdk-amd64/ के साथ परिभाषित किया गया है।
/opt/rvia/rvia oracle \;command\;

निर्मित कमांड इस प्रकार दिखता है:

यही बात कॉन्फ़िगरेशन फ़ाइल (/opt/rvia/rvia.cfg) में oracleUser और oraclePass विकल्पों के साथ भी होती है।

अंतर्निहित कॉल निम्नलिखित है:

यही बात upload विकल्प पर भी लागू होती है, जिसमें URL निर्दिष्टीकरण के बाद निष्पादित करने के लिए एक कमांड निर्दिष्ट किया जाता है। इस मामले में डबल कोट्स का पूर्व एस्केप आवश्यक है और साथ ही अगले आर्गुमेंट्स को अनदेखा करने के लिए कमांड के अंत में एक हैशटैग भी आवश्यक है।
यह विकल्प विफल हो सकता है यदि अपलोड करने के लिए
/opt/rvia/results(डिफ़ॉल्ट रूप से) निर्देशिका में कोई इन्वेंट्री फ़ाइलें न हों, जो इन्वेंट्री विकल्प द्वारा बनाई जाती हैं
/opt/rvia/rvia upload \"\;command\;#

ltrace से हम निम्नलिखित देखते हैं:

अंत में, inventory विकल्प भी असुरक्षित है।
/opt/rvia/rvia inventory \;command\;

अंतर्निहित निर्मित कमांड:
