polarctf session文件包含

polarctf session文件包含

Session文件包含漏洞

当可以获取session文件路径并且session文件的内容可控的的时候,就可以通过包含session文件进行攻击

利用条件

session文件包含的利用条件有两个:

  • Session的存储位置可以获取
  • Session的内容可控

一般通过以下两种方式获取session的存储位置:

  • 通过phpinfo的信息获取session的存储位置。
    通过phpinfo的信息获取session.save_path

  • 通过猜测默认的session存储位置进行尝试
    通常Linux中的Session的默认存储位置在/var/lib/php/session目录下

  • temp/session
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11



    ### 示例分析

    session文件包含代码如下

    ```php
    session_start();
    $ctfs=$_GET['ctfs'];
    $_SESSION['username']=$ctfs

此代码可以通过GET型的ctfs参数传入。PHP代码将会获取的值存入到Session中。
攻击者可以利用ctfs参数将恶意代码写入到session文件中,然后在利用文件包含漏洞包含此session文件,向系统中传递恶意代码。

漏洞分析

上面的代码满足Session文件包含的两个要求

  • PHP代码将会获取ctfs变量的值存入到session中
  • Session的默认 存储位置是/var/lib/php/session

访问URL:http://www.abc.com/xxx/session.php?ctfs=a 会在/var/lib/php/session目录下降ctfs传入的值存储到session中
Session的文件名以sess_开头,后跟Sessionid,Sessionid可以通过开发者模式获取:
单击右键——检查——存储——Cookie——PHPSESSID 就可以找到内容

假设通过开发者模式获取到的sessionid的值为hufh7hsdf392eurh4,所以session的文件名为sess_hufh7hsdf392eurh4

漏洞利用

通过上面的分析,可以得知,向ctfs参数传入的内容会存储到session文件中。
如果存在本地文件包含漏洞,就可以通过ctfs写入恶意代码到Session文件当中去,然后通过文件包含漏洞执行getshell

例如:访问代码http://www.abc.com/xxx/session.php?ctfs=<?php phpinfo();?>后,会在/var/lib/php/session目录下降ctfs的值写入session文件
session文件的内容为:username|s:18:"<?php phpinfo();?>".

攻击步骤

  • 将恶意代码写入session文件
  • 攻击者可以通过PHPinfo或者猜测到session存放的位置
  • 通过开发者模式可以获得文件名称
  • 通过本地文件包含漏洞可以解析session文件达到攻击的目的

比如:http://www.abc.com/xxx/file.php?file=../../var/lib/php/session/sess_7sdfysdfywy9323cew2

✔PHP文件包含漏洞全面总结 - Zeker62 - 博客园

wp

PixPin_2025-04-21_19-13-32

利用php伪协议读取action.php

PixPin_2025-04-21_19-13-13

base64解码得到源码,跟session文件包含实例几乎一样

PHP代码将会获取POST型name变量的值存入到session中

利用开发者模式找到了session的值 msd07aqckf2mag1um8qtjapj50

PixPin_2025-04-21_19-35-39

访问代码http://www.abc.com/temp/sess_xxxxx?后,会在/session目录下将name的值写入session文件 ,向系统中传递恶意代码。

PixPin_2025-04-21_19-50-28

1
2
name=<?php system('ls')?>
name=<?php system('tac flaggggg')?>

PixPin_2025-04-21_19-59-03


polarctf session文件包含
http://example.com/2025/04/21/polarctf-session文件包含/
作者
everythingis-ok
发布于
2025年4月21日
许可协议