PHP が Webshell 処理関数を妨げる_PHP チュートリアル
OSをインポート
システムをインポートします
輸入再
輸入時間
def listdir(dirs,liston='0'):
flog = open(os.getcwd()+"/check_php教程_shell.log","a+")
そうでない場合は os.path.isdir(dirs):
print "ディレクトリ %s は存在しません"% (dirs)
戻る
リスト = os.listdir(dirs)
リスト内のリストの場合:
ファイルパス = os.path.join(dirs,list)
os.path.isdir(ファイルパス)の場合:
リストン == '1' の場合:
listdir(ファイルパス,'1')
elif os.path.isfile(ファイルパス):
ファイル名 = os.path.basename(ファイルパス)
if re.search(r".(?:php|inc|html?)$", ファイル名, re.ignorecase):
i = 0
イネーム = 0
f = オープン(ファイルパス)
一方、f:
file_contents = f.readline()
file_contents でない場合:
休憩
私 += 1
match = re.search(r'''(?pb(?:include|require)(?:_once)?b)s*(?s*["'](?p [^ ;]*(? 一致する場合:
関数 = match.group("関数")
ファイル名 = match.group("ファイル名")
iname == 0の場合:
info = 'n[%s] :n'% (ファイルパス)
その他:
情報 = ''
info += 't|-- [%s] - [%s] 行 [%d] n'% (関数,ファイル名,i)
flog.write(情報)
印刷情報
イネーム += 1
match = re.search(r'b(?peval|proc_open|popen|shell_exec|exec|passthru|system|assert|fwrite|create_function)bs*(', file_contents, re.ignorecase| re.multiline)
一致する場合:
関数 = match.group("関数")
iname == 0の場合:
info = 'n[%s] :n'% (ファイルパス)
その他:
情報 = ''
info += 't|-- [%s] 行 [%d] n'% (関数,i)
flog.write(情報)
印刷情報
イネーム += 1
match = re.search(r'(^|(?<=;))s*`(?p[^`]+)`s*;', file_contents, re.ignorecase)
一致する場合:
シェル = match.group("シェル")
iname == 0の場合:
info = 'n[%s] :n'% (ファイルパス)
その他:
情報 = ''
info += 't|-- [``] コマンドは [%d] 行目の [%s] n'% (shell,i)
flog.write(情報)
印刷情報
イネーム += 1
match = re.search(r'(?p$_(?:pos|ge|reques)t)s*[[^]]+]s*(', file_contents, re.ignorecase)
一致する場合:
シェル = match.group("シェル")
iname == 0の場合:
info = 'n[%s] :n'% (ファイルパス)
その他:
情報 = ''
info += 't|-- [``] コマンドは [%d] 行目の [%s] n'% (shell,i)
flog.write(情報)
印刷情報
イネーム += 1
f.close()
flog.close()
if '__main__' == __name__:
argvnum = len(sys.argv)
リストン = '0'
argvnum == 1の場合:
アクション = os.path.basename(sys.argv[0])
print "コマンドは次のとおりです:n %s d:wwwroot n %s d:wwwroot 1 -- サブフォルダーを再帰します"% (アクション,アクション)
やめます()
elif argvnum == 2:
パス = os.path.realpath(sys.argv[1])
listdir(パス,リストン)
その他:
リストン = sys.argv[2]
パス = os.path.realpath(sys.argv[1])
listdir(パス,リストン)
flog = open(os.getcwd()+"/check_php_shell.log","a+")
isotimeformat='%y-%m-%d %x'
now_time = time.strftime(isotimeformat,time.localtime())
flog.write("n----------%s がチェックされました ------------------- --n"% (現時点))
flog.close()

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
