2016-08-03 28 views
-2

Ich entwickle derzeit eine PHP-Klasse als IDS-ID für Webapps, die Bruteforce und SQLi-Angriffe erkennen können und eins ist mir klar geworden Die meisten Angriffe auf meine Systeme werden von unkonfigurierten Malware-Scannern wie nikto oder sqlmap ausgeführt. Lassen Sie uns für einen Moment außer Acht lassen, dass dies vom Server und nicht von der Web-App erledigt werden sollte.PHP - Ist es möglich, eine Gzip-Bombe in PHP für Malware-Scanner zu implementieren?

Da sie alle gebaut wurden, um Antworten von Webservern zu analysieren, dachte ich, es könnte möglich sein, sie mit einer ZIP bomb zu bombardieren.

Die Idee ist, dass mein PHP-Skript einen GZIP-Header mit kleinen (komprimierten) GZIP-Daten sendet, die der Client entpackt - was dazu führt, dass er seinen Speicher erschöpft.

Kann mir jemand sagen, ein paar Hinweise, wie das zu erreichen ist oder gzip nur vom Webserver getan, und es kann nicht über PHP

+0

Siehe http://stackoverflow.com/questions/5882965/compress-gzip-string für eine ähnliche Antwort. – fire

Antwort

1

ich eine ready-to-use erfolgen Lösung auf Github gefunden.

Es heißt GzipBloat und es macht genau das, was ich gesucht habe.

Zuerst erzeugen Sie eine 10GB gzip-Datei (10 MB nach dem ersten Kompression) mit Eingang gefüllt von /dev/zero

dd if=/dev/zero bs=1M count=10240 | gzip > 10G.gzip 

In PHP Sie dann die Inhaltskodierung einzustellen und die gzip-Datei an den Client senden.

header("Content-Encoding: gzip"); 
header("Content-Length: ".filesize('10G.gzip')); 

//Turn off output buffering 
if (ob_get_level()) ob_end_clean(); 

readfile('10G.gzip'); 

Ergebnisse (Win10):

  • IE11: Memory steigt, dann IE Crashes
  • Chrom 52: Memory steigt, Fehler
  • Kante 38 gezeigt ist: Memory steigt, dann Tropfen und nichts wird angezeigt (scheint für immer zu laden)
  • Nikto: Scannt in normaler Geschwindigkeit, keine Speicherprobleme
  • SQLmap: Hohe Speicher stürzt dann