Ζητούνται Web developers

September 25th, 2009

Αν είστε subscriber στο blog μου σίγουρα θα σας ενδιαφέρει η παρακάτω αγγελία. Η αγγελία αφορά το Social Whale, το project με το οποίο ασχολούμαι τους τελευταίους μήνες.

php, Uncategorized , ,

Ένα firefox extension για twitterholics

May 6th, 2009

Τελευταία και αφού μπήκα στο development team του social whale, ασχολούμαι αρκετά με development γύρω απο το twitter. Μετά το winamp plugin για το audiotwit, σκεφτήκαμε να κάνουμε κάτι πιό χρήσιμο για την κοινότητα του twitter.

The social whale firefox extension

To social whale firefox extension είναι ένα απλό addon το οποίο μπορείτε να χρησιμοποιήτε για να δημιουργήσετε short urls μέσω του twt.gs και για να κάνετε upload φωτογραφίες μέσω του twitpic.com.

Για οδηγίες ανατρέξτε εδώ, ενώ άν έχετε οποιοδήποτε σχόλιο ή παρατήρηση αφήστε ένα σχόλιο.

twitter , ,

php και sudo

February 6th, 2009

Ένα απο τα ζητήματα που προκύπτουν στο advanced web development είναι η αλληλεπίδραση με το λειτουργικό σύστημα. Για παράδειγμα θέλουμε να τρέξουμε μία εντολή και να δούμε το αποτέλεσμά της. Αυτό γίνεται εύκολα με την shell_exec() ή την exec() ωστόσο απο μόνη της δέν λύνει όλα τα προβλήματα.

Ο apache αλλα και κάθε web server τρέχει με ελάχιστα δικαιώματα που συνήθως του επιτρέπουν να κάνει μόνο βασικά πράγματα. Απο άποψη ασφάλειας αυτό είναι θεμιτό και σε καμία περίπτωση δέν πρέπει να τρέχει με δικαιώματα root γιατί εκεί ένα απλό bug ασφαλείας μπορεί να οδηγήσει σε πλήρη καταστροφή. Την λύση σ’αυτό το πρόβλημα την δίνει το εργαλείο sudo.

Τί είναι το sudo

Το sudo είναι ένα εργαλείο για *nix συστήματα (unix,linux,κτλ) το οποίο επιτρέπει να τρέξουμε κάποια εντολή με δικαιώματα root. Έτσι αντί να κάνουμε vurnerable όλο τον web server μπορούμε όποτε χρειάζεται να τρέχουμε μέσω sudo τις εντολές που θέλουμε.

Sudo configuration

Καταρχήν πρέπει να κάνουμε ένα απλό configuration στο sudo ωστε να δέχεται εντολές απο τον web server. Για την ακρίβεια πρέπει να δώσουμε δικαιώματα στον χρήστη που τρέχει τον apache που συνήθως λέγεται apache. Για σιγουριά δείτε στο httpd.conf το directive User.

Για να κάνουμε το sudo να δέχεται εντολές απο τον web server πάμε στο αρχείο /etc/sudoers και προσθέτουμε την παρακάτω γραμμή:

apache ALL=(ALL) ALL

Αν ο χρήστης δέν ονομάζεται apache αντικαταστήστε το όνομα apache στο παραπάνω. Για να μήν υπάρχουν προβλήματα ασφαλείας θέτουμε και ένα password στον χρήστη apache. Αυτό γίνεται απο κονσόλα με την παρακάτω εντολή:

passwd apache

Αν δέν ακολουθήσετε το τελευταίο βήμα, κάθε php script στον server θα μπορεί να τρέξει εντολές με δικαιώματα root και αυτό μπορεί να οδηγήσει σε σοβαρά προβλήματα ασφαλείας.

Τρέχοντας sudo με php

Αφού τελειώσουμε με τα configuration το υπόλοιπο είναι πολύ εύκολο αρκεί να χρησιμοποιήσετε την παρακάτω php function που δημιούργησα για αυτό τον σκοπό:


define("SUDO","/usr/bin/sudo");
define("SUDO_PASS","pass");

// SUDO START
exec('echo '.SUDO_PASS.'|'.SUDO.' -S -v 2>&1');

// SUDO EXECUTE
echo exec(SUDO . " ls /root 2>&1");

// SUDO STOP
exec(SUDO." -k 2>&1");

Προσέξτε τα δύο define στην αρχή. Το πρώτο είναι το path για την sudo και λογικά δέν χρειάζεται να το πειράξετε. Το δεύτερο όρισμα (SUDO_PASS) πρέπει να περιέχει το password του apache.

php, Security , ,

Ενημερώστε τον reader σας

February 4th, 2009

Σήμερα και μετά την υπόδειξη της Google μεταφέραμε το feed μας στην διεύθυνση http://feeds2.feedburner.com/DevelopStories.Αν είστε subscriber ενημερώστε τον reader σας, διαφορετικά subscribe now! :)

Uncategorized ,

Hacking php

February 2nd, 2009

Όταν τελείωσα το Reverse Engineering Academy course – και σαν καλός μαθητής που είμουν – μου έγινε η πρόταση να δημιουργήσω ένα project για την REA 2. Φυσικά λόγω του κολλήματος που έχω με την php σκέφτηκα να γράψω μία encrypted έκδοση της βιβλιοθήκης της php στα windows (php4ts.dll)

Φυσικά θα ήταν πιό εύκολο να χρησιμοποιήσω ένα έτοιμο encryption library, ωστόσο έτσι δέν νομίζω οτι μαθαίνεις αρκετά και δεδομένου οτι μιλάμε για ένα project “ελεύθερου χρόνου” άξιζε τον κόπο. Επίσης η όλη εμπειρία που αποκόμισα με βοήθησε στην δημιουργία του php encryption που χρησιμοποιούμε στην NetWerk για διάφορα projects που χρειάζεται encryption.

Τελικά το project δέν μπήκε στην REA 2 και για κακή μου τύχη έχασα όλα τα sources αφού χάθηκαν τα backup και μου κλέψαν το laptop! Ευτυχώς ο zero (admin στην REA) είχε κρατήσει ένα αντίγραφο και μου το έστειλε.

Όσοι λοιπόν θέλετε να εξασκηθείτε στο hacking μπορείτε να κατεβάσετε το zipάκι απο εδώ και να παίξετε με το project. Ενδεχομένως να σας φανούν χρήσιμα και τα εργαλεία για reverse engineering που έχω γράψει παλιότερα.

Αν βρείτε λύση – δηλαδή αν βρείτε τα arguments που χρειάζεται το πρόγραμμα για να καταλάβει πως είστε “php master” – αφήστε ένα σχόλιο. Happy cracking :)

php, Reverse Engineering , , , ,