/***************************************************************************
* PHP Security-Shell RFI Scanner *
* *
* Copyright (C) 2007 by pentest *
* *
* http://security-shell.uni.cc *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* Test over by cnfjhh *
***************************************************************************/
$escan_inc_regex = array( /include(_once)?.$/ix, /require(_once)?.$/ix );
/* Regex to extract the names of variables */
$escan_var_regex = array( /Ainclude(_once)?./is, /Arequire(_once)?./is );
/* Array of file extensions to scan */
$escan_valid_ext = array( php );
/* Maximum size of a file to scan, scans all if 0 */
$escan_max_size = 0;
/* Counter crawled directory */
$escan_dir_count = 0;
/* 永続的にスキャンされたファイル */
$escan_file_count = 0;
/* 永続的な潜在的な rfi が見つかりました */
$escan_match_count = 0;
/*永続的にクロールされた合計バイト数 */
$escan_byte_count = 0;
escan_banner();
if( $argc < 2 ){
escan_usage($argv[0]);
}
その他{
$stime = escan_get_mtime();
escan_recurse_dir( realpath($argv[1]).DIRECTORY_SEPARATOR );
$etime = escan_get_mtime();
印刷 "
@スキャンレポート:
" .
" $escan_dir_count ディレクトリ 。
".
" $escan_file_count ファイル 。
".
" " . escan_format_size($escan_byte_count) . " .
".
" $escan_match_count 潜在的な RFI 。
".
" ".($etime-$stime) . " 2 番目の処理 。
";
}
/* 文字列はバイト単位で表される大きさでフォーマットされます */
function escan_format_size($bytes)
{
if( $bytes < 1024 ) return "$bytes bytes";
if( $bytes if( $bytes
戻り値 ($bytes / 1073741824) 。 「GB」;
}
/* タイムスタンプを秒単位で返します */
function escan_get_mtime()
{
list($usec, $sec) =explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
/* コードインクルードの行を抽出します */
function escan_scan_line($content,$offset)
{
list( $line, $dummy ) =explode( ";" , substr($content,$offset,strlen($content) )));