ホームページ  >  記事  >  バックエンド開発  >  PHP Web トロイの木馬スキャナー

PHP Web トロイの木馬スキャナー

WBOY
WBOYオリジナル
2016-07-25 08:42:181870ブラウズ
    header('content-type:text/html;charset=gbk');
  1. set_time_limit(0);//タイムアウトを防ぐ
  2. /**
  3. *
  4. * php ディレクトリスキャン監視の拡張バージョン
  5. *
  6. * @バージョン 1.0
  7. *
  8. 以下の変数は使用前に手動で設定する必要があります
  9. *
  10. **/
  11. /*== =================== プログラム構成=====================*/
  12. $pass="テスト";//パスワードを設定します
  13. $jkdir="."; //監視およびスキャンするディレクトリを設定します。現在のディレクトリは '.' で、上位ディレクトリは '..' です。絶対パスを設定することもできます後ろにスラッシュを追加しない場合、デフォルトは現在のディレクトリです
  14. $logfilename="./m.log";//どこにでも配置できるログを保存するパスを設定します
  15. $exclude=array('data' ,'images');//ディレクトリを除外します
  16. $danger='eval|cmd|passthru|gzuncompress';//トロイの木馬ファイルかどうかを判断するために検出する危険な関数を設定します
  17. $suffix='php|inc ';//スキャンするファイルのサフィックスを設定します
  18. /*== =================== 設定の終了========== ===========*/
  19. $filename=$ _GET['filename'];
  20. $jumpoff=false; ['PHP_SELF'];
  21. $thisfile = end(explode('/',$ url));
  22. $jump="{$thisfile}|".implode('|',$exclude); file_num=$danger_num=0;
  23. define('M_PATH',$jkdir);
  24. if ($check=='check')
  25. {
  26. $safearr =explode("| ",$jump);
  27. $start_time=microtime(true);
  28. safe_check($ jkdir);
  29. $end_time=microtime(true);
  30. $total=$end_time-$start_time;
  31. $file_num=$file_num-$jkdir_num ;
  32. $message= "ファイルの数: ".$file_num;
  33. $message.= " フォルダーの数: ".$jkdir_num;
  34. $message.= " 疑わしいファイルの数: ".$danger_num; = " 実行時間: ".$total;
  35. echo $message;
  36. }else{
  37. if ($_GET['m']=="del") Delete();//ファイルの削除処理
  38. //ファイルの内容を読み取る
  39. if(isset($_GET['readfile'])){
  40. //出力ビューパスワード、パスワードが正しく検証された後、ファイルの内容が出力されます
  41. if(empty($_POST['passchack'])){
  42. echo"
    " . "
  43. ."" ;
  44. 終了;
  45. }elseif(isset($_POST['passchack'])&&$_POST['passchack' ]==$pass){
  46. $code=file_get_contents($_GET['readfile']); rn";
  47. exit();
  48. }
  49. function Delete()//删除文件
  50. { global $filename,$pass;
  51. if(empty($_POST['passchack'])){
  52. echo"
    "
  53. 。 「
  54. . " "
  55. 。 " "
  56. 。 " "
  57. 。 ""
  58. ."";
  59. 終了;
  60. }elseif(isset($_POST['passchack'])&&$_POST['passchack']==$pass){
  61. (is_file($filename))?($mes=unlink($filename)?'削除に成功しました': '表示権限の削除に失敗しました'):'';
  62. echo $mes;
  63. }else{
  64. echo 'パスワードが違います! ';
  65. exit;
  66. }
  67. }
  68. function Jump($file)//ファイルをスキップ
  69. if($jump != '')
  70. {
  71. foreach($safearr as $v) )
  72. {
  73. if($v=='') 続行;
  74. if( eregi($v,$file) ) return true ; }
  75. }
  76. return false
  77. [ファイルの変更を表示]|[現在のファイルのフィンガープリントを保存]|[不審なファイルをスキャン]
  78. コードをコピー
PHP、ウェブ

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。