1
私はbashが初めてで、悪意のあるファイルをチェックするスクリプトを作成しようとしています。具体的には、グローバルPHP変数を使用してコンテンツを非表示にします。以下は、このようなファイルの例行です:私はそれを印刷しecho $eval
ときリモートサーバのBash forループ
eval=$(ssh -q -t -o GSSAPIAuthentication=yes [email protected]$webs "/usr/bin/ssuu $domain" << EOF
grep -l -r --include=*.php -PHn "(eval\(.*\);)" .
exit
EOF
)
:
$GLOBALS['qahtm46']($zadoh31) < 12) { $GLOBALS['wlcrh95']($i34, $gxfej87);
私はチェックして、リモートから結果を取得する必要があるが、ここで私は現在、その他の情報を接続し、フェッチ方法です一致するファイル名すばらしいです!
私が直接サーバー上で以下のコマンドを実行するたびに:
for x in $(find public_html -type f -name '*.php' | xargs grep -ol 'GLOBALS'); do grep -o 'GLOBALS' $x | wc -l | tr '\n' ' ' ; echo $x; printf "\n"; sleep 1; done
exit
EOF
)
私は正しい出力を得る:
1 public_html/update.php
363 public_html/sites/all/themes/corporate_blue/images/proxy2.php
363 public_html/sites/all/themes/corporate_blue/images/proxy.php
2 public_html/sites/all/modules/views/views.api.php
2 public_html/sites/all/modules/imce/tpl/imce-page.tpl.php
1 public_html/sites/all/modules/ckeditor/includes/filemanager.config.php
4 public_html/modules/simpletest/drupal_web_test_case.php
私は私の通常の方法を使用して、これを実行したときしかし、私はすべての出力を得ることはありませんファイルに出力するとファイルが作成されますが、何も書き込まれません。
globals=$(ssh -q -t -o GSSAPIAuthentication=yes [email protected]$webs "/usr/bin/ssuu $domain" << EOF
for x in $(find public_html -type f -name '*.php' | xargs grep -ol 'GLOBALS'); do grep -o 'GLOBALS' $x | wc -l | tr '\n' ' ' ; echo $x; printf "\n"; sleep 1; done
exit
EOF
)
問題を参照してください?