![]() |
http request/get flood
servuß
ich will einen http flood coden, da ich an sowas am meisten spaß hab und mich die funktionsweise interessiert (und wie man womöglich gegenmaßnahmen ergreifen kann) THATS ONLY PRACTICE ich hab mal was zum test geschrieben, funktioniert aber nicht
Delphi-Quellcode:
die http request funktion hat ein kollege von mir geschrieben, weil ich nicht wusste wie ich es anders lösen sollte
function CreateHTTPRequest(Site: String): String;
var Request: String; begin Randomize; Request := 'GET ' + Site + ' HTTP/1.1' + #13#10; Request := Request + 'Host: ' + Site + #13#10; Request := Request + 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' + #13#10; Request := Request + 'Accept-Language: en-us,en' + #13#10; Request := Request + 'User-Agent: ' + UserAgents[1 + Random(11)] + #13#10; Request := Request + 'Referer: ' + Referer[1 + Random(5)] + #13#10; Request := Request + 'Connection: close' + #13#10#13#10; Result := Request; end; procedure TForm1.Button1Click(Sender: TObject); begin Seite := Edit1.Text; ClientSocket1.Active := true; Label1.Visible := true; Label1.Caption := 'Flooding on port 80...'; while flood do begin ClientSocket1.Socket.Connect(Strtoint(target)); if ClientSocket1.Socket.Connected then begin Clientsocket1.Socket.SendText(CreateHTTPRequest(Seite)); Clientsocket1.Socket.Disconnect(Strtoint(Seite)); Sleep(2); Application.ProcessMessages; end; end; Clientsocket1.Socket.Free; end; procedure TForm1.Button2Click(Sender: TObject); begin Application.Terminate; end; end. kann mir da wer helfen? ich hab versucht mit tclientsocket eine verbindung aufzubauen, aber scheinbar funktioniert das nicht. hab mir schon überlegt das mit raw sockets zu machen, aber die sind ja ab sp2 deaktiviert. wie schauts denn mit winsock aus? achja, eigentlich wollte ich bei
Delphi-Quellcode:
nicht sendtext, sondern sendstring senden, nur das hat nicht ganz geklappt.
Clientsocket1.Socket.SendText(CreateHTTPRequest(Seite));
|
Re: http request/get flood
Weißt du überhaupt was dieser Code da macht? Dein Problem liegt in Zeile 30, da steht
![]() PS.: Du testest das ja sicher nur an deinen eigenen Servern? Liebe Grüße, Valentin |
Re: http request/get flood
natürlich weiß ich was der code macht
ich versuch eben einen webserver auf port 80 unzählig viele requests zu schicken und soviele threads wie möglich aufzumachen wie könnte ich das anders einfach machen? ich habe etwas über idHTTP gelesen, damit wäre es doch theoretisch einfach möglich oder? |
Re: http request/get flood
Zitat:
|
Re: http request/get flood
Hast du dir angeschaut was Sleep(2) macht? :zwinker:
Liebe Grüße, Valentin |
Re: http request/get flood
Zitat:
|
Re: http request/get flood
jo schon ^^
naja was ich auch mache, mein prog mein "keine adresse angegeben" bzw es kommt irgendein error, den ich gleich posten werden. naja, ich denke nicht dass es an sleep liegt. wie soll denn sleep den programmablauf stören? |
Re: http request/get flood
Zitat:
Man sagt, um einen sogenannten DoS (Denial of Service, also Serviceverweigerung - das ist einer von vielen Vorgängen einen Dienst lahmzulegen. Ein anderer wäre simples einhacken mit anschließendem Ausschalten) auszuführen, muss man selbst mehr Anbindung haben als der Server selbst. Da das nur selten, wenn nicht sogar nie der Fall ist, benutzt man meist DDoS. Dieser Distributed Denial of Service benötigt mehrere Rechner mit nabhängigen Leitungen um den Server zu flooden. Da du aber höchst unwahrscheinlich mehr Anbindung als der zu "DoS"-nde Server hast und auch wohl kaum mehrere Server mit genügend summierter Anbindung, kannst du die Sache eigentlich vergessen. Primär müsstest du aber erstmal rausfinden warum disee Fehlermeldung kommt, die du uns so lange verschwiegen hast. Kleiner Tipp am Rande: Fehlermeldungen haben einen guten Berechtigungsgrund, nämlich der, dass es für den Programmierer einfacherer ist den Fehler zu finden. Wenn du uns so eine Meldung verschweigst, dann können wir nicht helfen. Was es jetzt aber genau mit der Meldung auf sich hat kann ich dir nicht sagen, dafür fehlen mit die Delphi-Kenntnisse. Auf den ersteb Blick ist deine CreateHTTPRequest-Funktion aber sowieso inpraktikabel, da Hostname und URI nicht das gleiche ist. Du verwendest dafür aber die gleiche Variable. Meiner Meinung nach solltest du dich mehr mit dem Thema beschäftigen. Das heißt du brauchst wissen über Netzwerke (TCP/IP) und Aufbau des HTTP. So wird das nichts. Liebe Grüße, Valentin |
Re: http request/get flood
jo du hast recht, wirklich viel ahnung hab ich nicht, aber ich bemüh mich un der wille ist da :wink:
was ddos usw ist, weiß ich :-D wenn du es unbedingt wissen willst, ich hab die createhttprequest funktion auch aus dem acidbot von poke, also ein irc basiert ddos bot. mich interessiert das einfach wie das funktioniert. mein kollege hat es geschafft, mit seinem pc (ich glaube dsl 3000 anbindung) unseren vps server zu flooden. der server war danach down. Aus Neugier wollte ich sowas auch versuchen. Leider codet er in vb, und das kann ich nicht ^^ ich habe mich jetzt ein bisschen mit indy und den der idhttp komponente auseinandergesetzt, bin dabei es neu zu versuchen. |
Re: http request/get flood
Zitat:
Eigentlich wartet er aber länger, die Auflösung von "Sleep()" liegt irgendwo bei 50 Millisekunden, kleiner Zeiten kann man mit "Sleep()" nicht warten (Win ist kein Echtzeitbetriebssystem). Eigentlich verstehe ich nicht, was das "Sleep()" da überhaupt soll... |
Re: http request/get flood
Zitat:
Liebe Grüße, Valentin |
Re: http request/get flood
wie meinst du parallele threads?
kannst du mir da kurz ein codebeispiel geben? |
Re: http request/get flood
so ich habs jetzt nochmal versucht, diesmal mit indy idhttp
Delphi-Quellcode:
leider kommt wieder ein error :(
procedure TForm1.Button3Click(Sender: TObject);
begin Label1.Caption := 'Flooding on Port 80 ... .'; while flood = true do begin idhttp1.Get('http://' + seite); idhttp1.disconnect; end; Application.ProcessMessages; end; Fehler:
Delphi-Quellcode:
Im Projekt Project2.exe ist eine Exception der Klasse EIDSocketError aufgetreten. Meldung: Socket-Fehler #10061. Verbindung abgelehnt. Prozess wurde angehalten
was hab ich denn jetzt wieder falsch gemacht? |
Re: http request/get flood
Hallo,
nein, ich kann dir kein Beispiel geben. Ich kann kein Delphi. An deinem Code sind einige Dinge etwas falsch. Zum einen kannst du dir das Application.ProcessMessages an dieser Stelle sparen. Wahrscheinlich willst du, dass das Programm nicht einfriert. Dann musst du die Anweisung aber in die Schleife setzen. Ich gehe aber auch davon aus, dass das nicht viel helfen wird. An dieser Stelle sind Threads die richtige Lösung. Du findest sicher was wenn du danach suchst. ;-) Außerdem sollte man es vermeiden auf True zu prüfen. Ersetze die Prüfung im While-Kopf doch bitte durch "while flood do". Der auftretende Fehler lässt sich wohl dadurch erklären, dass deine Seite-Variable Unfug enthält. ;-) Liebe Grüße, Valentin |
Re: http request/get flood
dass mit processmessages hab ich mir auch schon überlegt, hatte es auch schon in der schleife, hat nicht viel gebracht
ich habe auf meiner form zudem einen stop button, der den flood stoppen soll. das onclick ereignis ist also ganz einfach, ich setze einfach die variable flood auf false. Ich hoffe da hab ich keinen denkfehler drin. seite enthält den string aus meinem editfeld, ich denke da kann der fehler nicht liegen. |
Re: http request/get flood
Zitat:
Zitat:
Abgesehn davon: 1) warum willst du unbedingt einen Server überlasten? Blos so aus Spaß und Langer Weile mach selbst ich sowas nicht. Und hier wissen Einige, daß ich schon so manchen Scheiß machen. 2) du glaubst doch nicht wirklich, daß ein Server, mit 'ner ordentlichen Netzanbindung, sich von denn paar popligen Anfragen irgendwie gestört fühlt, welche du, egal mit wievielen Threads, über deine knuffige Internetleitung rausbekommst? |
Re: http request/get flood
im editfeld steht dann zb.
![]() naja, nicht aus spaß oder langeweilie, mich interessieren einfach solche sachen. Ist einfach nur zur Übung. Und es gibt schon massenhaft doS tools, also ist es eigentlich auch schon egal ^^ danke :) |
Re: http request/get flood
Zitat:
Rate mal, was in folgender Zeile passiert?
Delphi-Quellcode:
idhttp1.Get('http://' + seite);
Zitat:
|
Re: http request/get flood
naja, passt doch, http:// steht schon im editfeld, dann wird nur noch die url ohne http:// manuell eingegeben
letztendlich steht dann ![]() hab jetzt versucht mehrere threads zu erstellen, ganz einfach indem ich um den eigentlich flood noch eine for schleife mit "threads" als schleifenvariable, aufgenommen durch ein textfeld erstellt hab. jetzt funktioniert eigentlich alles soweit. Ich will aber versuchen, das ganze auf icmp und udp basis auszuweiten. danke für die hilfe :) |
Re: http request/get flood
:gruebel:
Also... Ich bin kein Windows-API Fan und im Prinzip auch keinen detaillierten Plan des IP-Stacks ... aaaber eins kann ich doch mit großer Sicherheit sagen: Das was du da "Threads" nennst hat mit dem eigentlich Thema rein gar nichts zutun. Und was bitte willst du denn mit ICMP und UDP? Einen Server tot-pingen? :mrgreen: Mein Tipp: Befasse dich lieber genauer mit ![]() ![]() Lieber Grüße, Valentin |
Re: http request/get flood
Zitat:
![]() |
Re: http request/get flood
Zitat:
Zitat:
Valentin |
Re: http request/get flood
leute leute, ihr habt mich da wirklich falsch verstanden.
ICH GEBRAUCHE DAS PROGRAMM NICHT !! ich will nur wissen wie das funktioniert! wie valle gesagt hat, mir macht das einfach spaß, ich werde mich auch tiefer damit beschäftigen. es ist mir scheissegal ob das teil irgendwas down bekommt, will ich auch gar nicht, dafür gibt es andere werkzeuge. ich will einfach wissen wie das funktioniert und dem ganzen hintergehen und womoglich größere programme programmieren. dann brauch ich aber erstmal das allgemeine verständnis. werd mir demnächst ein buch über socketprogrammierung kaufen um da besser reinzukommen. und was den ping of death angeht, ich denke mal keine nutzt mehr win95 ^^ |
Re: http request/get flood
Hey,
jo, so habe ich dich auch verstanden. Deswegen habe ich ja gesagt es bringt dir mehr, noch viel weiter ins Detail zu gehen! :-) Liebe Grüße, Valentin |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz