PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Injection



macman
23.07.2006, 14:15
Hallo,

hab hier gerade eine Blood and Honour Seite vor mir und kann dort JS Injection über die Suche. Bild:
http://xyz.to

Jetzt frage ich mich ob ich durch die selbe Lücke auch PHP befehle ausführen könnte? Und wie müssten diese dann z.B. aussehen? Sie benutzen Etomite, für das gibt es aber auch nur ein Exploit.

MfG
macman

native: Link zum Bild entfernt. Bitte die URL aus dem Bild loeschen, wenn du es nochmal uppen willst!

native
23.07.2006, 15:51
tach

dir ist klar wie PHP funktioniert?
wenn der Code nochmal durch den Interpreter geht, dann waere das vielleicht moeglich. Aber ueber ein JS ist das so schnell nicht moeglich.

Gruss

n

//edit:
...hatte vorher nich richtig gelesen (zu dem Inhalt)...

macman
24.07.2006, 08:46
Hallo,

also hier nochmal das Bild ohne URL: http://img508.imageshack.us/my.php?image=bhmc9.jpg

Das es nochmal durch den Interpreter gehen muss ist mir schon klar. Aber wie müssten die Befehle aussehen? Damit JS Injection funktioniert muss es so aussehen:
"<script>befehl</script>

mit PHP dann so:
"<?phpinfo();?> ???


MfG
macman

dent
24.07.2006, 09:04
Am besten wäre etwas wie



<?php phpinfo(); ?>


da man soweit ich mich erinnern kann die Kurzform <? ?> deaktivieren kann.


Was macht man überhaupt auf einer B&H Site?

macman
24.07.2006, 09:23
Hallo dent,

PHP-Injection hat leider nicht funktioniert (ist einfach nichts passiert).


OffTopic:

Was macht man überhaupt auf einer B&H Site?

Ich finde dort kann man am besten solche Dinge ausprobieren :D

MfG
macman

mxn
24.07.2006, 10:46
PHP-Injection hat leider nicht funktioniert (ist einfach nichts passiert).
Um zu wissen warum, schaust du dir einfach mal den 2. Post an.

Mit XSS kann man halt keinen php-code ausfuehren.

xOr_oNe
24.07.2006, 11:14
richtig
durch die xss lücke wird dein eingeschleuster code erst bei dir im browser "ausgeführt" deswegen kann man über eine xss lücke kein php code ausführen !

morpheus
24.07.2006, 11:30
Du solltest dir erstmal die Grundlagen ansehen. Das ist kompletter Unsinn, was du da versuchst.

http://www.cgisecurity.com/articles/xss-faq.shtml
http://at.php.net/FAQ.php

macman
24.07.2006, 12:51
Hallo,

nur mal locker bleiben! :cool:
Im dritten Post hab ich ja auch geschrieben, dass mir klar ist dass der Code durch den PHP Interpreter gehen muss und er das gesuchte "Wort" fälschlicherweiße als PHP Befehl erkennt/ausführt. Ich dachte mir halt, wenn man eine Suchfunktion bauen will, muss der Server ja das Suchwort unter den Dokumenten suchen und das sollte doch ein PHP-Script tun. Wenn das völlig falsch ist, sorry kommt nicht wieder vor. Also fuktioniert durch ein solches XSS nie eine PHP Injection?

MfG
macman

native
24.07.2006, 14:35
...das gesuchte "Wort" fälschlicherweiße als PHP Befehl erkennt/ausführt...

woran siehst du das?

nur weil das eine B&H Seite ist, heisst es nicht, das du gegen das Gesetz verstoßen kannst!

Dominik
24.07.2006, 15:56
Wobei die gesetzliche Frage wiederum interessant wäre:
Die Seite wird wahrscheinlich irgendwo im Osten gehostet, wie siehts da mit den Gesetzen diesbez. aus? Ich weiss es wirklich nicht, allerdings ist deutsch. Recht != anderes Recht.

Und wenn der Server im Ausland steht, würde doch das Recht von dort gelten oder? Oder würden deutsche Behörden Dich anschwärzen wenn Du auf ausländischen Servern rumspielst, ohne dass die sich beschweren?

Domber
der sich mit so rechtlichem Zeugs so ziemlich gar nicht auskennt ;pmo;

RFC822
24.07.2006, 16:04
Was ist B&H?



nur weil das eine B&H Seite ist, heisst es nicht, das du gegen das Gesetz verstoßen
kannst!
Können != dürfen ;)
Und es verstößt ja angeblich auch gegen das Gesetz, wenn man einen "no nazi"-Aufstecker mit einem durchgestrichenen Hakenkreuz trägt (http://germany.indymedia.org/2005/11/132074.shtml) (auch wenn das Urteil aufgehoben (http://www.stattweb.de/baseportal/ArchivDetail&db=Archiv&Id=372) wurde). Insofern...

macman
24.07.2006, 17:33
woran siehst du das?
Gar nicht, deswegen geht bei mir ausprobieren über studieren.
Aber so eine Suchfunktion wird doch über ein, mal ganz allgemein, Befehlsscript implementiert? Nun da der dahinterliegende Code keine Tag und Anführungszeichen herausfiltert (zumindest meine ich das, siehe XSS), dachte ich es könnte auch mit PHP Befehlen funktionieren. Tja ist nicht so. Wie sieht denn so eine Suchfunktion mit PHP aus? Hat da jemand vl. ein einfaches Bsp.?


nur weil das eine B&H Seite ist, heisst es nicht, das du gegen das Gesetz verstoßen kannst!
Zum legalen: Was ist wenn diese Seite mir gehört und ich sie auf solche Lücken überprüfen möchte? Nein natürlich gehört sie mir nicht,
aber ich kann Nazis nunmal überhaupt nicht ausstehen und da die rechtliche Lage nicht einmal genau bekannt ist (post von dominik) ist mir das zweimal egal. Falls ihr Probs wegen dem bekommt -> ihr kennt mich einfach nicht ;)



Off Topic:

Was ist B&H?
http://de.wikipedia.org/wiki/Blood_and_Honour

MfG
macman

native
24.07.2006, 17:41
warum bist du nicht den Links von morpheus gefolgt?
eine Suche funktioniert, in dem eine Anfrage an ein Script (welches z.B. in PHP geschrieben ist) gesendet, welche dies verarbeitet und HTML zurueckliefert...etc

Nur weil jmd ein Nazi ist, kann ich den nicht auch zusammenschlagen und dann vor Gericht behaupten: "Hey, das ist ein Nazi" (auch wenn das schoen waere)

n

//edit:


...Falls ihr Probs wegen dem bekommt -> ihr kennt mich einfach nicht...

hack-Aufrufe, und alles was dazugehoert, sind hier nicht gern gesehen ;)
und wenn du lernen willst, schau auf securityfocus dir an, welche OpenSource WebApps Loecher haben, lade sie dir runter und versuche sie zu finden etc.

HellBird
24.07.2006, 18:12
wenn mich nicht alles täuscht ist da nicht nur xss sondern auch sql-injection möglich.... jedenfalls kann man tolle fehler produzieren (z.B. " ' " eingeben (ohne "))....aber ich bin auf dem gebiet kein experte...

macman
24.07.2006, 19:37
Aha über XSS sollte aber auch kein SQL Injection möglich sein, oder? ;)

Alerdings bin ich (wie man ja schon gemerkt hat) auch kein Experte auf diesem Gebiet, aber anscheinend wird eine SQL-Anfrage (Dokumente durchsuchen?) durch " ' " unkorrekt verarbeitet. Was meine These der ungefilterten Übergabe an was auch immer bestärkt. Hat da vl. jemand eine Idee wie man da mehr Infos herausbekommen könnte? Könnte möglicherweiße ein allgemeines Etomite Problem sein, interessant wäre, es mal bei anderen auszuprobieren. Hat jemand so was daheim rumfahren? ;)

@HellBird
Wie biste denn aufs ausprobieren von " ' " gekommen? Machste das sozusagen standartmäßig?


Nur weil jmd ein Nazi ist, kann ich den nicht auch zusammenschlagen und dann vor Gericht behaupten: "Hey, das ist ein Nazi" (auch wenn das schoen waere)
Gut haue ich hier jemanden zusammen? Ich finde das ist dann schon noch ein deutlicher Unterschied! Und sowieso ist es überhaupt illegal was ich tue? Soweit ich weiß ist nur das explizite Umgehen eines *Schutzes* illegal. Ich umgehe hier aber keinerlei Schutzmechanismus, da überhaupt keiner da ist.

MfG
macman

native
24.07.2006, 20:30
closed.

ich wollte den schon vorher schliessen.
Bei Kritik oder Beschwerden, wie immer, an mich per PM.

morpheus
25.07.2006, 00:33
nur mal locker bleiben! :cool:
Ich bin locker. So wie immer. Du scheinst allerdings nicht zu begreifen, dass du dir erstmal die Grundlagen ansehen solltest bevor du solchen Unsinn postest und dein Halbwissen verbreitest.


Im dritten Post hab ich ja auch geschrieben, dass mir klar ist dass der Code durch den PHP Interpreter gehen muss und er das gesuchte "Wort" fälschlicherweiße als PHP Befehl erkennt/ausführt.
Wenn du die Grundlagen beherrschen wuerdest dann wuesstest du dass das Unsinn ist.


Ich dachte mir halt, wenn man eine Suchfunktion bauen will, muss der Server ja das Suchwort unter den Dokumenten suchen und das sollte doch ein PHP-Script tun.
Wenn du die Grundlagen beherrschen wuerdest dann wuesstest du dass das Unsinn ist.


Alerdings bin ich (wie man ja schon gemerkt hat) auch kein Experte auf diesem Gebiet
Ich finde du bist nicht mal ein Kiddie, weil die sich nicht so doof anstellen. Wieso befolgst du nicht die Tipps, die man dir gibt, und beharrst auf dieser absolut null eigeninitiative zeigenden Verhaltensweise?

Ich habe hier absolut keine Problem damit interessante, gut gestellte Fragen nach bestem Wissen und Gewissen zu beantworten, allerdings kotzt mich dein lernresistentes Verhalten an. Ausserdem sollte dir schon laengst aufgefallen sein, dass du mit deiner Frage gegen die hier geltenden Regeln verstoesst.

Wenn du von anderen Mitgliedern Hinweise bekommst dann solltest du denen auch nachgehen und nicht laenger weiterhin die selben schwachsinnigen Fragen stellen. Du haettest dir zum Beispiel meine Links ansehen koennen oder den Tipp von native, dir erstmal eine alte Version einer Web-Anwendung herunterzuladen und damit zu spielen, berherzigen.

Wenn du das ganze Thema wirklich ernst nimmst dann lies dir erstmal die Grundlagen durch [1]. Mit dem in dem Dokument verlinkten Lesestoff solltest du leicht einige Monate beschaeftigt sein. Dann verstehst du zumindest erstmal einen Teil von der ganzen umfangreichen Thematik. Mit einer Sprache wie PHP zu experimentieren sollte dir dann auch weiterhelfen mehr Verstaendnis fuer die ganze Angelegenheit zu bekommen und dann solltest du auch in der Lage sein halbwegs vernuenftige Fragen zu stellen, auf welche du gute Antworten bekommst.

Mag sein, dass mein Posting wieder zu aggressiv ausgefallen ist aber entweder schluckst du das und nimmst dir das zu herzen, weil auch viele Wahrheiten/Anregungen enthalten sind, oder du verschwendest nicht mehr laenger unsere Zeit.

[1] http://morph3us.org/security/links/web-app-security.html

morpheus
25.07.2006, 01:01
Aber um doch noch etwas sinnvolles zu dem Thread beizutragen, da ich schon genug Zeit mit der "Belehrung" vergeudet habe, da sie wohl ohnehin nicht beachtet wird - nun gut vielleicht werde ich ja auch eines besseren belehrt:

XSS, SQL-Injection und vor allem PHP Code Execution steht in keinem Zusammenhang zueinander. Es kann sein, dass alle drei Vulnerabilities vorhanden sind, oder auch nur eine von den drei genannten.

Was nun genau moeglich ist und was nicht kommt immer auf die Funktionsweise des Scripts an. Wenn man jetzt als Beispiel das von dir genannte Suchscript nimmt dann wird es ungefaehr so ablaufen, dass der von dir eingebene Suchstring an das Script uebergeben wird, welcher dann wiederum in einen SQL-Query eingefuegt wird, welcher dazu verwendet wird die Datenbank nach dem Suchbegriff zu durchsuchen. Die gefunden Ergebnisse werden dann wieder bei dir ausgegebenen und dein eingebebener Suchstring wird wieder in das value-Attribut des Suchtextfeldes geschrieben.

Wenn das Script die erhaltenen Eingaben nun nicht sorgfaeltig filtert dann sind genau zwei Arten von Schwachstellen moeglich, naemlich XSS und SQL-Injection. XSS deshalb, weil beim Zurueckschreiben deines Suchstrings HTML-Sonderzeichen (<, >, ") in das value-Attribut nicht gefiltert werden und es dazu kommt, dass durch das Einfuegen eines Anfuehrungszeichen der in das Valueattribut eingeschlossene String beendet wird und du an dieser Stelle mit den Spitzklammern die Moeglichkeit hast neue HTML-Tags zu definieren.

Zu SQL-Injection kommt es dann, wenn der Suchstring beim Einfuegen in den SQL-Query nicht gefiltert wird. Durch das Einfuegen eines Hochkommas (oder einem anderen aehnlichen Sonderzeichen) ist der SQL-Query nicht mehr valide, weshalb dieser einen Fehler verursacht der dann bei dir dargestellt wird. Je nach der Art der SQL-Injection und der Umgebung kannst du damit den Query so umbiegen, dass du beliebige Werte aus der Datenbank auslesen kannst. Bemuehe die Suchfunktion zum Thema SQL-Injection dann wirst du viele weitere Erklaerungen und auch Beispiele, die du selber ausprobieren kannst, finden.

Um auf deine urspruenglich Idee mit der Code Execution zurueckzukommen: Diese ist hier zwar theoretisch(!) auch moeglich, allerdings ist das parktisch nie der Fall. Das liegt daran, dass es sehr spezielle Situationen benoetigt um wirklich PHP-Code ausfuehren zu koennen. Die an das Script uebergebenen Parameter werden immer in Strings eingefuegt oder als Funktionsparameter genutzt etc. allerdings kannst du aus solchen Strings oder Parametern nicht einfach "ausbrechen" und deinen eigenen PHP-Code ausfuehren. Dafuer brauchst du wie schon gesagt spezielle Situationen oder Funktionen. Mit einer Funktion wie eval(), welche einen String als PHP-Code interpretiert waere das moeglich. Genauso mit Funktionen, welche Systemkommandos ausfuehren wie etwa system(), exec(), passthru(), popen() etc., allerdings wirst du solche nie in einem Suchscript finden. Der Einsatz von eval() und Konsorten wird so gut es geht vermieden. Diese kommen nur sehr selten zum Einsatz und dann meistens nur, wenn der uebergebene String nicht vom User beeinflusst werden kann.

Und jetzt nochmal lies dich in das Thema ein und lerne intellegente Fragen [1] zu stellen.

[1] http://www.catb.org/esr/faqs/smart-questions.html

Ich weiss, dass der Thread schon geschlossen wurde, allerdings musste ich das noch los werden.