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