Viel Spaß beim Lesen!
Hardware-View: Curl
Titel: Curl |
Hinweis: Für die Korrektheit oder Aktualität der Informationen kann nicht garantiert werden. Der Autor übernimmt daher keine Haftung für Schäden, die durch Nutzung der Informationen entstanden sind.
Curl ist ein sehr nützliches Allzwecknetzwerktool und läuft auf fast allen Plattformen über die jeweilige Konsole. Es unterstützt DICT, Hardware-Glossar: FTP, Hardware-Glossar: HTTP, HTTPS, LDAP, Hardware-Glossar: Telnet, Gopher und kann mit Dateien umgehen und sogar über HTTP-Proxyserver arbeiten. Da der Umgang mit HTTP eine besondere Stärke von Curl darstellt, gehen wir hier auf die diesbezüglichen Funktionen ein.
�
Download
Curl und weitere Informationen dazu finden Sie auf der offiziellen Downloadseite:
http://curl.haxx.se/download.html
Optionen / Flags (HTTP)
Um eine Verbindung zu einer Webseite aufzubauen,
geben Sie Folgendes in die Befehlszeile ein:
curl http://www.highgames.com
-H Header
Mit dieser Option können Sie den HTTP-Header clientseitig einstellen,
um verschiedene Verbindungsarten nachzuahmen. Folgende Einstellungen sind möglich:
- User-Agent: Browser/Version (Spooft bestimmten Browser)
- Referer: Hardware-Glossar: URL (Stellt den Referer-String auf URL ein)
- Basic Auth: username password (Stellt Benutzername und Passwort für BA ein)
- Host: localhost oder Hardware-Glossar: IP-Adresse (Legt virtuellen Host fest)
(z.B. -H 'User-Agent: Mozilla/4.0)
-b Datei
Die hier angegebene Cookie-Datei wird mit zum Hardware-Glossar: Server übertragen.
(z.B. -b cookie.txt)
-c Datei
Speichert alle vom Server gesetzten Cookies in die angegebene Datei.
(z.B. -c cookie.txt)
-d POST-DATA
Überträgt Informationen mittels der POST-Methode, welche in HTML-Formularen zum Einsatz kommt.
(z.B. -d username=admin&password=shhh)
-G GET-DATA
Funktioniert nur im Zusammenhang mit der -d Option, und ändert die POST-Übertragung in eine GET-Übertragung um.
(z.B. -d -G username=admin&password=shhh)
-u USER-DATA
Damit lassen sich Benutzername und Passwort bei einer Basic-Hardware-Glossar: Authentication übermitteln.
(z.B. -u username:password)
--url
Diese Option ist nicht nötig zum Verbinden mit Servern. Damit lassen sich allerdings mehrere abzugreifende URLs angeben.
(z.B. --url http://www.highgames.com --url http://www.highgames.com/whitehat)
-x Proxy-Server
Stellt einen HTTP-Proxy ein.
(z.B. -x http://intraweb:80/)
-U USER-DATA
Wenn Sie die Option -x verwenden, können Sie mit -U den Benutzernamen und Passwort für die Proxyverbindung angeben.
(z.B. -U username:password)
-K Konfig-Datei
Die angegebene Datei wird zeilenweise ausgelesen, und die darin enthaltenen Anweisungen schließlich ausgeführt.
(z.B. -K curl.conf)
Sämtliche Befehle von Curl können Sie der Man-Page entnehmen.
Anwendungsbeispiel
In Verbindung mit einem Shellscript oder beispielsweise C/C++-Programm wird Curl zu einem sehr mächtigem Internetwerkzeug. Damit lassen sich z.B. effiziente Passwortknacker für Internetseiten erstellen. Das Skript / Programm ruft Curl auf und lässt es eine Verbindung zu einem HTTP-Host mit bestimmter POST-Data aufbauen (oder GET; je nachdem, wie die Anwendung funktioniert). Die meisten Webseiten setzten bei einer erfolgreichen Anmeldung bestimmte Cookies. Diese kann Curl in einer Datei speichern. Das Programm überprüft bei jedem Versuch, ob das gesuchte Cookie gesetzt wurde, und wiederholt die Prozedur bei Misserfolg einfach mit einem neuen Passwort. Das soeben beschriebene Prinzip für Active-Brute-Forcing lässt sich auch bei FTP und weiteren Protokollen anwenden, sofern die darüber liegenden Anwendungen Cookies verwenden. Ein großer Nachteil jedoch ist, dass Curl keine IP-Adressen spoofen (fälschen) kann. Gängige Programmiersprachen wie C/C++ verfügen jedoch über Bibliotheken, mit welchen man diese Funktion selbst einbauen kann, indem man quasi ein letztes Tor für HTTP-Anfragen entwickelt, das u.a. IP-Adressen dynamisch fälschen kann. Ein fürsorglicher Webmaster kann sich diese Informationen zunutze machen, und seine Webseite sicherer gestallten, indem er beispielsweise bei einer bestimmten Menge ungültiger Login-Versuche die Funktion für einen beliebigen Zeitraum sperrt.