mikrocontroller.net

Forum: PC-Programmierung Value aus Formular mit PHP abgreifen - warum klappt das eine aber das andere nicht?


Autor: Marc B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe auf meinem Raspberry Pi 2 ein PHP-Script laufen. Sobald man auf 
einen der Submit-buttons drückt wird der value abgefangen und per 
shell_exec ausgeführt (ist aber irrelevant).

folgender Code funktioniert:
<html>
<body>
<form method="post">
<input type="submit" name="REBOOT" value="REBOOT" style="..."/>
</form>

<?php
if (isset($_POST['REBOOT'])) {
shell_exec('sudo /var/sudowebscript.sh REBOOT');
}
?>

</body>
</html>

Wenn ich jetzt aber noch ein Bild hinzufügen möchte, welches ebenfalls 
wie ein SUBMIT funktionieren soll, klappt es nicht.
Also ich möchte auf das Bild klicken können und es soll der gleiche 
Value übermittelt werden...
Ich habe dafür noch folgenden Code in das Formular geschrieben:
<input type="hidden" name"x1" style="width=41px; height=42px; border=0px" value="REBOOT"/>
<input type="image" name="A1" style="width=41px; height=42px; border=0px" img src="resources/A1.png" alt=""/>

Was mache ich falsch, bzw. was muss ich ändern damit mein Code richtig 
wird?

Vielen Dank schonmal für die Hilfe

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marc B. schrieb:
> Was mache ich falsch, bzw. was muss ich ändern damit mein Code richtig
> wird?

dein hidden input hat den falschen Namen, der müsste REBOOT statt x1 
lauten

Autor: Joachim S. (oyo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Marc B. schrieb:
>
> <input type="image" name="A1" style="width=41px; height=42px; 
> border=0px" img src="resources/A1.png" alt=""/>
> 

Das "img" innerhalb des Tags sieht irgendwie falsch aus.

Aber der eigentliche Grund für das Fehlverhalten ist wohl wirklich das, 
was D.I. geschrieben hast. Ein zusätzlicher Fehler ist da aber auch 
noch, dass in dem hidden input zwischen "name" und "x1" (bzw. 
korrekterweise eben wohl "REBOOT") ein Gleichheitszeichen fehlt.

Autor: jo (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
>if (isset($_POST['REBOOT'])) {
>shell_exec('sudo /var/sudowebscript.sh REBOOT');
>}

Geil, noch einfacher kann man es einem Angreifer kaum machen :D
Escape mal deine Eingaben ordentlich ;)

Gruß J

Autor: D. I. (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
jo schrieb:
> Geil, noch einfacher kann man es einem Angreifer kaum machen :D
> Escape mal deine Eingaben ordentlich ;)
>
> Gruß J

wieso? er gibt keinen Wert weiter, das ist ein konstanter string.

Autor: Marc B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joachim S. schrieb:
> Aber der eigentliche Grund für das Fehlverhalten ist wohl wirklich das,
> was D.I. geschrieben hast. Ein zusätzlicher Fehler ist da aber auch
> noch, dass in dem hidden input zwischen "name" und "x1" (bzw.
> korrekterweise eben wohl "REBOOT") ein Gleichheitszeichen fehlt.

ohje 2 saudumme fehler (vllt mal zum augenarzt gehen;) ... vielen Dank!! 
mit richtigem Namen und Gleichheitszeichen läufts wie gewünscht.

jo schrieb
>Geil, noch einfacher kann man es einem Angreifer kaum machen :D
>Escape mal deine Eingaben ordentlich ;)

>Gruß J
Haha... viel weiter als zu meiner .sh kommste aber nicht
ich liebe das Risiko ;)

Autor: jo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ich liebe das Risiko ;)

Ja seh ich daran das dein www-nutzer sudo rechte holen kann...geilo ;)

Gruß J

Autor: D. I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jo schrieb:
> Ja seh ich daran das dein www-nutzer sudo rechte holen kann...geilo ;)
>
> Gruß J

wo ist das problem, solange sich das sudo auf das skript beschränkt? 
Skizzier doch mal deinen Angriff oder ist es nicht eher so, dass du 
einfach nur Müll laberst?

Autor: jo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>dass du einfach nur Müll laberst?

Oh mich unterhält das...

HAHA

Autor: waflija (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
D. I. schrieb:
> wo ist das problem, solange sich das sudo auf das skript beschränkt?

Wenn das der Fall ist, könnte ein Angreifer nur den Raspi blockieren 
durch ununterbrochen reboot Anfragen. Mehr net. "Jo" scheint nicht zu 
wissen dass sudo auch selektiv auf ein Kommando beschränkt werden kann.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.