el:school:lessons:html:ergastirio:php:execute
PHP - εκτέλεση εντολών
Στην προηγούμενη άσκηση είδαμε κάποια προγραμματιστικά στοιχεία της php όπως μεταβλητές και δομή επανάληψης και πως συνδυάζονται με την html
Στην νέα άσκηση θα δούμε επιπλέον δυνατότητες, όπως ανανέωση σελίδας, εκτέλεση εντολών στον server και άλλα..
Ανανέωση σελίδας
Ακριβώς πριν κλείσει η php με ?> πάνω από το </body> και μέσα στην php, θα προσθέσουμε τις εξής εντολές
Αλλάξτε την ανανέωση να γίνεται κάθε 10 δλ ή ότι άλλο θέλετε εσείς.
Εκτέλεση εντολών
Ανοίγουμε ένα τερματικό και εκτελούμε την εντολή pwd. Θα μας εμφανίσει τον φάκελο στον οποίο βρισκόμαστε.
Πάμε να δούμε πως θα εκτελέσει μια τέτοια εντολή η php. Πάνω από την εντολή $page = $_SERVER['PHP_SELF']; κάνουμε χώρο και εισάγουμε τις παρακάτω εντολές
$output = shell_exec('pwd');
echo "<br>Βρισκόμαστε στον φάκελο <pre>$output</pre>";
Η 1η καλεί την συνάρτηση shell_exec, η οποία εκτελεί την pwd και αποθηκεύει τα αποτελέσματα στην $output
Η 2η εμφανίζει τα περιεχόμενα της $output μέσα στην ετικέτα <pre> ώστε να είναι όμορφα μορφοποιημένα.
Τα αποτελέσματα εμφανίζονται σε ένα τυχαίο χρώμα κειμένου που ίσως δεν φαίνεται καλά. Εισάγετε με την εντολή echo της php την ετικέτα <font> με την ιδιότητα που ξέρετε από την html ώστε να ορίσει χρώμα κειμένου μαύρο στο κείμενο Βρισκόμαστε στον φάκελο ... Μην ξεχάσετε να κλείσετε την ετικέτα μετά.
Με τον ίδιο τρόπο με πριν χωρίς να σβήσετε τα προηγούμενα εκτελέστε επίσης την εντολή ls -lart, εμφανίστε το μήνυμα Τα αρχεία στο φάκελο είναι και από κάτω εμφανίστε το αποτέλεσμα της εντολής ls -lart
Ομοίως εκτελέστε την whoami και εμφανίστε το μήνυμα Είμαι ο χρήστης και δίπλα το αποτέλεσμα της εντολής whoami
Μπορείτε να φτιάξετε ένα κενό αρχείο hacked.php στον φάκελο ενός άλλου χρήστη; Αν ναι κάντε το.
Τυχαίες εικόνες - τερματικό
Ανοίξτε ένα τερματικό και μετακινηθείτε στον φάκελο που βρίσκεται το αρχείο demo.php π.χ. στον φάκελο public_html/www
Εάν έχετε μία εγκατάσταση joomla στον φάκελο
joomla εκτελέστε την εντολή
find joomla -type f -name "*.jpg"
Μετρήστε τις εικόνες με την εντολή
find joomla -type f -name "*.jpg" | wc -l
Τέλος εμφανίστε π.χ. την 3η εικόνα με την εντολή
find joomla -type f -name "*.jpg" | sed '3q;d'
Τυχαίες εικόνες - PHP
Εισάγουμε τις παρακάτω εντολές στην php
Πάμε να πάρουμε το όνομα του τυχαίου αρχείου εικόνας ώστε να το βάλουμε στην συνέχεια στην ετικέτα <img>. Εισάγετε τις παρακάτω εντολές.
$cmd="find joomla -type f -name \"*.jpg\" | sed '" . $randomnum . "q;d'";
$randomimg=shell_exec($cmd);
echo "Εκτέλεσα την εντολή <pre> $cmd </pre> <br>";
echo "Θα εμφανίσω την εικόνα <b> $randomimg </b><br>";
Αρχικά έχουμε την εντολή που θα εμφανίζει μόνο μια τυχαία εικόνα από όλες, αυτήν που βρίσκεται στην γραμμή $randomnum. Αποθηκεύουμε την εντολή που θα εκτελέσουμε (δεν έχει εκτελεστεί ακόμα) στην μεταβλητή $cmd
Η 2η εντολή εκτελεί την $cmd και αποθηκεύει την τυχαία εικόνα στην μεταβλητή $randomimg
Πλέον έχουμε την εικόνα που θέλουμε στην μεταβλητή $randomimg. Γνωρίζουμε από την html πως να εμφανίσουμε μια εικόνα. Θα χρησιμοποιήσουμε την echo της php ώστε να εισάγουμε τον html κώδικα που θα εμφανίσει την εικόνα $randomimg. ΠΡΟΣΟΧΗ! Για να εμφανίσει η echo “ (διπλά εισαγωγικά) θα πρέπει να τα βάζουμε ως \”
el/school/lessons/html/ergastirio/php/execute.txt · Last modified: Y/m/d H:i by vagk