session文件包含漏洞复现

一、环境搭建

文件包含漏洞测试代码  file.php

<?php
    $filename  = $_GET['filename'];
    include($filename);
?>

session内容可控测试代码  session.php

<?php
session_start();
$ctfs=$_GET['ctfs'];
$_SESSION["username"]=$ctfs;
?>

二、利用条件

1、session存储位置可以获取

可以通过phpinfo查看

 也可以通过猜测,例如linux默认存储在/var/lib/php/session目录下

2、session可控

当session可控时,就可以传入恶意代码

3、知道session文件名

session文件名的构造是sess_   +  sessionid    ,  sessionid在cookie中可以查看

三、漏洞利用

 这里可以传入可控的session,将<?php phpinfo(); ?>写入session文件

通过phpinfo、或者猜测,我们知道了session存储位置为D:phpStudy mp mp

现在来看session文件名,所以文件名为sess_p3dgmgo7abevkeoe5dpo3r1qp1

在文件包含漏洞的页面,提交getshell

整体思路:通过可控的session值,传入恶意代码,找到session文件地址、文件名,通过文件包含漏洞包含session文件,达到getshell的目的

参考:

https://www.freebuf.com/articles/web/182280.html

原文地址:https://www.cnblogs.com/xiaoxiaosen/p/13066501.html