国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語言 - PHP教程 - 淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

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

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

1.漏洞產(chǎn)生的原因

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

$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";}';

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

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

結(jié)果

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

這就說明一個(gè)問題,在反序列化的時(shí)候,只要求第一個(gè)序列化字符串合法就行,換我個(gè)理解,就是反序列話時(shí),他會(huì)從前往后讀取,當(dāng)讀取第一個(gè)合法的序列化的字符串時(shí),就會(huì)反序列化。

### 當(dāng)過濾用戶輸入?yún)?shù)的時(shí)候,如果先序列化再對(duì)序列化過后的字符串進(jìn)行過濾,而且在過濾的過程中會(huì)導(dǎo)致原本的長(zhǎng)度改變,就可能造成序列化對(duì)象注入漏洞。

此處參考別人的代碼:

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

可以看到,這里過濾函數(shù)將原來的x換成了zz,但是長(zhǎng)度卻超過了原來的長(zhǎng)度 ,但是原來長(zhǎng)度的數(shù)字時(shí)沒變的,這就導(dǎo)致報(bào)錯(cuò)。但是試想一下,如果這里的密碼是可控的,然后我們輸入字符

的時(shí)候帶入雙引號(hào)和} 會(huì)怎么樣呢? 看如下代碼

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

結(jié)果

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

第一排是我們構(gòu)造的東西序列化過后的值,

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

第三排是反序列化過后的到的值,此時(shí)原本的aaaaaa的值已經(jīng)被我們覆蓋。

二:實(shí)例分析

根據(jù)上面的原因可知,產(chǎn)生漏洞最直接的原因是因?yàn)樾蛄谢^后的字符串被過濾的時(shí)長(zhǎng)度發(fā)生變化, 根據(jù)這個(gè)這個(gè)原因,我們就可以把漏洞分為 長(zhǎng)度變長(zhǎng),和長(zhǎng)度變短兩種情況,注意! 如果長(zhǎng)度不變的話,不會(huì)引起漏洞產(chǎn)生。

(1) 長(zhǎng)度變短。

題目: 安洵杯2019 easy_serialize_php // 在https://buuoj.cn/這個(gè)靶場(chǎng)里又復(fù)現(xiàn)

源碼:

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

根據(jù)提示在phpinfo拿到

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

很顯然答案在 d0g3_f1ag.php里面,關(guān)鍵是我們?cè)趺慈プx取他的源碼 ,可以看到最后一排的會(huì)獲取 ['img'] 中的 的源碼,我們僅需要覆蓋img的值將他變成d0g3_f1ag.php就行。

在看這個(gè)過濾函數(shù)

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

他會(huì)使得輸入的相應(yīng)字符變?yōu)榭眨簿褪亲屝蛄谢蟮淖址兌蹋覀兙涂梢岳么藖硗痰粼镜淖兞棵⑷胛覀兿胱⑷氲拇a。

第一種解法:值逃逸

d0g3_f1ag.php的base64 編碼 ZDBnM19mMWFnLnBocA== 長(zhǎng)度20

在本地測(cè)試的時(shí)候得到正常的 序列化字符是這樣的

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

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

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

payload

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

讀到源碼

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

再去修改payload的文件中的值,然后再去訪問,發(fā)現(xiàn)什么也沒有返回,然后嘗試 /../d0g3_fllllllag 然后base64編碼 去訪問就會(huì)返回flag

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

(2)長(zhǎng)度變長(zhǎng)

題目 [0CTF] piapiapia // 同樣在buu里又復(fù)現(xiàn)

wp參考這里 -> http://www.jfrwli.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";}

紅色部分是我們想要注入的,這道題的過濾函數(shù)有三個(gè) ,但是導(dǎo)致長(zhǎng)度變化的過濾是這個(gè)

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

where->hacker 多出了一個(gè)字符

但是另一個(gè)過濾使 nickname 有長(zhǎng)度限制

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

這里strlen我們可以用數(shù)組繞過,但是如果使用數(shù)組就會(huì)引起序列化字符串產(chǎn)生變化

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";}

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

這里我進(jìn)行了本地測(cè)試

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

結(jié)果:

淺析PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題

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

現(xiàn)在我們想的是通過where ->hacker 多了一個(gè)字符,這樣使我們輸入的nickname的值逃逸出去變成對(duì)象,

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

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

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

三.總結(jié)

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

以上所述是小編給大家介紹的PHP反序列化中過濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問題,希望對(duì)大家有所幫助!

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

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲欧美一级久久精品 | 欧美日韩亚洲一区 | 亚洲午夜精品毛片成人播放器 | 中文字幕精品视频 | 成年人免费看 | 日韩中文字幕在线播放 | 国产精品色一区二区三区 | 中文字幕在线一区二区三区 | 91在线精品一区二区 | 97久久精品| 欧美视频在线一区 | 在线观看一区二区精品 | 99久久国语露脸精品对白 | 亚洲欧美日韩一区二区 | 国产午夜视频 | 国产毛片欧美毛片久久久 | www.国产精 | 亚洲精品视频在线 | 日韩和的一区二在线 | 亚洲免费a| 日本中文一区二区 | 激情视频网站 | 中文字幕一区二区三区日韩精品 | 中文字幕日韩一区 | 欧洲一级视频 | 午夜免费视频 | 不用播放器的免费av | av免费网站 | 国产在线观看91一区二区三区 | 狠狠躁夜夜躁人人爽天天天天97 | 中文av字幕| 久久五月天婷婷 | 精品国产黄a∨片高清在线 91精品国产91久久久 | 精品国产乱码久久久久久丨区2区 | 久久国产精品视频 | 国产精品一二区 | 黄色电影免费在线观看 | 99精品一区 | 色免费视频 | 精品香蕉一区二区三区 | 久久草视频|