亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2020年02月15日 15:12:33   作者:dimpl3s  
這篇文章主要介紹了PHP反序列化中過(guò)濾函數(shù)使用不當(dāng)導(dǎo)致的對(duì)象注入問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

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

#### 正常的反序列化語(yǔ)句是這樣的

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

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

結(jié)果

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

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

此處參考別人的代碼:

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

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

結(jié)果

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

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

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

二:實(shí)例分析

根據(jù)上面的原因可知,產(chǎn)生漏洞最直接的原因是因?yàn)樾蛄谢^(guò)后的字符串被過(guò)濾的時(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)

源碼:

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

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

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

他會(huì)使得輸入的相應(yīng)字符變?yōu)榭?,也就是讓序列化后的字符串變短,我們就可以利用此?lái)吞掉原本的變量名,而注入我們想注入的代碼。

第一種解法:值逃逸

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的值利用過(guò)濾函數(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";}

讀到源碼

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

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

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

wp參考這里 -> http://chabaoo.cn/article/180496.htm

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

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

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

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

這里strlen我們可以用數(shù)組繞過(guò),但是如果使用數(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è)試

結(jié)果:

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

現(xiàn)在我們想的是通過(guò)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é)

武漢加油!中國(guó)加油!我加油!

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

相關(guān)文章

  • thinkPHP中分頁(yè)用法實(shí)例分析

    thinkPHP中分頁(yè)用法實(shí)例分析

    這篇文章主要介紹了thinkPHP中分頁(yè)用法,結(jié)合實(shí)例形式詳細(xì)分析了thinkPHP數(shù)據(jù)查詢及使用分頁(yè)類實(shí)現(xiàn)分頁(yè)效果的相關(guān)技巧,需要的朋友可以參考下
    2015-12-12
  • Yii框架實(shí)現(xiàn)的驗(yàn)證碼、登錄及退出功能示例

    Yii框架實(shí)現(xiàn)的驗(yàn)證碼、登錄及退出功能示例

    這篇文章主要介紹了Yii框架實(shí)現(xiàn)的驗(yàn)證碼、登錄及退出功能,結(jié)合具體實(shí)例形式分析了基于Yii框架實(shí)現(xiàn)的用戶驗(yàn)證登錄及退出操作相關(guān)步驟與操作技巧,需要的朋友可以參考下
    2017-05-05
  • ThinkPHP5.0框架使用build 自動(dòng)生成模塊操作示例

    ThinkPHP5.0框架使用build 自動(dòng)生成模塊操作示例

    這篇文章主要介紹了ThinkPHP5.0框架使用build 自動(dòng)生成模塊操作,結(jié)合實(shí)例形式分析了thinkPHP5使用build自動(dòng)生成模塊的具體步驟、方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-04-04
  • ThinkPHP5.0框架結(jié)合Swoole開發(fā)實(shí)現(xiàn)WebSocket在線聊天案例詳解

    ThinkPHP5.0框架結(jié)合Swoole開發(fā)實(shí)現(xiàn)WebSocket在線聊天案例詳解

    這篇文章主要介紹了ThinkPHP5.0框架結(jié)合Swoole開發(fā)實(shí)現(xiàn)WebSocket在線聊天,結(jié)合完整案例形式詳細(xì)分析了thinkPHP5擴(kuò)展Swoole實(shí)現(xiàn)WebSocket在線聊天相關(guān)步驟、操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-04-04
  • PHP讀取PDF內(nèi)容配合Xpdf的使用

    PHP讀取PDF內(nèi)容配合Xpdf的使用

    最近領(lǐng)導(dǎo)拍腦袋想出了一個(gè)需求,要我讀取PDF里面的內(nèi)容,并且入庫(kù)存為正文,用來(lái)搜索,需要的朋友可以了解下
    2012-11-11
  • thinkPHP5 ACL用戶權(quán)限模塊用法詳解

    thinkPHP5 ACL用戶權(quán)限模塊用法詳解

    這篇文章主要介紹了thinkPHP5 ACL用戶權(quán)限模塊用法,結(jié)合實(shí)例形式詳細(xì)分析了權(quán)限控制所涉及的數(shù)據(jù)庫(kù)、配置、信息獲取、驗(yàn)證規(guī)則等相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • 詳解PHP文件的自動(dòng)加載(autoloading)

    詳解PHP文件的自動(dòng)加載(autoloading)

    這篇文章主要介紹了詳解PHP文件的自動(dòng)加載(autoloading)相關(guān)知識(shí)點(diǎn)以及詳細(xì)用法,有這方面需要的朋友參考下吧。
    2018-02-02
  • php打亂數(shù)組二維數(shù)組多維數(shù)組的簡(jiǎn)單實(shí)例

    php打亂數(shù)組二維數(shù)組多維數(shù)組的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇php打亂數(shù)組二維數(shù)組多維數(shù)組的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • PHP和.net中des加解密的實(shí)現(xiàn)方法

    PHP和.net中des加解密的實(shí)現(xiàn)方法

    PHP和.net中des加解密的實(shí)現(xiàn)方法,需要的朋友可以參考一下
    2013-02-02
  • ThinkPHP令牌驗(yàn)證實(shí)例

    ThinkPHP令牌驗(yàn)證實(shí)例

    ThinkPHP新版內(nèi)置了表單令牌驗(yàn)證功能,可以有效防止表單的遠(yuǎn)程提交等安全防護(hù)。這篇文章主要介紹了ThinkPHP令牌驗(yàn)證,需要的朋友可以參考下
    2014-06-06

最新評(píng)論