干货|Session Upload Progress 无文件包含利用复现

admin 2024年10月13日01:27:28评论9 views字数 1828阅读6分5秒阅读模式

干货|Session Upload Progress 无文件包含利用复现

戟星安全实验室

    忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等
干货|Session Upload Progress 无文件包含利用复现

本文约1260字,阅读约需3分钟。

干货|Session Upload Progress 无文件包含利用复现
干货|Session Upload Progress 无文件包含利用复现

前言

干货|Session Upload Progress 无文件包含利用复现

    事情起因是审计时挖到一个文件包含漏洞,正好没找到文件写入点。借此机会学习和复现一下PHP >= 5.4 利用“Session Upload Progress”无文件包含姿势。

干货|Session Upload Progress 无文件包含利用复现

内容可控

干货|Session Upload Progress 无文件包含利用复现

首先我挖到的文件包含漏洞可以包含任意路径的文件,因为没有可以写入文件的点就需要考虑无文件包含的姿势,然后便是利用了”Session Upload Progress“进行无文件包含的,这是5.4新增的一个功能用于监测文件上传的进度——使用后PHP会把该文件的详细信息(如上传时间、上传进度等)存储在session当中。现在介绍一下相关的PHP配置信息:

session.upload_progress.enabled = On“时为开启”上传进度监测功能“;session.upload_progress.cleanup= On“ 表示上传文件完毕后清除该SESSION文件;

session.upload_progress.name则表示当一个上传在处理中,同时POST一个与INI中设置的session.upload_progress.name同名变量时,上传进度可以在$_SESSION中获得,上传进度的 索引是 session.upload_progress.prefix 与 session.upload_progress.name拼接在一起的值,同时注意该值会保存在SESSION文件中(在我们浏览页面的时候登录一个账号就会创建一个会话,SESSION文件就是这个登陆后会话的文件形式),因此SESSION文件的内容有部分是我们可控的可以插入php代码,具体见下图:

1.这是session.upload_progress.prefix

干货|Session Upload Progress 无文件包含利用复现

2.这是session.upload_progress.name

干货|Session Upload Progress 无文件包含利用复现

两者拼接存入SESSION文件,经过php自己处理后的SESSION文件大概长这样,观察后半部分可以发现我们提交的恶意代码。这时候我们搞定了漏洞的三分之一:文件内容可控。

干货|Session Upload Progress 无文件包含利用复现

二.SESS文件名可控,SESS文件名在正常创建的时候可以发现不是规律的,我们文件包含漏洞没办法猜到该文件名。

干货|Session Upload Progress 无文件包含利用复现

但是在“session.use_strict_mode = 0”(默认为0)时是可控的,该配置项意味着用户可以控制自己的会话ID。提交参数”PHPSESSID=pikachu“,PHP程序会自动创建一个我们预期的SESSION文件,也就是”sess_pikachu

干货|Session Upload Progress 无文件包含利用复现

显然,文件包含的文件名也可以猜到了。那么我们可以直接“include('xxx/tmp/sess_pikachu')”了吗?很可惜的是,在文件上传完毕之后所有文件上传进度信息都会清除。

三.session.upload_progress.cleanup与条件竞争

”session.upload_progress.cleanup = on“时在文件上传完毕之后所有文件上传进度信息都会清除,因此要用到条件竞争的方式在清除内容之前占用该文件,就像平时删除文件的时候系统提示文件占用一样。

补充一下:生成恶意SESS文件不是无条件的,只有服务器那边开了会话我们提交PHPSESSID才会创建该文件比如在

1.代码这里开启:

干货|Session Upload Progress 无文件包含利用复现

2.配置文件里开启

干货|Session Upload Progress 无文件包含利用复现

接下来漏洞利用具体操作就是,我们一边不停的生成我们的恶意SESS文件,一边不停的尝试触发文件包含漏洞。

干货|Session Upload Progress 无文件包含利用复现

成功包含文件

干货|Session Upload Progress 无文件包含利用复现

干货|Session Upload Progress 无文件包含利用复现

往期回顾

干货|Session Upload Progress 无文件包含利用复现
【干货分享】对RuoYi内存马简单二开
【工具分享】Burp插件-AccessKey泄露正则匹配插件
干货分享|Nacos 身份认证绕过漏洞复现-附Nuclei脚本
干货|从无到有学习Golang编写poc&exp

声明

    由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,戟星安全实验室及文章作者不为此承担任何责任。

    戟星安全实验室拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经戟星安全实验室允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

干货|Session Upload Progress 无文件包含利用复现
干货|Session Upload Progress 无文件包含利用复现

干货|Session Upload Progress 无文件包含利用复现

戟星安全实验室

# 长按二维码 || 点击下方名片 关注我们 #

干货|Session Upload Progress 无文件包含利用复现

原文始发于微信公众号(戟星安全实验室):干货|Session Upload Progress 无文件包含利用复现

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月13日01:27:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   干货|Session Upload Progress 无文件包含利用复现https://cn-sec.com/archives/1911322.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息