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\tmp\tmp

 

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

 

 

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

 

 

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

 

参考:

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

posted @ 2020-06-08 16:31  xiaoxiaosen  阅读(2972)  评论(0编辑  收藏  举报