Heim Backend-Entwicklung PHP-Tutorial 扫描目录下的php文件,是不是含有木马特征

扫描目录下的php文件,是不是含有木马特征

Jun 13, 2016 am 11:54 AM
filepath function info path quot

扫描目录下的php文件,是否含有木马特征

shell_checkl

#!/usr/bin/python#-*- encoding:UTF-8 -*-##### @package## @desc 扫描目录下的php文件,是否含有木马特征,注意,不是“木马扫描”## @useage python shell_check.py /your/web/path/ 1=是否递归###import osimport sysimport reimport timedef listdir(dirs,liston='0'):    flog = open(os.getcwd()+"/check_php_shell.log","a+")    if not os.path.isdir(dirs):        print "directory %s is not exist"% (dirs)        return    lists = os.listdir(dirs)    for list in lists:        filepath = os.path.join(dirs,list)        if os.path.isdir(filepath):            if liston == '1':                listdir(filepath,'1')        elif os.path.isfile(filepath):            filename = os.path.basename(filepath)            if re.search(r"\.(?:php|inc|html?)$", filename, re.IGNORECASE):                i = 0                iname = 0                f = open(filepath)                while f:                    file_contents = f.readline()                    if not file_contents:                        break                    i += 1                    match = re.search(r'''(?P<function>\b(?:include|require)(?:_once)?\b)\s*\(?\s*["'](?P<filename>.*?(?eval|proc_open|popen|shell_exec|exec|passthru|system)\b\s*\(', file_contents, re.IGNORECASE| re.MULTILINE)                    if match:                        function = match.group("function")                        if iname == 0:                            info = '\n[%s] :\n'% (filepath)                        else:                            info = ''                        info += '\t|-- [%s]  line [%d] \n'% (function,i)                        flog.write(info)                        print info                        iname += 1                                         match = re.findall(r'(\$[a-z0-9_]*?\s*?\(.*?\))', file_contents, re.IGNORECASE)                    if match:                        if iname == 0:                            info = '\n[%s] :\n'% (filepath)                        else:                            info = ''                        info += '\t|-- [%s]  line [%d] \n'% (match[0],i)                        flog.write(info)                        print info                        iname += 1                 f.close()    flog.close()if '__main__' == __name__:    argvnum = len(sys.argv)    liston = '0'    if argvnum == 1:        action = os.path.basename(sys.argv[0])        print "Command is like:\n   %s D:\wwwroot\ \n   %s D:\wwwroot\ 1    -- recurse subfolders"% (action,action)        quit()    elif argvnum == 2:        path = os.path.realpath(sys.argv[1])        listdir(path,liston)    else:        liston = sys.argv[2]        path = os.path.realpath(sys.argv[1])        listdir(path,liston)    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 checked ---------------------\n"% (now_time))    flog.close()</filename></function>
Nach dem Login kopieren


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Schritte zum Festlegen der PATH-Umgebungsvariablen des Linux-Systems Schritte zum Festlegen der PATH-Umgebungsvariablen des Linux-Systems Feb 18, 2024 pm 05:40 PM

So legen Sie die Umgebungsvariable PATH in Linux-Systemen fest. In Linux-Systemen wird die Umgebungsvariable PATH verwendet, um den Pfad anzugeben, in dem das System in der Befehlszeile nach ausführbaren Dateien sucht. Durch die korrekte Einstellung der Umgebungsvariablen PATH können wir Systembefehle und benutzerdefinierte Befehle an jedem Ort ausführen. In diesem Artikel wird erläutert, wie die Umgebungsvariable PATH in einem Linux-System festgelegt wird, und es werden detaillierte Codebeispiele bereitgestellt. Zeigen Sie die aktuelle PATH-Umgebungsvariable an. Führen Sie den folgenden Befehl im Terminal aus, um die aktuelle PATH-Umgebungsvariable anzuzeigen: echo$P

Was bedeutet Funktion? Was bedeutet Funktion? Aug 04, 2023 am 10:33 AM

Funktion bedeutet Funktion. Es handelt sich um einen wiederverwendbaren Codeblock mit bestimmten Funktionen. Er kann Eingabeparameter akzeptieren, bestimmte Operationen ausführen und Ergebnisse zurückgeben. Code, um die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern.

So legen Sie die Pfadumgebungsvariable fest So legen Sie die Pfadumgebungsvariable fest Sep 04, 2023 am 11:53 AM

Methode zum Festlegen der Pfadumgebungsvariablen: 1. Windows-System, öffnen Sie „Systemeigenschaften“, klicken Sie auf die Option „Eigenschaften“, klicken Sie auf „Erweiterte Systemeinstellungen“, wählen Sie im Fenster „Systemeigenschaften“ die Registerkarte „Erweitert“ und dann Klicken Sie auf die Schaltfläche „Umgebungsvariablen“, suchen Sie nach „Pfad“ und klicken Sie darauf, um ihn zu bearbeiten und zu speichern. 2. Öffnen Sie bei Linux-Systemen das Terminal, öffnen Sie Ihre Bash-Konfigurationsdatei und fügen Sie am Ende „export PATH=$PATH: Dateipfad“ hinzu die Datei und speichern Sie sie; 3. Für MacOS-Systeme ist der Vorgang derselbe wie oben.

Was ist der Zweck der Funktion „enumerate()' in Python? Was ist der Zweck der Funktion „enumerate()' in Python? Sep 01, 2023 am 11:29 AM

In diesem Artikel lernen wir die Funktion enumerate() und den Zweck der Funktion „enumerate()“ in Python kennen. Was ist die Funktion enumerate()? Die Funktion enumerate() von Python akzeptiert eine Datensammlung als Parameter und gibt ein Aufzählungsobjekt zurück. Aufzählungsobjekte werden als Schlüssel-Wert-Paare zurückgegeben. Der Schlüssel ist der Index, der jedem Element entspricht, und der Wert sind die Elemente. Syntax enumerate(iterable,start) Parameter iterable – Die übergebene Datensammlung kann als Aufzählungsobjekt namens iterablestart zurückgegeben werden – Wie der Name schon sagt, wird der Startindex des Aufzählungsobjekts durch start definiert. wenn wir es ignorieren

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Wie behebe ich den Fehler „undefiniert: filepath.Abs' in Golang? Wie behebe ich den Fehler „undefiniert: filepath.Abs' in Golang? Jun 24, 2023 pm 04:37 PM

In Golang ist filepath.Abs ​​​​eine sehr häufig verwendete Bibliothek. Ihre Funktion besteht darin, den absoluten Pfad eines relativen Pfads zu ermitteln. In einigen Fällen werden wir jedoch feststellen, dass bei der Verwendung von filepath.Abs ​​der Fehler „undefiniert: filepath.Abs“ auftritt, was bedeutet, dass wir die Dateipfadbibliothek nicht korrekt eingeführt oder die falsche Syntax geschrieben haben. In diesem Artikel wird erläutert, wie Sie diesen Fehler beheben können. Zuerst müssen wir verstehen

Detaillierte Erläuterung der Rolle und Funktion der MySQL.proc-Tabelle Detaillierte Erläuterung der Rolle und Funktion der MySQL.proc-Tabelle Mar 16, 2024 am 09:03 AM

Detaillierte Erläuterung der Rolle und Funktion der MySQL.proc-Tabelle. MySQL ist ein beliebtes relationales Datenbankverwaltungssystem. Wenn Entwickler MySQL verwenden, müssen sie häufig gespeicherte Prozeduren erstellen und verwalten. Die MySQL.proc-Tabelle ist eine sehr wichtige Systemtabelle. Sie speichert Informationen zu allen gespeicherten Prozeduren in der Datenbank, einschließlich des Namens, der Definition, der Parameter usw. der gespeicherten Prozeduren. In diesem Artikel erklären wir ausführlich die Rolle und Funktionalität der MySQL.proc-Tabelle

So legen Sie die Umgebungsvariable PATH unter Linux richtig fest So legen Sie die Umgebungsvariable PATH unter Linux richtig fest Feb 22, 2024 pm 08:57 PM

So legen Sie die Umgebungsvariable PATH unter Linux richtig fest. Im Linux-Betriebssystem sind Umgebungsvariablen einer der wichtigen Mechanismen zum Speichern von Konfigurationsinformationen auf Systemebene. Unter anderem wird die Umgebungsvariable PATH verwendet, um die Verzeichnisse anzugeben, in denen das System nach ausführbaren Dateien sucht. Die korrekte Einstellung der Umgebungsvariablen PATH ist ein wichtiger Schritt, um den normalen Betrieb des Systems sicherzustellen. In diesem Artikel wird erläutert, wie Sie die Umgebungsvariable PATH unter Linux richtig festlegen, und es werden spezifische Codebeispiele bereitgestellt. 1. Überprüfen Sie die aktuelle Umgebungsvariable PATH und geben Sie den folgenden Befehl in das Terminal ein

See all articles