php session 前缀,PHP文件包含--session
利用條件:session文件路徑已知,且其中內容部分可控。
php的session文件的保存路徑可以在phpinfo的session.save_path看到。
session 的文件名格式為 sess_[phpsessid],而 sessionid 在發送的請求的 cookie 字段中也可以看到。
實例:“百度杯”CTF比賽 十二月場 notebook
tips:文件包含phpinfo是不是有新的發現。
打開頁面,看見url可能存在文件包含,可以看到登錄框,審查下元素,沒發現,按照正常流程走一遍,注冊admin/admin,居然還成功了,登錄,顯示歡迎admin,there is no flag。
接下來測試,先測試文件包含吧,將module的php換成空,我們可以控制要包含文件的后綴,包含一下題上提示的phpinfo.php,文件不存在。看能不能用php偽協議讀取一下login和register的源碼,未成功。然后測試下sql注入,在登錄和注冊頁面好像都沒有。
當我們沒思路的時候就掃描一下目錄。掃出robots.txt,訪問得到php1nFo.php文件,訪問得到php配置信息。我們目前可以控制的就是注冊的用戶名,接下來嘗試下session包含。
在php配置信息中可以看到
圖片.png
圖片.png
open_basedir是可將用戶訪問文件的活動范圍限制在指定的區域。注意用open_basedir指定的限制實際上是前綴,而不是目錄名。 session.save_path就是session文件存在的位置。
舉個例子: 若"open_basedir = /dir/user", 那么目錄 "/dir/user" 和 "/dir/user1"都是
可以訪問的。所以如果要將訪問限制在僅為指定的目錄,請用斜線結束路徑名。例如設置成:
"open_basedir = /dir/user/"
那么問題來了,我們只能控制/tmp目錄,/var/lib/php5這個目錄是包含不了的。。
這里用題給的tips文件包含phpinfo是不是有新的發現,文件包含php1nFo.php這個文件,可以看到
圖片.png
session.save_path變了,我也不知道為什么。。
接下來session包含。
payload:?module=&file=../../../../tmp/SESS/sess_nlloqni0ef0tpqbt3jdj81rj75
圖片.png
可以看到admin,接下來我們注冊用戶名為<?php system('ls'); ?>,登錄后。依舊payload像上面,可以得到
圖片.png
然后注冊用戶名<?php system('cat flag.php'); ?>,審查元素得到flag。
圖片.png
總結
以上是生活随笔為你收集整理的php session 前缀,PHP文件包含--session的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis java类注解式_Spr
- 下一篇: 计算机插件技术应用原理,计算机软件技术中