CTF反序列化漏洞學習記錄


0x00:利用點1-通過將敏感字符替換為特定的字符

在有些cms中存在將敏感字符替換為指定的字符,比如where->hacker

那么看似沒啥問題,但如果是將序列化后的內容進行敏感詞替換,那么就可能存在反序列化漏洞

測試代碼如下

<?php

	$username = $_GET['username'];
	$sign = "hi guys";
	$user = array($username, $sign);

	$seri = bad_str(serialize($user));

	echo $seri;

	// echo "<br>";

	$user=unserialize($seri);

	echo $user[0];
	echo "<br>";
	echo "<br>";
	echo $user[1];


	function bad_str($string){
		return preg_replace('/\'/', 'no', $string);
	}

 這里傳入ls,回顯如下

 

傳入ls'

 

 由於長度錯誤,導致反序列化過程發生錯誤

那么此時引起了思考,這個錯誤可以拿來做什么呢,類似很多sql注入那樣,我們可以進行拼接成一個新的序列化語句。

那么在反序列的過程中就會去對拼接過后的語句進行反序列化。只要注意閉合!!!

這里要注入數組的序列化格式,二維數組的序列化格式

 

 序列化結果再嵌套了一個數組的序列化(閉合的時候要一定注意!!!)

好,怎么去利用呢

比如我們說了,'替換為no,就是說1位替換為2位 長度變長了

測試代碼依然選用上面的

這邊直接上另一個師傅的博客內容吧,夜深了,准備洗澡去

https://www.cnblogs.com/litlife/p/11690918.html

 

涉及CTF題目:[0CTF 2016] piapiapia

這道題可以用數組去繞過長度限制,坑點在於設置了post值為數組格式,那么其序列化過后就是個二維數組的序列化格式,閉合時仍然需要進行繞過里面的小數組。

 

0x01:利用點2

#

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM