01. Konzepteinführung
1,1 xss
XSS-Angriffe beziehen sich in der Regel auf die Ausnutzung von Schwachstellen, die während der Webentwicklung entstanden sind, und auf das Einschleusen bösartiger Befehlscodes in Webseiten durch clevere Methoden, die es Benutzern ermöglichen, von Angreifern böswillig erstellte Webprogramme zu laden und auszuführen. Bei diesen bösartigen Webprogrammen handelt es sich in der Regel um JavaScript, sie können aber auch Java, VBScript, ActiveX, Flash oder sogar einfaches HTML enthalten. Nach einem erfolgreichen Angriff kann der Angreifer verschiedene Inhalte erhalten, einschließlich, aber nicht beschränkt auf höhere Privilegien (z. B. das Ausführen einiger Vorgänge), private Webinhalte, Sitzungen und Cookies.
Referenz: Baidu-Enzyklopädie
1.2 Eskalation von PR-Privilegien
Die PR-Privilegieneskalation nutzt eine lokale Überlaufschwachstelle in Windows aus. Ihre Hauptfunktion besteht darin, Benutzern mit geringen Privilegien Systemprivilegien zu verleihen. Dies kommt häufig bei der Eskalation von Webshell-Privilegien vor. Die Patch-Nummer ist KB952004.
02. Schießstandumgebung
Angriffsmaschine: Mac-IP: 10.211.55.2
Zieldrohne: Windows Server2003 + xycms
IP-Adresse der verschobenen Website: 10.211.55.17:81
Untersuchen Sie die Sicherheitstestfunktionen:
Wenn Sie das automatisierte Testen erlernen möchten, empfehle ich Ihnen eine Reihe von Videos. Dieses Video kann als das von Bilibili gespielte Tutorial zum automatisierten Testen Nummer eins im gesamten Netzwerk bezeichnet werden. Die Anzahl der Personen, die gleichzeitig online sind, hat 1.000 erreicht , und es gibt auch Notizen, die gesammelt und verteilt werden können. Technische Kommunikation von Lu Dashen: 798478386
03. Sicherheitstestprozess
PS: Derzeit stehen verschiedene Sicherheitslösungen zum Testen auf dem Schießstand zur Verfügung. Die Lösungen im Artikel dienen nur als Referenz!
3.1 Informationssammlung
Durchsuchen Sie die Website:
3.1.1 Verzeichnis-Scan
Verwenden Sie hier zunächst den Verzeichnisscanner, um das Verzeichnis zu scannen:
dirsearch -u http://10.211.55.17:81/
[14:59:34] 301 - 149B - /js -> http://10.211.55.17:81/js/
[14:59:34] 403 - 32B - /%2e%2e//google.com
[14:59:34] 500 - 3KB - /.ashx
[14:59:34] 500 - 3KB - /.asmx
[14:59:34] 500 - 3KB - /.aspx
[14:59:34] 500 - 3KB - /.axd
[14:59:37] 301 - 152B - /ADMIN -> http://10.211.55.17:81/ADMIN/
[14:59:37] 301 - 152B - /Admin -> http://10.211.55.17:81/Admin/
[14:59:38] 500 - 3KB - /Trace.axd
[14:59:39] 500 - 3KB - /WebResource.axd?d=LER8t9aS
[14:59:39] 403 - 32B - /\..\..\..\..\..\..\..\..\..\etc\passwd
[14:59:40] 301 - 152B - /admin -> http://10.211.55.17:81/admin/
[14:59:40] 200 - 3KB - /admin/
[14:59:40] 200 - 3KB - /admin/?/login
[14:59:46] 301 - 153B - /editor -> http://10.211.55.17:81/editor/
[14:59:46] 200 - 1KB - /editor/
[14:59:46] 500 - 3KB - /elmah.axd
[14:59:48] 301 - 153B - /images -> http://10.211.55.17:81/images/
[14:59:48] 200 - 3KB - /images/
[14:59:48] 301 - 150B - /inc -> http://10.211.55.17:81/inc/
[14:59:48] 200 - 806B - /inc/
[14:59:48] 200 - 739B - /js/
[14:59:53] 500 - 3KB - /service.asmx
[14:59:54] 301 - 152B - /style -> http://10.211.55.17:81/style/
[14:59:55] 500 - 3KB - /umbraco/webservices/codeEditorSave.asmx
[14:59:56] 500 - 3KB - /web.config
Task Completed
Hier sollte es einige Hintergrundinformationen geben.
3.1.2 Plug-in-Sammlung
Informationen, die über das Wappalyzer-Plug-in gesammelt werden, finden Sie unter:
Das System sollte auf Windows Server laufen, die Sprache, in der die Website läuft, ist ASP und der Webserver sollte IIS sein.
3.2 Prüfung der Injektionsschwachstelle
Normale Seite:
http://10.211.55.17:81/news_detail.asp?id=109
Die Seite nach dem Hinzufügen einfacher Anführungszeichen:
http://10.211.55.17:81/news_detail.asp?id=109'
Daher wird hier eine mögliche SQL-Injection vermutet.
3.3 Sicherheitslücke bei schwachen Passwörtern
Im Hintergrund liegen derzeit folgende Informationen vor:
-
Die Hintergrundanzeige ist das Enterprise-Website-Building-System XYCMS, ein kommerzielles CMS
-
Möglicherweise liegt im Hintergrund ein schwaches Passwort vor, und es scheint, dass es nicht mit roher Gewalt geknackt werden kann, da ein Bestätigungscode vorhanden ist.
Um die oben genannten Informationen zu erhalten, versuchen Sie es zunächst mit schwachen Passwörtern.
Beim Testen von Admin im Hintergrund wurde festgestellt, dass der Hintergrund direkt eingegeben werden kann, sodass eine Schwachstelle bei Passwörtern besteht.
Und hier wurde eine Bak-Datei gefunden, die eine Backup-Datei sein sollte. Klicken Sie hier, um es herunterzuladen und auszuprobieren:
Daher macht die aktuelle Datei hier wenig Sinn.
3.4 Sicherheitslücke im Bestätigungscode
Auch in der Hintergrundschnittstelle, wenn wir Burpsuite zum Brute-Force-Cracken verwenden, gibt es zwar einen Bestätigungscode, aber nach dem Testen kann der Bestätigungscode hier mehrmals wiederverwendet werden, sodass eine Sicherheitslücke bei der Wiederverwendung des Bestätigungscodes besteht.
3.5 XSS-Sicherheitslücke
Beim Durchsuchen der Website habe ich gesehen, dass Sie hier Reservierungsinformationen eingeben können. Aus Erfahrung weiß ich, dass diese Art von CMS XSS-Schwachstellen aufweisen sollte und in Zukunft getestet wird.
04. Überprüfung der Schwachstelle
4.1 Sicherheitslücke bei Injektionen
In 3.2 wurde festgestellt, dass hier möglicherweise eine SQL-Injection-Schwachstelle besteht, daher wird hier sqlmap zum Testen verwendet.
sqlmap -u http://10.211.55.17:81/news_detail.asp?id=109
Zu diesem Zeitpunkt wurde festgestellt, dass eine boolesche Blindinjektion vorliegt und auf die Datenbank zugegriffen wird. Für diese Art von Datenbank können Sie das Pangolin-Injektionstool (Pangolin) für eine schnelle Injektion verwenden.
An dieser Stelle stellt sich auch schnell heraus, dass es sich um eine Injektion handelt.
Rufen Sie Datenbankkonto- und Passwortinformationen direkt ab:
Rufen Sie zu diesem Zeitpunkt den MD5-Wert des Kontos und des Passworts ab:
admin|21232f297a57a5a743894a0e4a801fc3|
Versuchen Sie zu diesem Zeitpunkt, MD5 zu entschlüsseln:
Das Passwort ist admin
4.2 xss Touch-Eingabe
Blindes Tippen bedeutet, nicht zu wissen, wo XSS-Schwachstellen bestehen könnten, und an mehreren Stellen zu testen, wo js-Anweisungen eingefügt werden können.
In 3.5 wurde nachgewiesen, dass das CMS möglicherweise eine XSS-Schwachstelle aufweist, sodass es hier getestet werden kann.
Legen Sie zunächst eine XSS-Nutzlast auf der selbst erstellten XSS-Plattform fest:
Kopieren Sie die aktuelle Nutzlast und fügen Sie sie gerade in das Message Board ein. Ändern Sie den Front-End-Code und fügen Sie den XSS-Code direkt ein:
Zu diesem Zeitpunkt wird angezeigt, dass die XSS-Anweisung erfolgreich eingefügt wurde.
Melden Sie sich mit der Adresse und dem Passwort an, die Sie gerade im Backend kennen, klicken Sie auf Online-Terminverwaltung. Sie können sehen, dass alle Nachrichten hier unsichtbar sind. Sie können eine beliebige öffnen, um einen Blick darauf zu werfen.
Nach dem Öffnen sind keine gültigen Informationen zu sehen:
Gehen Sie zu diesem Zeitpunkt zur XSS-Plattform, um Folgendes anzuzeigen:
An dieser Stelle können Sie sehen, dass die Hintergrundadresse und Cookie-Informationen abgerufen wurden.
Besuchen Sie hier über einen anderen neuen Browser
http://10.211.55.17:81/index.asp,
Und verwenden Sie jetzt den Cookie-Editor, um das Cookie zu ersetzen.
wieder besuchen
http://10.211.55.17:81/admin/xycms.asp
Zu diesem Zeitpunkt haben Sie den Hintergrund erfolgreich eingegeben.
Dies beweist, dass die Website eine gespeicherte XSS-Schwachstelle aufweist.
4.3 Hintergrund-Getshell
Versuchen Sie nach Eingabe des Hintergrunds, eine Shell zu erhalten.
Im Hintergrund haben wir herausgefunden, dass es sich bei diesem CMS um XYCMS handelt. Wir haben Schwachstellen zu diesem CMS im Internet gesammelt:
Ich habe im Internet einen Artikel über die Methode zum Abrufen einer Shell im xycms-Hintergrund gefunden:
Dann probieren Sie es im Hintergrund aus:
Fügen Sie diesen Satz in den Website-Namen ein (eigentlich können Sie hier einen beliebigen Website-Namen, eine Website-Beschreibung und Website-Schlüsselwörter auswählen) und speichern Sie dann die Systemeinstellungen.
Besuchen Sie: http://10.211.55.17:81/inc/config.asp
Verwenden Sie zum Herstellen einer Verbindung das Webshell-Verwaltungstool. Verwenden Sie hier Ant Sword:
Nachdem Sie es wie unten gezeigt hinzugefügt haben, doppelklicken Sie zum Öffnen:
Webshell-Verbindung erfolgreich: