Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
c0lossUs

Vulnerabilities bei 1.3.1 Final

Recommended Posts

Description: Multiple Vulnerabilities in Invision Power Board v1.3.1 Final.

Compromise:  SQL Injection, Cross site Scripting.

Vulnerable Systems: Invision Power Board v1.3.1 Final.

Details:

An Input Validation Error exists in ssi.php.

$sql_fields is vulnerable to An Input Validation Error.

How to exploit this bug?

http://TARGET/ssi.php?a=out&type=xml&f=0)[sql-INJECTION]

The second bug is : Multiple Cross site Scripting bugs.

The vulnerable fields of Invision Power Board are

"f","c","username","showtopic","showuser".

How to exploit this bug?

http://TARGET/index.php?act=Reg&CODE=2&cop...script>alert

(document.cookie)</script>

Solution:

No solution provided.

Greetings,

Jan van de Rijt aka The Warlock.

http://members.home.nl/thewarlock/

Ist darüber etwas bekannt und wenn ja, welche Lösung gibt es ?

Share this post


Link to post

Ich kann auf der Schnelle die Angriffsmöglichkeit nicht nachvollziehen. Meine Tests zeigten jedenfalls, dass das Javascript nicht umgesetzt wird, wenn man das Beispiel verwendet. Müßte ich mir aber nochmal anschauen.

Bezüglich des Problems mit der ssi.php, da würde ich folgendes einbauen, um sicher zu gehen.

Suchen:

	//----------------------------------------
// Sort out the forum ids
//----------------------------------------

if ( $ibforums->input['f'] )
{
 $forums = explode( ",", $ibforums->input['f'] );
}
else
{
 fatal_error("Fatal error: no forum id specified");
}

if ( count($forums) < 1 )
{
 fatal_error("Fatal error: no forum id specified");
}
Darunter einfügen:
	foreach ($forums as $key => $value)
{
 $forums[$key] = intval($value);
}

Share this post


Link to post

Was heisst da Anspielungen?

Auf ibforen oder mit Frog und dem IPBPlus ist das ein miteinander, man gibt was, z.B. anderen eine Hilfestellung und hat dann auch Zugriff auf bestimmte Bereiche / Downloads - was auch immer.

So sollte es sein und so ists auch ... mehr wollt ich damit auch nicht sagen. Wenn jemand rumjammert, weil er nicht mal bereit ist ein paar Posts zu schreiben oder dabei hilft ein Script auf Fehlerfreiheit zu prüfen - dann kann man auch nix machen.

Aber auf die Art hat jeder was davon ...

Share this post


Link to post

Huhuuu, eine Grundsatzdiskussion. :lol:

Ehrlich gesagt, ich hab mit meiner Einstellung auch etwas davon, nämlich das ich immer noch entscheiden kann, wer meine Arbeit bekommt und wer nicht.

Nebenbei, solltest du nicht vergessen, das ein Großteil vom IPBPlus aus meiner Feder stammt. Abrer das nur zur Info, damit mir hier nicht unterstellt wird, das ich für die ach so tolle Gemeinschaft nichts mache.

Share this post


Link to post

Dann brauchst du aber auch nicht rumheulen Stefan (s.u.) - du machst es nicht anders.

Nur das da nicht jeder auserwählt ist, dies anzuschauen.  :lol:  :P

Wie auch immer, interessiert mich sowieso nicht was du mit deinen Mods anstellst.

Wenn man dir scheinbar als Kind schon alle Spielsachen geklaut hat, dann solltest wenigstens deine Mods behalten können. :lol:

Zu

Nebenbei, solltest du nicht vergessen, das ein Großteil vom IPBPlus aus meiner Feder stammt.

Ich möchte dir überhaupt nichts unterstellen, aber im Prinzip kupfert einer vom anderen ab und wenns nur die Idee ist.

Bsp. PM Notify ohne Popup gibts auf ibforen, invisionize und hier. Nahezu alles gibts in ver. Varianten an ver. Stellen.

Abrer das nur zur Info, damit mir hier nicht unterstellt wird, das ich für die ach so tolle Gemeinschaft nichts mache.

Nunja, wenn du soo begeistert von der Gemeinschaft bist, dann hätt ich nen Tipp für dich - machs Forum zu ... also was soll das denn noch, wenn du mit dem Kommentar die User so abwertest ? Auf Neudeutsch gäbs noch nen passenderen Begriff, aber das lass ich mal ...

Share this post


Link to post

Wie auch immer, interessiert mich sowieso nicht was du mit deinen Mods anstellst.

Deswegen auch die vielen PM´s bezüglich der Linkliste. :lol:

Und wenn die anderen Sachen angeblich abgekupfert wurden, warum wolltest du unbedingt Betatester für IPBPlus werden? Wenn man doch die Mods an jeder x-beliebigen Stelle bekommt?

Mmmh, so viele Fragen und keine Antworten. Nur ein paar Beleidigungen und fadenscheinige Begründungen.

Und ich mach da kein Geheimnis raus, das ich von der Gemeinschaft enttäuscht bin, gerade wegen solchen Mitgliedern wie dir.

Andere, denen etwas an den Modifikation und deren Entwicklung liegen, kommen schon in den Genuß dieser, da brauchst du keine Angst haben. Für diese mach ich das auch gerne. Aber wie heißt es so schön, wie man in den Wald .....

Mehr gibt es von meiner Seite dazu nicht zu sagen. Du darfst dich aber gerne hier weiter austoben, wenn es deinem Ego hilt. Ich finde es einfach nur witzig. :lol:

Share this post


Link to post

howgo,

ich weiß nicht was Du heute im Kaffee gehabt hast, aber bitte unterlasse es hier, mit den persönlichen Beleidigungen ;)

Wenn Stefan in seiner Freizeit kostenlos und unverbindlich etwas Programmiert, ganz gleich was es auch ist, so hat er doch wohl auch das Recht mit seinen Mods, damit zu machen was auch immer er möchte.

Und solch ein schwachsinniges geschwafel, daß einer vom anderen Abkupfert, finde ich auch irgendwie etwas daneben. Schliesslich sollte man nämlich auch bei all den Mods auf die Qualität achten, statt auf die Quantität, wobei wir bei der Qualität eben sehr viel Wert legen hier auf IPBSupport ;)

Nebenbei sind es genau solche Beiträge wie DU sie hier schreibst, warum ein Stefan keine Lust hat seine Mods der allgemeinheit zur verfügung zu stellen, vielleicht solltest DU mal darüber nachdenken ;)

Share this post


Link to post

Du Stefan ... dir brauch ich nix zu beweisen, wenn du es jetzt auf die Tour versuchst - sollst auch deinen Spass haben, wenn du anscheinend sonst nicht viel hast, sonst müsstest dich ja hier nicht so aufspielen. Achja, kann auch ganz gut über dich lachen so ists ja nicht.

Aber wenn du so lustig sein darfst, dann darf ich mir auch nen Spass erlauben @Spielzeug - beleidigt hab ich dich damit nicht.

Ich hab bzgl. der Linkliste einmal im Dezember und noch einmal jetzt im April nachgefragt und zwar aus Rücksicht, weil du immer betonts wie sehr du im Stress bist. Naja, ich weis nicht, was du gegen mich hast - aber so wie es scheint können wir uns beide nicht riechen - dann lassen wirs halt einfach - auf so Typen wie dich kann ich gut verzichten.

Find ich ja schön, dass du hiermit User wie mich so schätzt, die versuchen anderen zu helfen wo es geht. Tut mir ja sehr leid, dass ich nicht mit Mods dienen konnte, es gibt halt Leute die programmieren für ihr Leben gerne und andere ziehen anderes vor.

Zum IPBPlus noch kurz, ich hab Frog geholfen und werde das auch weiterhin machen, wenn er will - weil er ein netter Kerl ist und ich seine Idee dieses "Komplettpaket" zu schaffen gut finde. Es ist nunmal einfacher, wenn man nicht alles per Hand einpflegen muss. Aufgedrängt hab ich mich niemandem, ich hab ihm meine Hilfe angeboten, er hat sie angenommen - mehr auch nicht.

Aber scheinbar bist du ja schon wieder beleidigt, wie ich sagte, ich möchte dir nix unterstellen. Ich schrieb auch nicht, wer von wem abkupfert, aber tue nicht so als wäre alles neu erfunden oder deine Idee :)

Share this post


Link to post

Zu dem ganzen hin und her möchte ich mich nicht weiter auslassen. Aber ich kann hier Lord Stefan sehr verstehen. Was ich mehr als befremdlich finde, sind solche Aussagen wie Sire howgo sie fallen lässt und die sich auf erstes Post beziehen.

Noch vor einer Grundsatzdiskussion: Was bringen bitte Sicherheitsupdates, von denen niemand erfährt oder die nur einer kleiner Gruppe Auserwählter zugänglich ist? Wie ihr euch hier im letzten Beitrag (selbst) widersprecht: Nicht jeder ist mit Programmierkunst oder sonst etwas gesegnet, aber es gibt viele, die ein Forum sicher einsetzen möchten. Und da gehören auch User hinzu, die wie ich oder auch andere es nicht mögen, sich wegen jedem BugFix an x-verschiedenen Board anzumelden. Deswegen habe ich hier große Achtung vor diesem Board, bei dem man sich nicht anmelden und xy-Beiträge schreiben muss, bevor man den wichtigen Patch einspielen kann. "Wenn man gewillt ist". Sicher, wenn ein Security Flaw herauskommt bin ich mehr als gewillt, jenen einzuspielen. Aber dann möchte ich nicht bspw. 20 Beiträge mit Nonsense füllen oder mich irgendwo (mehr oder minder) umständlich anmelden müssen um mein Forum zu patchen. Im schlechtesten Falle ist es genau dann schon zu spät gewesen. Das entbehrt meines Erachtens jeglich sinnvoller Grundlage.

Dass es in einer Community immer ein Geben und Nehmen geben sollte steht dabei dann auf einem anderen Blatt. Aber hier stehen sich Sicherheit und Komfort gegenüber. Irgendwelche blinden Seitenhiebe halte ich aber für mehr als kindisch und der Diskussion nicht angemessen.

Zum allgemeinen Thema: Ich kann nur einen Bug im Zeitraum eines Jahrs finden, welcher sich auf SML Codes in der Signatur bezieht. Diesen habe ich getestet mit einer 1.3.1 Final und nicht nachvollziehen können. Alle anderen gemeldeten Fehler bezogen sich bisher auf 2.x. Der gemeldete Bug datiert meines Wissens vom 08.06.2004.

Die Antwort darauf auf Bugtraq war folgende (bezogen auf SSI.PHP):

In-Reply-To: <000d01c44d68$51a14ec0$05a0968c@p42800mhz>

>Compromise:  SQL Injection, Cross site Scripting.

>Vulnerable Systems: Invision Power Board v1.3.1 Final.

>Details:

>An Input Validation Error exists in ssi.php.

>

>$sql_fields is vulnerable to An Input Validation Error.

>How to exploit this bug?

>http://TARGET/ssi.php?a=out&type=xml&f=0)[sql-INJECTION]

I guss, you are reffering this line in the SQL Statment...

WHERE t.forum_id IN ($sql_fields)

I downloaded IPB 1.3.1 F and digiid for a fwe seconds, if you look a bit up in the code u'll see:

$f = intval($f);

if ( $f )

  {

  $forums[] = $f;

  }

...........

...........

$sql_fields = implode( ",", $forums );

intval, means that u can't enter string in the f field...

To: bugtraq@securityfocus.com

Edited by GreyCrow

Share this post


Link to post

Dieses ganze SQL Injection Getue ist eh nur Panikmache von ein paar Kiddies, die meinen Sicherheitslöcher aufgetan zu haben :rolleyes:

Hat das mal einer von Euch ausprobiert? in 99% aller Server kann man eh keine SQL Injections in Form eines weiteren Queries ausführen. Man kann zwar auch so Unsinn damit machen, aber ein angehängtes "or 1" führt nur im ganz üblen Fall zu wirklichem Schaden.

Ich will damit nicht sagen es sei unwichtig, über Sicherheit zu sprechen, man sollte jedoch die Kirche im Dorf lassen und nicht bei jedem ungeprüften SQL Query Argument gleich so tun, als sei der ganze Server in Gefahr.

Naürlich darf so was aber im Prinzip nicht passieren ;)

Share this post


Link to post

Das ist schon der Wahrheit entsprechend. Beim jüngsten SQL Injection jedoch wäre es tatsächlich möglich, wenn man das eigentliche Kommando abbrechen und ein weiteres mit Separator anschließen kann. Manche Versionen/Datenbanken unterstützen das. Und ein INSERT ist schnell angehängt. Insofern ist es nicht nur ein theoretisches, sondern ein recht reeles Problem. Und da es bspw. auch auf Listen wie Bugtraq gepostet wird auch eines, dass viele User adressiert.

Grüße

Grey

Share this post


Link to post

Wie gesagt, je nach Konfiguration ist es bspw. möglich einen Query mit einem Semikolon oder andern Trennzeichen abzubrechen und den Rest des Queries, der im Code noch stehen würde mit einem (wiederum bspw.) -- abzutrennen. Funktioniert nicht in jeder Konstellation, aber ist durchaus möglich.

Share this post


Link to post

Wie gesagt, je nach Konfiguration ist es bspw. möglich einen Query mit einem Semikolon oder andern Trennzeichen abzubrechen und den Rest des Queries, der im Code noch stehen würde mit einem (wiederum bspw.) -- abzutrennen. Funktioniert nicht in jeder Konstellation, aber ist durchaus möglich.

ja nur meine Aussage war ja, dass das eine Konfiguration ist, die kaum zu finden ist.

Geht es auf Deinem Server?

Share this post


Link to post

Lokal ja, eben aus dem Testszenario heraus (immer den schlimmsten Fall annehmen ;)). Und es hängt natürlich dann auch noch von der verwendeten Datenbank, den Befehlen (mysql_query nutzt nur ein query pro Befehl eben darum) oder API ab. Natürlich habt ihr recht mit der Kernaussage. Nur gilt das nicht unbedingt für alle Konstellationen :)

Lieber auf der sicheren Seite :)

Share this post


Link to post

Ob es sich wirklich um eine Sicherheitslücke handelt ist eigentlich egal, denn ein Programm sollte soweit abgesichert sein, das auch Fehleingaben abgefangen werden können. ;)

Bei den meisten Providern ist es darüber nicht möglich eine SQL Injektion durchzuführen, aber halt nicht bei allen. ;)

Nebenbei, der in Grew Crow Beitrag zitierter Workaround klappt nicht. ;)

$f = intval($f);
if ( $f )
 {
 $forums[] = $f;
 }

Erstmal dürfte es sehr schwer sein in einer Funktion mittels $f auf den Inhalt des Parameters f zuzugreifen. Und selbst wenn, dann würde der Aufruf von intval bei Angabe mehrerer Foren nur 0 zurückgeben. Bei Angabe eines Forums würde dieses dann nochmal ins Array geschrieben. Ach ja, wenn eine SQL INJEKTIOn wirklich bis zu der Stelle gelangt sein sollte, dann hilft die obrige Abfrage rein gar nichts. :lol:

Share this post


Link to post

Nebenbei, der in Grew Crow Beitrag zitierter Workaround klappt nicht. wink.gif

Ähem *räusper* das war kein Workaround meinerseits, sondern die damalige Antwort auf das Posting bei Bugtraq. Die Zeilen stehen bereits im Code der ssi.php. (Zeile 172).

Der Grund der Aussage ist lediglich, dass hier niemals ein String übergeben werden kann, weil jener vorher den intval-Befehl überleben müsste.

Die evtl. mögliche Injection mit $sql_fields ist daher kaum möglich, da die Zuweisung $sql_fields = implode( ",", $forums ); dann keinen String enthalten würde.

Hoffe das war als Erläuterung etwas erhellend, warum ich das Zitat an mein Posting angefügt habe.

Share this post


Link to post

Ähem *räusper* das war kein Workaround meinerseits, sondern die damalige Antwort auf das Posting bei Bugtraq. Die Zeilen stehen bereits im Code der ssi.php. (Zeile 172).

Ja, das hab ich schon mitbekommen, das es nicht aus deiner Feder stammt, jedoch hab ich es so gelesen, als sei es ein Workaround. Lag wohl daran, das in der ssi.php, die ich habe, dies nicht enthalten ist. Jedoch benutze ich auch die Version 1.3 des Forums, dementsprechend ist mein Woraround fürs IPBPlus interessant. ;)

Share this post


Link to post

Jedoch benutze ich auch die Version 1.3 des Forums, dementsprechend ist mein Woraround fürs IPBPlus interessant. ;)

schon verstanden :P

Wird aufgenommen, thx!

EDIT: Es ist bereits ein Fix enthalten. Ich schaue mal genauer. Evtl wurde das früher schon mal gefixt von Invision selbst.

Greetz

Frog

Edited by Frog

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×