Κάνω post εδώ ελλείψει καταλληλότερου topic.
Μια πρόσφατη δυσάρεστη εμπειρία που είχα με ένα (μικρό, ευτυχώς) defacement attack με έβαλε σε σκέψεις. Δύο πράγματα λοιπόν θα ηθελα να ρωτήσω:
(Backgound)
Εχουμε εναν IIS ο οποίος μπορεί να φιλοξενεί από απλά html pages, asp 3.0 ή / και asp.net pages. Πολλά sites, ή αν θέλετε, πολλά virtual folders (δεν έχει σημασία, θα αναφέρομαι σε αυτά σαν "sites" από εδώ και στο εξής). Υπάρχει μια ιεραρχία φακέλων σε κάθε ένα από αυτά, όπως είναι φυσικό.
Σε ορισμένα sites έχουν δοθεί μέσω κάποιου component στο server δυνατότητες http upload σε συγκεκριμένα folders (π.χ. για να ανεβαίνουν εικόνες ή pdf documents). Σε κάθε site υπάρχει allow anonymous στον iis (μιλάμε για public πράγματα), είτε με τον IUSR είτε με κάποιον άλλον mapped χρήστη. Συνεπώς στα συγκεκριμένα folder ο χρήστης που χαρακτηρίζεται "anonymous" έχει write permissions. Τα folders είναι προσπελάσιμα μέσω web.
Η πρώτη ερώτηση:
Ειναι δυνατόν κάποιος "κακός" να μπορέσει να ανεβάσει δικά του πράγματα στα συγκεκριμένα folders ΧΩΡΙΣ να χρησιμοποιήσει το component που βρίσκεται στο server, και αν ναι, πώς θα μπορούσε να το επιτύχει;
Η δεύτερη ερώτηση:
Για να είμαι πιό ασφαλής, έκανα το εξής: Πήγα στα folders τα οποία έχουν write permissions και από τον iis έβαλα execute permissions -> None ωστε να μην μπορουν να τρέξουν custom scripts εκεί που κάποιος κατάφερε να ανεβάσει. Μήηηηπως υπάρχει κανένα utilitaki που να κάνει αυτή τη δουλειά για μένα; Να μου βρίσκει δηλαδή per site ποιά folders έχουν write access στον "anonymous user" οποιος και αν είναι αυτός και να μου επιτρέπει επιλεκτικά να θέσω σε αυτά τα execute permissions του IIS?
Σωτήρης Φιλιππίδης
DotSee Web Services