http路径转file会变成反斜杠_PHP session反序列化漏洞
最近有點(diǎn)忙,有空學(xué)習(xí)一下 感覺似懂非懂,今晚來刷個(gè)題,驗(yàn)證一下我的一些想法
入口:http://web.jarvisoj.com:32784/index.php?
是一個(gè)反序列化的題,源碼中
只是判斷是否set了phpinfo 如果有就輸出phpinfo,所以說這是關(guān)于session的題
session反序列化漏洞的原理網(wǎng)上有,總結(jié)一下就是兩次處理會(huì)話的session引擎不同,一個(gè)是php 一個(gè)是php serialize,而session_start()函數(shù)的定義如下:
就是如果存在現(xiàn)有會(huì)話,就重用,而重用的方式是從默認(rèn)的session存儲(chǔ)文件里將數(shù)據(jù)反序列化得出,如果存儲(chǔ)使用php serialize 而反序列化取回?cái)?shù)據(jù)用的是php 那這就導(dǎo)致了問題
接著題目講,題目中沒有給出寫入session 的方法,這就很尷尬了。。看了前輩的wp ,原來有個(gè)叫session 上傳進(jìn)度的東西
當(dāng)PHP檢測到同名post請求 就會(huì)再$_SESSION中添加一條數(shù)據(jù) 看來就是用這個(gè)來寫session的
那就搞一個(gè)文件上傳的同時(shí)再post一個(gè)請求:
將filename 改成 poc
poc 得到,得到當(dāng)前目錄信息
這里為什么改filename的值,不改其他的值,開始我也不太懂 后來查了PHP手冊,
例子中上傳的是兩個(gè)文件,如果一個(gè)文件的化,就能看出了,filename的鍵值對被寫進(jìn)入了 所以這里修改的是filename的值
再說下這個(gè)poc ,查看phpinfo得知
前面是local 后面是master一開始上傳session那個(gè)地方是使用php_serialize的,后來執(zhí)行php的腳本,就變成了php的引擎 ,再重用上傳的會(huì)話,用php引擎反序列化后,就會(huì)導(dǎo)致了問題 ,這是我的理解
講下poc ,就是php_serialize引擎在處理session時(shí)會(huì)識(shí)別 | 這個(gè)字符,但是php引擎則會(huì)把 |
當(dāng)成鍵值對的分隔符,所以用phpserialize處理過的session來給php反序列,就會(huì)得到問題,具體在這里體現(xiàn)就是實(shí)例化了一個(gè)類,完了又自動(dòng)調(diào)用__destruct,,具體原理可以百度,很多前輩都寫了
|O:5:"OowoO":1:{s:4:"mdzz";s:36:"print_r(scandir(dirname(__FILE__)));";} (為了防止"被轉(zhuǎn)義 加了)
這個(gè) | 后面,用php引擎解釋實(shí)際上就是new OowoO() ,print_r(scandir(dirname(__FILE__)))就是mdzz 瑪?shù)轮钦蠁?哈哈 為什么不用system ,因?yàn)閐isable了
后面還有,沒截到查到了當(dāng)前目錄的flag文件,接下來就是換命令了,當(dāng)前目錄在哪
當(dāng)前目錄整個(gè)流程補(bǔ)完
在如何寫入session 和調(diào)用session 那地方感覺還是一知半解,總結(jié)就是摳腳
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的http路径转file会变成反斜杠_PHP session反序列化漏洞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fft的c语言和matlab对比_Mat
- 下一篇: iis7 您无权使用所提供的凭据查看此目