25.03.2024

Завещание inurl sign guestbook asp. Поиск слов при помощи дополнительных операторов


Here we start out with a simple "settings" file, named settings.asp. This file will be included on each page, and will contain the basic settings for this guestbook.

Since the password (logincode) is NOT in the database, you can leave the database in the webroot with a mappath statement to make the install easier. However, the best place for the database is outside of your webroot, in which case you would want to change the database_path string to your full path ("C:\inetpub\database\post.mdb" for example)

There is also an important settings to allow html, or not. Many times folks abuse a guestbook by filling it with links, and other junk. It would be a good idea to disallow html, unless you really need it.

The language setting is just a set of variables for text used within the system, for each language there is a different text that is used. Very easy to add a "new" language to the system.

Details

The login is a simple login check page, which checks the login code entered on the form
with the one stored in the settings.asp file.

" title of your guestbook. pagetitle = " Demo" " language " english = en, german = ger, french = fr lang = " en" " admin password logincode = " 1234" " number of entries to show. show_posts = " 25" " minimum length of post to be allowed. minimum_length = 4 " set to "no" for no html, set to "yes" to allow html (not recommended!) allow_html = " no" " leave as is, unless you want to move your database. database_path = Server .MapPath(" post.mdb" ) <%Option Explicit %> <% if Request .Form(" mynumber" ) = " " then response .redirect(" login.asp?l=password_blank" ) End If " set variables from form FormPwd = Request .Form(" mynumber" ) FormPwd = replace (FormPwd," "" ," """ ) " run login or return to login page if formpwd = logincode then Session(" LoginID" ) = formpwd else response .redirect(" login.asp?l=incorrect_login_or_password" ) End if " final redirect response .redirect(" post.asp" ) %>

The login uses session variables to store the login information, so to log off we simple abandon the session. The redirect appends the date to avoid seeing a "cached" login page after being logged out. This is not a security issue, but just for convenience.

<% session.abandon response .redirect(" post.asp?d=" & date ) %>

Now the main code is the post.asp page, this page is the same whether you are logged in as admin or just a guest visiting the page. If you are logeed in you see the same data as a guest, only you have more options available, you can delete posts, or restore deleted posts, or empty the "recycle bin" (where deleted posts are stored until you clear them out).

As you can see from the code below, we check for the loggedin session right from the start,
then we can use this throughout the rest of the script to display data based on your status as admin or guest.

<% option explicit %> <% LoggedIn = Session(" loginID" )

Once you are logged in you see more options available.

The file is split up into "parts" depending on what querystring is passed.

The section below checks to see if you are logged in and then check so see if
you have attempted to empty the "deleted" items from the database.

" ============Empty Deleted Items from the database============ If LoggedIn <> " " Then if request .querystring(" del" ) = 1 then Set dConn = Server .CreateObject (" ADODB.Connection" ) dConn.Open " & _ database_path mySQL = " DELETE FROM tblpost where active = 2;" dConn.execute(mySQL) dconn.close set dconn = nothing response .redirect(" post.asp" ) end if end if

As you can see from the rest of the main "post" code, different items are displayed or actions performed based on being logged in or not, and if so what querystring value you have passed to the page.

" ============set based on delete or undelete============ If LoggedIn <> " " Then showdeleted = request .querystring(" showdeleted" ) if showdeleted = 1 then active = 2 removetype = 1 delete_text = undelete_text delimage = " undelete.gif" else active = 1 removetype = 2 delete_text = delete_text delimage = " delete.gif" end if else active = 1 end if " ============Delete/Undelete Items from the guestbook display============ remove = request .querystring(" remove" ) if remove = 1 then Set dConn = Server .CreateObject (" ADODB.Connection" ) dConn.Open " PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & database_path removetype = request .querystring(" removetype" ) mySQL = " UPDATE tblPost SET Active = " & removetype & " WHERE ID = " & _ ID & " ;" response .write " updating" dConn.execute(mySQL) dConn.Close set dConn = Nothing response .redirect(" post.asp" ) end if " ============End Delete Section============ Set dataRS = Server .CreateObject (" ADODB.RecordSet" ) dataSQL = " Select TOP " & show_posts & " message, remote_addr, sysdate, " &_ " systime, id FROM tblPost WHERE active = " & active &_ " order by sysdate DESC, systime DESC;" " Response.Write dataSQL " response.end Set dConn = Server .CreateObject (" ADODB.Connection" ) dConn.Open " PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & database_path dataRS.Open dataSQL, dConn, 1 , 3 recordcount = dataRS.recordcount if recordcount > 0 then data = dataRS.GetRows() " Data is retrieved so close all connections dataRS.Close Set dataRS = Nothing dconn.close set dconn = nothing " Setup for array usage iRecFirst = LBound (data, 2 ) iRecLast = UBound (data, 2 ) end if " ============IF IS A POST BACK============ message = trim (request .form(" message" )) if request .form(" ispostback" ) = 1 AND (len (message) > minimum_length) then if allow_html = " no" then message = RemoveHTMLtags(message) else message = PreSubmit2(message) end if strSQL = " tblPost" " Open a recordset Set cRS2 = Server .CreateObject (" ADODB.recordset" ) Set dConn = Server .CreateObject (" ADODB.Connection" ) dConn.Open " PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" &_ database_path cRS2.Open strSQL, dConn, 1 ,3 cRS2.AddNew cRS2(" message" ) = message cRS2(" sysdate" ) = date () cRS2(" systime" ) = time () cRS2(" remote_addr" ) = request .ServerVariables(" remote_addr" ) cRS2(" Active" ) = 1 cRS2.Update cRS2.Close Set cRS2 = Nothing dConn.Close Set dConn = Nothing response .redirect(" post.asp" ) end if " ============End POSTBACK Section============ %> <%=pagetitle%> </ title > </ head > <P style=" FONT-WEIGHT: bold" ><%=pagetitle%> <table border=2 bordercolor=" silver" CELLSPACING=0 CELLPADDING=4> <form action=" post.asp" method=" post" name=" form1" id=" form1" > <tr class=" smalltext"> <td><textarea cols=" 50" rows=" 4" name=" message" style=" <span>font-family: Arial, Helvetica, sans-serif;" </span> class=" cssborder" title=" <%=add_text%>" ></ textarea > </ td > <td nowrap><input type=" submit" value=" <%=add_text%>" style=" height: 50px;" class=" cssborder" ></ td > </ tr > <input type=" hidden" name=" ispostback" value=" 1" > </ form > </ table > <% if recordcount > 0 then %> <table border=" 2" cellspacing=" 0" cellpadding=" 4" bordercolor=" silver" width=" 500" > <tr> <th><%= message_text %> </ th > <% If LoggedIn <> " " then %> <th><%= delete_text %> </ th > <% end if %> </ tr > <% " <span> Loop through the records (second dimension of the array) </span> For I = iRecFirst To iRecLast Response .Write " <tr class="smalltext">" & _ " <td colspan="top">" & data(0 , I) & " [" & data(3 ,I) & " | " & data(2 , I) & " | " & data(1 , I) & " ]</td>" if LoggedIn <> " " then response .write " <span><td nowrap valign="top" align="center">" </span> response .write " <img src='/wp-content/uploads/2024/03/" %20&%20delimage%20&%20' loading=lazy></td>" end if Next " I %> </ table > <% end if If LoggedIn <> " " Then response .write logoutlink else response .write loginlink end if " close db just in case on error resume next dConn.Close Set dConn = Nothing on error goto 0 %> <p>That is basically it, this is a very simple little guestbook, that should be easy to add to an site that supports ASP and MS Access database connections (No ODBC is necesary).</p> <p><i>Поисковая система Google (www.google.com) предоставляет множество возможностей для поиска. Все эти возможности – неоценимый инструмент поиска для пользователя впервые попавшего в Интернет и в то же время еще более мощное оружие вторжения и разрушения в руках людей с злыми намерениями, включая не только хакеров, но и некомпьютерных преступников и даже террористов. <br><b>(9475 просмотров за 1 неделю) </b> </i></p> <p>Денис Батранков<br> denisNOSPAMixi.ru</p> <p><b>Внимание: </b><i>Эта статья не руководство к действию. Эта статья написана для Вас, администраторы WEB серверов, чтобы у Вас пропало ложное ощущение, что Вы в безопасности, и Вы, наконец, поняли коварность этого метода получения информации и взялись за защиту своего сайта. </i></p> <h2>Введение</h2> <p>Я, например, за 0.14 секунд нашел 1670 страниц!</p> <p><b>2. </b> Введем другую строку, например:</p> <b> <a target="_blank" href="http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=inurl:%22auth_user_file.txt%22">inurl:"auth_user_file.txt"</a> </b> <p>немного меньше, но этого уже достаточно для свободного скачивания и для подбора паролей (при помощи того же John The Ripper). Ниже я приведу еще ряд примеров.</p> <p>Итак, Вам надо осознать, что поисковая машина Google посетила большинство из сайтов Интернет и сохранила в кэше информацию, содержащуюся на них. Эта кэшированная информация позволяет получить информацию о сайте и о содержимом сайта без прямого подключения к сайту, лишь копаясь в той информации, которая хранится внутри Google. Причем, если информация на сайте уже недоступна, то информация в кэше еще, возможно, сохранилась. Все что нужно для этого метода: знать некоторые ключевые слова Google. Этот технический прием называется Google Hacking.</p> <p>Впервые информация о Google Hacking появилась на рассылке Bugtruck еще 3 года назад. В 2001 году эта тема была поднята одним французским студентом. Вот ссылка на это письмо http://www.cotse.com/mailing-lists/bugtraq/2001/Nov/0129.html . В нем приведены первые примеры таких запросов:</p> <p><b> 1) Index of /admin<br> 2) Index of /password<br> 3) Index of /mail<br> 4) Index of / +banques +filetype:xls (for france...)<br> 5) Index of / +passwd<br> 6) Index of / password.txt </b></p> <p>Нашумела эта тема в англо-читающей части Интернета совершенно недавно: после статьи Johnny Long вышедшей 7 мая 2004 года. Для более полного изучения Google Hacking советую зайти на сайт этого автора http://johnny.ihackstuff.com . В этой статье я лишь хочу ввести вас в курс дела.</p> <p>Кем это может быть использовано:<br> - Журналисты, шпионы и все те люди, кто любит совать нос не в свои дела, могут использовать это для поиска компромата.<br> - Хакеры, разыскивающие подходящие цели для взлома.</p> <h2>Как работает Google.</h2> <p>Для продолжения разговора напомню некоторые из ключевых слов, используемых в запросах Google.</p> <p><b>Поиск при помощи знака + </b></p> <p>Google исключает из поиска неважные, по его мнению, слова. Например вопросительные слова, предлоги и артикли в английском языке: например are, of, where. В русском языке Google, похоже, все слова считает важными. Если слово исключается из поиска, то Google пишет об этом. Чтобы Google начал искать страницы с этими словами перед ними нужно добавить знак + без пробела перед словом. Например:</p> <p><b> ace +of base </b></p> <p><b>Поиск при помощи знака – </b></p> <p>Если Google находит большое количество станиц, из которых необходимо исключить страницы с определенной тематикой, то можно заставить Google искать только страницы, на которых нет определенных слов. Для этого надо указать эти слова, поставив перед каждым знак – без пробела перед словом. Например:</p> <p><b> рыбалка -водка </b></p> <p><b>Поиск при помощи знака ~ </b></p> <p>Возможно, что вы захотите найти не только указанное слово, но также и его синонимы. Для этого перед словом укажите символ ~.</p> <p><b>Поиск точной фразы при помощи двойных кавычек </b></p> <p>Google ищет на каждой странице все вхождения слов, которые вы написали в строке запроса, причем ему неважно взаимное расположение слов, главное чтобы все указанные слова были на странице одновременно (это действие по умолчанию). Чтобы найти точную фразу – ее нужно взять в кавычки. Например:</p> <p><b> "подставка для книг" </b></p> <p>Чтобы было хоть одно из указанных слов нужно указать логическую операцию явно: OR. Например:</p> <p><b> книга безопасность OR защита </b></p> <p>Кроме того в строке поиска можно использовать знак * для обозначения любого слова и. для обозначения любого символа.</p> <p><b>Поиск слов при помощи дополнительных операторов </b></p> <p>Существуют поисковые операторы, которые указываются в строке поиска в формате:</p> <p><b> operator:search_term </b></p> <p>Пробелы рядом с двоеточием не нужны. Если вы вставите пробел после двоеточия, то увидите сообщение об ошибке, а перед ним, то Google будет использовать их как обычную строку для поиска.<br> Существуют группы дополнительных операторов поиска: языки - указывают на каком языке вы хотите увидеть результат, дата - ограничивают результаты за прошедшие три, шесть или 12 месяцев, вхождения - указывают в каком месте документа нужно искать строку: везде, в заголовке, в URL, домены - производить поиск по указанному сайту или наоборот исключить его из поиска, безопасный поиск - блокируют сайты содержащие указанный тип информации и удаляют их со страниц результатов поиска.<br> При этом некоторые операторы не нуждаются в дополнительном параметре, например запрос "<b>cache:www.google.com </b>" может быть вызван, как полноценная строка для поиска, а некоторые ключевые слова, наоборот, требуют наличия слова для поиска, например " <b>site:www.google.com help </b>". В свете нашей тематики посмотрим на следующие операторы:</p> <table border="1" cellpadding="0" cellspacing="0"><tr><td valign="top"><p><b> Оператор </b></p> </td> <td valign="top"><p><b> Описание </b></p> </td> <td valign="top"><p><b> Требует дополнительного параметра? </b></p> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>поиск только по указанному в search_term сайту</p> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>поиск только в документах с типом search_term</p> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>найти страницы, содержащие search_term в заголовке</p> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>найти страницы, содержащие все слова search_term в заголовке</p> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>найти страницы, содержащие слово search_term в своем адресе</p> </td> <td valign="top"> </td> </tr><tr><td valign="top"> </td> <td valign="top"><p>найти страницы, содержащие все слова search_term в своем адресе</p> </td> <td valign="top"> </td> </tr></table><p>Оператор <b>site: </b> ограничивает поиск только по указанному сайту, причем можно указать не только доменное имя, но и IP адрес. Например, введите:</p> <p>Оператор <b>filetype: </b> ограничивает поиск в файлах определенного типа. Например:</p> <p>На дату выхода статьи Googlе может искать внутри 13 различных форматов файлов:</p> <ul><li>Adobe Portable Document Format (pdf)</li> <li>Adobe PostScript (ps)</li> <li>Lotus 1-2-3 (wk1, wk2, wk3, wk4, wk5, wki, wks, wku)</li> <li>Lotus WordPro (lwp)</li> <li>MacWrite (mw)</li> <li>Microsoft Excel (xls)</li> <li>Microsoft PowerPoint (ppt)</li> <li>Microsoft Word (doc)</li> <li>Microsoft Works (wks, wps, wdb)</li> <li>Microsoft Write (wri)</li> <li>Rich Text Format (rtf)</li> <li>Shockwave Flash (swf)</li> <li>Text (ans, txt)</li> </ul><p>Оператор <b>link: </b> показывает все страницы, которые указывают на указанную страницу.<br> Наверно всегда интересно посмотреть, как много мест в Интернете знают о тебе. Пробуем:</p> <p>Оператор <b>cache: </b> показывает версию сайта в кеше Google, как она выглядела, когда Google последний раз посещал эту страницу. Берем любой, часто меняющийся сайт и смотрим:</p> <p>Оператор <b>intitle: </b> ищет указанное слово в заголовке страницы. Оператор <b>allintitle: </b> является расширением – он ищет все указанные несколько слов в заголовке страницы. Сравните:</p> <p><b> intitle:полет на марс<br> intitle:полет intitle:на intitle:марс<br> allintitle:полет на марс </b></p> <p>Оператор<b> inurl: </b>заставляет Google показать все страницы содержащие в URL указанную строку. Оператор allinurl: ищет все слова в URL. Например:</p> <p><b> allinurl:acid acid_stat_alerts.php </b></p> <p>Эта команда особенно полезна для тех, у кого нет SNORT – хоть смогут посмотреть, как он работает на реальной системе.</p> <h2>Методы взлома при помощи Google</h2> <p>Итак, мы выяснили что, используя комбинацию вышеперечисленных операторов и ключевых слов, любой человек может заняться сбором нужной информации и поиском уязвимостей. Эти технические приемы часто называют Google Hacking.</p> <h3>Карта сайта</h3> <p>Можно использовать оператор site: для просмотра всех ссылок, которые Google нашел на сайте. Обычно страницы, которые динамически создаются скриптами, при помощи параметров не индексируются, поэтому некоторые сайты используют ISAPI фильтры, чтобы ссылки были не в виде<b> /article.asp?num=10&dst=5 </b>, а со слешами <b>/article/abc/num/10/dst/5 </b>. Это сделано для того, чтобы сайт вообще индексировался поисковиками.</p> <p>Попробуем:</p> <p><b> site:www.whitehouse.gov whitehouse </b></p> <p>Google думает, что каждая страница сайта содержит слово whitehouse. Этим мы и пользуемся, чтобы получить все страницы.<br> Есть и упрощенный вариант:</p> <p><b> site:whitehouse.gov </b></p> <p>И что самое приятное - товарищи с whitehouse.gov даже не узнали, что мы посмотрели на структуру их сайта и даже заглянули в кэшированные странички, которые скачал себе Google. Это может быть использовано для изучения структуры сайтов и просмотра содержимого, оставаясь незамеченным до поры до времени.</p> <h3>Просмотр списка файлов в директориях</h3> <p>WEB серверы могут показывать списки директорий сервера вместо обычных HTML страниц. Обычно это делается для того, чтобы пользователи выбирали и скачивали определенные файлы. Однако во многих случаях у администраторов нет цели показать содержимое директории. Это возникает вследствие неправильной конфигурации сервера или отсутствия главной страницы в директории. В результате у хакера появляется шанс найти что-нибудь интересное в директории и воспользоваться этим для своих целей. Чтобы найти все такие страницы, достаточно заметить, что все они содержат в своем заголовке слова: index of. Но поскольку слова index of содержат не только такие страницы, то нужно уточнить запрос и учесть ключевые слова на самой странице, поэтому нам подойдут запросы вида:</p> <p><b>intitle:index.of parent directory<br> intitle:index.of name size </b></p> <p>Поскольку в основном листинги директорий сделаны намеренно, то вам, возможно, трудно будет найти ошибочно выведенные листинги с первого раза. Но, по крайней мере, вы уже сможете использовать листинги для определения версии WEB сервера, как описано ниже.</p> <h3>Получение версии WEB сервера.</h3> <p>Знание версии WEB сервера всегда полезно перед началом любой атака хакера. Опять же благодаря Google можно получить эту информацию без подключения к серверу. Если внимательно посмотреть на листинг директории, то можно увидеть, что там выводится имя WEB сервера и его версия.</p> <p><b> Apache1.3.29 - ProXad Server at trf296.free.fr Port 80 </b></p> <p>Опытный администратор может подменить эту информацию, но, как правило, она соответствует истине. Таким образом, чтобы получить эту информацию достаточно послать запрос:</p> <p><b> intitle:index.of server.at </b></p> <p>Чтобы получить информацию для конкретного сервера уточняем запрос:</p> <p><b> intitle:index.of server.at site:ibm.com </b></p> <p>Или наоборот ищем сервера работающие на определенной версии сервера:</p> <p><b> intitle:index.of Apache/2.0.40 Server at </b></p> <p>Эта техника может быть использована хакером для поиска жертвы. Если у него, к примеру, есть эксплойт для определенной версии WEB сервера, то он может найти его и попробовать имеющийся эксплойт.</p> <p>Также можно получить версию сервера, просматривая страницы, которые по умолчанию устанавливаются при установке свежей версии WEB сервера. Например, чтобы увидеть тестовую страницу Apache 1.2.6 достаточно набрать</p> <p><b> intitle:Test.Page.for.Apache it.worked! </b></p> <p>Мало того, некоторые операционные системы при установке сразу ставят и запускают WEB сервер. При этом некоторые пользователи даже об этом не подозревают. Естественно если вы увидите, что кто-то не удалил страницу по умолчанию, то логично предположить, что компьютер вообще не подвергался какой-либо настройке и, вероятно, уязвим для атак.</p> <p>Попробуйте найти страницы IIS 5.0</p> <p><b>allintitle:Welcome to Windows 2000 Internet Services </b></p> <p>В случае с IIS можно определить не только версию сервера, но и версию Windows и Service Pack.</p> <p>Еще одним способом определения версии WEB сервера является поиск руководств (страниц подсказок) и примеров, которые могут быть установлены на сайте по умолчанию. Хакеры нашли достаточно много способов использовать эти компоненты, чтобы получить привилегированный доступ к сайту. Именно поэтому нужно на боевом сайте удалить эти компоненты. Не говоря уже о том, что по наличию этих компонентов можно получить информацию о типе сервера и его версии. Например, найдем руководство по apache:</p> <p><b> inurl:manual apache directives modules </b></p> <h3>Использование Google как CGI сканера.</h3> <p>CGI сканер или WEB сканер – утилита для поиска уязвимых скриптов и программ на сервере жертвы. Эти утилиты должны знать что искать, для этого у них есть целый список уязвимых файлов, например:</p> <p><b> /cgi-bin/cgiemail/uargg.txt<br> /random_banner/index.cgi<br> /random_banner/index.cgi<br> /cgi-bin/mailview.cgi<br> /cgi-bin/maillist.cgi<br> /cgi-bin/userreg.cgi<br><br> /iissamples/ISSamples/SQLQHit.asp<br> /SiteServer/admin/findvserver.asp<br> /scripts/cphost.dll<br> /cgi-bin/finger.cgi </b></p> <p>Мы может найти каждый из этих файлов с помощью Google, используя дополнительно с именем файла в строке поиска слова index of или inurl: мы можем найти сайты с уязвимыми скриптами, например:</p> <p><b> allinurl:/random_banner/index.cgi </b></p> <p>Пользуясь дополнительными знаниями, хакер может использовать уязвимость скрипта и с помощью этой уязвимости заставить скрипт выдать любой файл, хранящийся на сервере. Например файл паролей.</p> <h2>Как защитить себя от взлома через Google.</h2> <h4>1. Не выкладывайте важные данные на WEB сервер.</h4> <p>Даже если вы выложили данные временно, то вы можете забыть об этом или кто-то успеет найти и забрать эти данные пока вы их не стерли. Не делайте так. Есть много других способов передачи данных, защищающих их от кражи.</p> <h4>2. Проверьте свой сайт.</h4> <p>Используйте описанные методы, для исследования своего сайта. Проверяйте периодически свой сайт новыми методами, которые появляются на сайте http://johnny.ihackstuff.com . Помните, что если вы хотите автоматизировать свои действия, то нужно получить специальное разрешение от Google. Если внимательно прочитать <a target="_blank" href="http://www.google.com/terms_of_service.html">http://www.google.com/terms_of_service.html</a> , то вы увидите фразу: You may not send automated queries of any sort to Google"s system without express permission in advance from Google.</p> <h4>3. Возможно, вам не нужно чтобы Google индексировал ваш сайт или его часть.</h4> <p>Google позволяет удалить ссылку на свой сайт или его часть из своей базы, а также удалить страницы из кэша. Кроме того вы можете запретить поиск изображений на вашем сайте, запретить показывать короткие фрагменты страниц в результатах поиска Все возможности по удалению сайта описаны на сранице <a target="_blank" href="http://www.google.com/remove.html">http://www.google.com/remove.html</a> . Для этого вы должны подтвердить, что вы действительно владелец этого сайта или вставить на страницу теги или</p> <h4>4. Используйте robots.txt</h4> <p>Известно, что поисковые машины заглядывают в файл robots.txt лежащий в корне сайта и не индексируют те части, которые помечены словом <b>Disallow </b>. Вы можете воспользоваться этим, для того чтобы часть сайта не индексировалась. Например, чтобы не индексировался весь сайт, создайте файл robots.txt содержащий две строчки:</p> <p><b> User-agent: *<br> Disallow: / </b></p> <h2>Что еще бывает</h2> <p>Чтобы жизнь вам медом не казалась, скажу напоследок, что существуют сайты, которые следят за теми людьми, которые, используя вышеизложенные выше методы, разыскивают дыры в скриптах и WEB серверах. Примером такой страницы является</p> <h2>Приложение.</h2> <p>Немного сладкого. Попробуйте сами что-нибудь из следующего списка:</p> <p>1. #mysql dump filetype:sql - поиск дампов баз данных mySQL<br> 2. Host Vulnerability Summary Report - покажет вам какие уязвимости нашли другие люди<br> 3. phpMyAdmin running on inurl:main.php - это заставит закрыть управление через панель phpmyadmin<br> 4. not for distribution confidential <br> 5. Request Details Control Tree Server Variables <br> 6. Running in Child mode <br> 7. This report was generated by WebLog <br> 8. intitle:index.of cgiirc.config <br> 9. filetype:conf inurl:firewall -intitle:cvs – может кому нужны кофигурационные файлы файрволов? :)<br> 10. intitle:index.of finances.xls – мда.... <br> 11. intitle:Index of dbconvert.exe chats – логи icq чата<br> 12. intext:Tobias Oetiker traffic analysis<br> 13. intitle:Usage Statistics for Generated by Webalizer<br> 14. intitle:statistics of advanced web statistics<br> 15. intitle:index.of ws_ftp.ini – конфиг ws ftp <br> 16. inurl:ipsec.secrets holds shared secrets – секретный ключ – хорошая находка<br> 17. inurl:main.php Welcome to phpMyAdmin <br> 18. inurl:server-info Apache Server Information <br> 19. site:edu admin grades <br> 20. ORA-00921: unexpected end of SQL command – получаем пути<br> 21. intitle:index.of trillian.ini<br> 22. intitle:Index of pwd.db<br> 23. intitle:index.of people.lst<br> 24. intitle:index.of master.passwd<br> 25. inurl:passlist.txt<br> 26. intitle:Index of .mysql_history<br> 27. intitle:index of intext:globals.inc<br> 28. intitle:index.of administrators.pwd<br> 29. intitle:Index.of etc shadow<br> 30. intitle:index.of secring.pgp<br> 31. inurl:config.php dbuname dbpass<br> 32. inurl:perform filetype:ini </p><li>"Hacking mit Google"</li> <span> <p>Учебный центр "Информзащита" http://www.itsecurity.ru - ведущий специализированный центр в области обучения информационной безопасности (Лицензия Московского Комитета образования № 015470, Государственная аккредитация № 004251). Единственный авторизованный учебный центр компаний Internet Security Systems и Clearswift на территории России и стран СНГ. Авторизованный учебный центр компании Microsoft (специализация Security). Программы обучения согласованы с Гостехкомиссией России, ФСБ (ФАПСИ). Свидетельства об обучении и государственные документы о повышении квалификации.</p><p>Компания SoftKey – это уникальный сервис для покупателей, разработчиков, дилеров и аффилиат–партнеров. Кроме того, это один из лучших Интернет-магазинов ПО в России, Украине, Казахстане, который предлагает покупателям широкий ассортимент, множество способов оплаты, оперативную (часто мгновенную) обработку заказа, отслеживание процесса выполнения заказа в персональном разделе, различные скидки от магазина и производителей ПО.</p> </span> <p><img src='https://i2.wp.com/spinch.net.ua/images/stories/compon/phocagal1.jpg' height="156" width="132" loading=lazy><b>Компонент Phoca Guestbook </b> - это отличная гостевая книга на вашем сайте. Как и другие расширения от создателей Phoca , данный компонент выполнен достаточно профессионально и оснащен необходимыми параметрами. С помощью Phoca Guestbook можно создать не только гостевую книгу, но и форму отправки сообщений, страницу обсуждение и опросов, страницы с предложениями и замечаниями, и прочие материалы на что хватит фантазии, при этом всё это можно использовать параллельно.</p> <h2>Особенности и преимущества</h2> <ul><li>возможность создания нескольких гостевых книг</li> <li>настройка стилей, расположения и заполняемых полей</li> <li>выбор полей, которые будут показаны в сообщении</li> <li>различные виды защиты от спам-ботов</li> <li>возможность предмодерации сообщений</li> <li>установка максимального количества символов и запрет нежелательных слов</li> <li>возможность блокировки пользователей по IP</li> <li>уведомления о новых сообщениях</li> </ul><h2>Установка и панель управления</h2> <p>Проект устанавливается точно также как и большинство расширений, <b>но </b> после того, как установка завершится появятся 2 кнопки - <b>Install </b> и <b>Upgrade </b>. В случае новой установки нужно выбрать Install, в случае обновления компонента - Upgrade. Теперь можно перейти к панели управления, который можно найти по пути: Компоненты - Phoca Guestbook.</p> <p><img src='https://i1.wp.com/spinch.net.ua/images/stories/compon/phocagal2.JPG' height="108" width="367" loading=lazy></p> <h3>Раздел Posts</h3> <p>Здесь отображаются все комментарии, которые можно просматривать и в случае необходимости изменять и удалять. Также здесь предусмотрена возможность создания нового отзыва.</p> <h3>Раздел Guestbooks</h3> <p>Данный компонент имеет возможность создания нескольких гостевых книг, с различными темами - опросом, критикой, предложений и т.п. Таким образом для каждой темы создается отдельный Gusetbook, для этого нужно нажать кнопку <b>Создать </b>, и дальше обязательным является указание заголовка.</p> <h3>Info</h3> <p>Этот раздел содержит в себе краткую информацию о разработчике, установленной версии компонента и полезные ссылки. Кроме того есть большая кнопка Check Update, при нажатии на которую вы будете перемещены на другую страницу, где показана последняя версия (<i>current version </i>) и установленная(<i>your version </i>).</p> <h2><img src='https://i2.wp.com/spinch.net.ua/images/stories/compon/phocagal3.JPG' height="69" width="135" loading=lazy>Настройка компонента Phoca Guestbook</h2> <p>Перейти к настройкам можно только из панели управления (<b>Control panel </b>), где около Справки находится иконка <b>Настроек </b>. После перехода в которые откроется всплывающее окно с вкладками: Form, General, Post, Security, Права.</p> <p><img src='https://i1.wp.com/spinch.net.ua/images/stories/compon/phocagal4.JPG' width="100%" loading=lazy></p> <h4>Form</h4> <ul><li><b>Display Subject|Name|Email|Website|Content| In Form </b> - показывать или нет Тему/имя/эл.почту/сайт/поле сообщения для отправки отзыва. Если <i>required </i> - обязательно.</li> <li><span><b>Enable Javascript Editor </b> - отображать или нет визуальный редактор для поля сообщения </span></li> <li><span><b>Display Path In Javascript Editor </b> - показывать или нет html-теги внизу редактора </span></li> <li><span><b>Display Form </b> - показывать или скрывать форму (если скрыть, то при нажатии на ссылку форма откроется) </span></li> <li><span><b>Form Position </b> - расположение формы вверху (<i>Top </i>) или внизу (<i>Bottom </i>) сообщений </span></li> <li><span><b>Display Required Sign </b> - показывать или нет авторизацию, если она нужна для отправки сообщений </span></li> <li><span><b>Display Posts </b> - можно скрыть сообщения (например, когда Guestbook используется, как форма обратной связи) </span></li> <li><span><b>Editor Width|Height </b> - ширина/высота поля с сообщениями </span></li> <li><b>Table Width </b><span>- ширина таблицы в которой отображается форма </span></li> </ul><h4>General</h4> <ul><li><b>Predefined Name </b> - имя по-умолчанию</li> <li><b>Username Or Name </b> - логин или имя зарегистрированного пользоваться будут отображаться</li> <li><b>Disable User Check </b> - требуется или нет проверка пользователей по E-mail</li> <li><b>Registered Users Only </b> - если <i>Да </i>, то отправка сообщений доступна только зарегистрированным пользователям</li> <li><b>Review Item </b> - если <i>Да </i>, то сообщение будут показано после одобрения администратора</li> <li><b>Send Email </b> - выбрать пользователя, кому будут отправляться сообщения</li> </ul><h4>Post</h4> <ul><li><b>Display Name|Email|Website In Post </b> - показывать или нет имя/эл.почту/сайт в сообщениях</li> <li><b>Date Format </b> - установка формата даты</li> <li><b>Font ColorPick Color </b> - выбор цвета шрифтв</li> <li><b>Second Font ColorPick Color </b> - выбор второго цвета шрифта</li> <li><b>Background ColorPick Color </b> - выбор цвета фона</li> <li><b>Border ColorPick Color </b> - выбор цвета границ</li> <li><b>Pagination Default Value </b> - количество комментариев на странице (по умолчанию)</li> <li><b>Pagination </b> - установка, через запятую выбор количества комментариев на странице</li> <li><b>Pagination Hide All - </b> если <i>Да </i>, то опция Все (all) будет недоступна при выборе количества</li> </ul><h4>Security</h4> <ul><li><b>Forbidden Word Filter </b> - список запрещенных слов</li> <li><b>Forbidden Whole Word Filter </b> - список запрещенных слов целиком</li> <li><b>Save post with forbidden word </b> - сохранять или нет сообщения с запрещенными словами</li> <li><b>IP Ban </b> - список заблокированных IP-адресов</li> <li><b>Maximum Characters </b> - максимальное количество символов в сообщении</li> <li><b>Maximum Url </b> - максимальное количество ссылок в сообщении</li> <li><b>Not Allowed URL Identification Words </b> - список символов, которые запрещено использовать в ссылках (<i>html, //, www и т.п. </i>)</li> <li><b>Enable Captcha </b> - установить <i>No </i> или выбрать типа капчи, которая будет использоваться</li> <li><b>Captcha URL </b> - установить формат ссылки на изображение капчи, если оно не показывается</li> <li><b>Enable Captcha-Users </b> - кому показывать капчу - всем или пользователям без регистрации</li> <li><b>Standard|Math|TTF Captcha Characters </b> - виды символов для различных типов капчи</li> <li><b>reCAPTCHA Public/Private Key </b> - указать ключи, которые можно получить на сайте - www.google.com/recaptcha/admin/create</li> <li><b>Enable Akismet Spam Protection </b> - использовать или нет анти-спам защиту от Akismet</li> <li><b>Block Spam (Akismet) / Akismet API Key / Akismet URL </b> - если используете этот сервис, то нужно заполнить поля</li> <li><b>Specific Itemid </b> - указать специальный ID для компонента</li> <li><b>Enable HTML Purifier </b> - использовать или нет очистку html-кода</li> <li><b>Session Suffix </b> - установка специального суффикса против смены имени сессии</li> <li><b>Enable Hidden Field </b> - если включить скрытые поля, то их будут заполнять только боты, а не люди, таким образом сообщение не будет отправляться</li> <li><b>Enable Cache </b> - использовать или нет кэширование</li> <li><b>Enable Detecting Incoming Page </b> - определять или нет страницу, с которой был отправлен комментарий</li> </ul><h4>Права</h4> <p>Здесь можно определить необходимые права доступа различным группам пользователей.</p> <h2>Создание гостевой книги на сайте</h2> <p>Для того чтобы гостевая книга отображалась на вашем сайте, нужно создать для неё пункт меню, с типом - Guestbook.</p> <p><img src='https://i1.wp.com/spinch.net.ua/images/stories/compon/phocagal5.JPG' height="159" width="357" loading=lazy></p> <p>Далее, в <b>Обязательных параметрах </b> выбирается название гостевой книги, которая будет доступна в пункте меню, а ниже в <b>Основных параметрах </b> можно установить скрывать или нет отображение навигации на странице с комментариями.</p> <p>Для Joomla 1.5 также есть модуль, который позволяет отображать последние комментарии от компонента, но он доступен на официальном сайте только для тех, кто пожертвовал деньги проекту.</p> <p>Спонсором данной статьи выступает кофе blasercafe , лучший выбор чая и кофе для Вас и Вашей семьи.</p> <p>Любой поиск уязвимостей на веб-ресурсах начинается с разведки и сбора информации.<br> Разведка может быть как активной - брутфорс файлов и директорий сайта, запуск сканеров уязвимостей, ручной просмотр сайта, так и пассивной - поиск информации в разных поисковых системах. Иногда бывает так, что уязвимость становится известна еще до открытия первой страницы сайта. </p><p> <b>Как такое возможно? </b><br> Поисковые роботы, безостановочно бродящие по просторам интернета, помимо информации, полезной обычному пользователю, часто фиксируют то, что может быть использовано злоумышленниками при атаке на веб-ресурс. Например, ошибки скриптов и файлы с чувствительной информацией (начиная от конфигурационных файлов и логов, заканчивая файлами с аутентификационными данными и бэкапами баз данных).<br> С точки зрения поискового робота сообщение об ошибке выполнения sql-запроса - это обычный текст, неотделимый, например, от описания товаров на странице. Если вдруг поисковый робот наткнулся на файл с расширением.sql, который почему-то оказался в рабочей папке сайта, то он будет воспринят как часть содержимого сайта и так же будет проиндексирован (включая, возможно, указанные в нём пароли).</p><p>Подобную информацию можно найти, зная устойчивые, часто уникальные, ключевые слова, которые помогают отделить «уязвимые страницы» от страниц, не содержащих уязвимости. <br> Огромная база специальных запросов с использованием ключевых слов (так называемых дорков) существует на exploit-db.com и известна под названием Google Hack Database.</p><p><b>Почему google? </b><br> Дорки ориентированы в первую очередь на google по двум причинам:<br> − наиболее гибкий синтаксис ключевых слов (приведен в Таблице 1) и специальных символов (приведен в Таблице 2);<br> − индекс google всё же более полный нежели у других поисковых систем;</p><p>Таблица 1 – Основные ключевые слова google<br></p><table><tbody><tr><td width="214"><b>Ключевое слово </b><br></td> <td width="214"><b>Смысл </b><br></td> <td width="214"><b>Пример </b><br></td> </tr><tr><td width="214">site<br></td> <td width="214">Поиск только на указанном сайте. Учитывает только url<br></td> <td width="214">site:somesite.ru - найдет все страницы по данному домену и поддоменам<br></td> </tr><tr><td width="214">inurl<br></td> <td width="214">Поиск по словам, присутствующим в uri. В отличие от кл. слова “site”, ищет совпадения после имени сайта<br></td> <td width="214">inurl:news - найдет все страницы, где в uri встретится данное слово<br></td> </tr><tr><td width="214">intext<br></td> <td width="214">Поиск в теле страницы<br></td> <td width="214">intext:”пробки” - полностью аналогично обычному запросу “пробки”<br></td> </tr><tr><td width="214">intitle<br></td> <td width="214">Поиск в заголовке страницы. Текст, заключенный между тэгами <title><br></td> <td width="214">intitle:”index of” - найдет все страницы с листингом директории<br></td> </tr><tr><td width="214">ext<br></td> <td width="214">Поиск страниц с указанным расширением<br></td> <td width="214">ext:pdf - найдет все pdf-файлы<br></td> </tr><tr><td width="214">filetype<br></td> <td width="214">В настоящее время полностью аналогично кл. слову “ext”<br></td> <td width="214">filetype:pdf - аналогично<br></td> </tr><tr><td width="214">related<br></td> <td width="214">Поиск сайтов со схожей тематикой<br></td> <td width="214">related:google.ru - покажет свои аналоги<br></td> </tr><tr><td width="214">link<br></td> <td width="214">Поиск сайтов, ссылающихся на данный<br></td> <td width="214">link:somesite.ru - найдет все сайты, на которых есть ссылка на данный<br></td> </tr><tr><td width="214">define<br></td> <td width="214">Показать определение слова<br></td> <td width="214">define:0day - определение термина<br></td> </tr><tr><td width="214">cache<br></td> <td width="214">Показать содержимое страницы в кэше (если имеется)<br></td> <td width="214">cache:google.com - откроет страницу из кэша<br></td> </tr></tbody></table><p>Таблица 2 – Специальные символы запросов google<br></p><table><tbody><tr><td width="214"><b>Символ </b><br></td> <td width="214"><b>Смысл </b><br></td> <td width="214"><b>Пример </b><br></td> </tr><tr><td width="214">“<br></td> <td width="214">Точная фраза<br></td> <td width="214">intitle:«RouterOS router configuration page» - поиск роутеров<br></td> </tr><tr><td width="214">*<br></td> <td width="214">Любой текст<br></td> <td width="214">inurl:«bitrix*mcart» - поиск сайтов на bitrix с уязвимым модулем mcart<br></td> </tr><tr><td width="214">.<br></td> <td width="214">Любой символ<br></td> <td width="214">Index.of - аналогично запросу index of<br></td> </tr><tr><td width="214">-<br></td> <td width="214">Исключить слово<br></td> <td width="214">error -warning - показать все страницы, где есть error, но нет warning<br></td> </tr><tr><td width="214">..<br></td> <td width="214">Диапазон<br></td> <td width="214">cve 2006..2016 - показать уязвимости по годам начиная с 2006<br></td> </tr><tr><td width="214">|<br></td> <td width="214">Логическое «или»<br></td> <td width="214">linux | windows - показать страницы, где встречается либо первое либо второе слово<br></td> </tr></tbody></table><br> Стоит понимать, что любой запрос к поисковой системе - это поиск только по словам.<br> Бесполезно искать на странице мета-символы (кавычки, скобки, знаки пунктуации и т. п). Даже поиск по точной фразе, указанной в кавычках, - это поиск по словам, с последующим поиском точного совпадения уже в результатах.<p>Все дорки Google Hack Database разделены логически на 14 категорий и представлены в таблице 3.<br> Таблица 3 – Категории Google Hack Database<br></p><table><tbody><tr><td width="168"><b>Категория </b><br></td> <td width="190"><b>Что позволяет найти </b><br></td> <td width="284"><b>Пример </b><br></td> </tr><tr><td width="168">Footholds<br></td> <td width="190">Веб-шеллы, публичные файловые менеджеры<br></td> <td width="284">Найти все взломанные сайты, где залиты перечисленные вебшеллы:<br> (intitle:«phpshell» OR intitle:«c99shell» OR intitle:«r57shell» OR intitle:«PHP Shell » OR intitle:«phpRemoteView») `rwx` «uname»<br></td> </tr><tr><td width="168">Files containing usernames<br></td> <td width="190">Файлы реестра, конфигурационные файлы, логи, файлы, содержащие историю введенных команд<br></td> <td width="284">Найти все файлы реестра, содержащие информацию об аккаунтах:<br><i>filetype:reg reg +intext:«internet account manager» </i><br></td> </tr><tr><td width="168">Sensitive Directories<br></td> <td width="190">Каталоги с различной информацией (личные документы, конфиги vpn, скрытые репозитории и т.д.)<br></td> <td width="284">Найти все листинги директорий содержащих файлы, относящиеся к vpn:<br><i>«Config» intitle:«Index of» intext:vpn </i><br> Сайты, содержащие git-репозитории:<br><i>(intext:«index of /.git») («parent directory») </i><br></td> </tr><tr><td width="168">Web Server Detection<br></td> <td width="190">Версию и иную информацию о веб-сервере<br></td> <td width="284">Найти административные консоли сервера JBoss:<br><i>inurl:"/web-console/" intitle:«Administration Console» </i><br></td> </tr><tr><td width="168">Vulnerable Files<br></td> <td width="190">Скрипты, содержащие известные уязвимости<br></td> <td width="284">Найти сайты, использующие скрипт, позволяющий выгрузить произвольный файл с сервера:<br><i>allinurl:forcedownload.php?file= </i><br></td> </tr><tr><td width="168">Vulnerable Servers<br></td> <td width="190">Инсталляционные скрипты, веб-шеллы, открытые административные консоли и т.д<br></td> <td width="284">Найти открытые PHPMyAdmin консоли, запущенные от root:<br><i>intitle:phpMyAdmin «Welcome to phpMyAdmin ***» «running on * as root@*» </i><br></td> </tr><tr><td width="168">Error Messages<br></td> <td width="190">Различные ошибки и предупреждения часто раскрывающие важную информацию - начиная от версии CMS до паролей<br></td> <td width="284">Сайты, имеющие ошибки в выполнении sql-запросов к базе:<br><i>«Warning: mysql_query()» «invalid query» </i><br></td> </tr><tr><td width="168">Files containing juicy info<br></td> <td width="190">Сертификаты, бэкапы, электронные письмы, логи, sql-скрипты и т.д<br></td> <td width="284">Найти инициализационные sql-скрипты:<br><i>filetype:sql and «insert into» -site:github.com </i><br></td> </tr><tr><td width="168">Files containing passwords<br></td> <td width="190">Всё что может содержать пароли - логи, sql-скрипты и т.д<br></td> <td width="284">Логи, упоминающие пароли:<br><i>filetype: </i><i>log </i><i>intext: </i><i>password | </i><i>pass | </i><i>pw </i><br> sql-скрипты содержащие пароли:<br><i>ext: </i><i>sql </i><i>intext: </i><i>username </i><i>intext: </i><i>password </i><br></td> </tr><tr><td width="168">Sensitive Online Shopping Info<br></td> <td width="190">Информацию связанную с онлайн покупками<br></td> <td width="284">Найти пинкоды:<br><i>dcid= </i><i>bn= </i><i>pin </i><i>code= </i><br></td> </tr><tr><td width="168">Network or vulnerability data<br></td> <td width="190">Информацию, не относящуюся непосредственно к веб-ресурсу, но затрагивающую сеть либо прочие не веб-сервисы<br></td> <td width="284">Найти скрипты автоматической настройки прокси, содержащие информацию о внутренней сети:<br><i>inurl:proxy | inurl:wpad ext:pac | ext:dat findproxyforurl </i><br></td> </tr><tr><td width="168">Pages containing login portals<br></td> <td width="190">Страницы, содержащие формы входа<br></td> <td width="284">Веб-страницы saplogon:<br><i>intext:«2016 SAP AG. All rights reserved.» intitle:«Logon» </i><br></td> </tr><tr><td width="168">Various Online Devices<br></td> <td width="190">Принтеры, роутеры, системы мониторинга и т.д<br></td> <td width="284">Найти конфигурационную панель принтера:<br><i>intitle:" </i><i>hp </i><i>laserjet" </i><i>inurl: </i><i>SSI/ </i><i>Auth/ </i><i>set_ </i><i>config_ </i><i>deviceinfo. </i><i>htm </i><br></td> </tr><tr><td width="168">Advisories and Vulnerabilities<br></td> <td width="190">Сайты на уязвимых версиях CMS<br></td> <td width="284">Найти уязвимые плагины, через которые можно загрузить произвольный файл на сервер:<br><i>inurl:fckeditor -intext:«ConfigIsEnabled = False» intext:ConfigIsEnabled </i><br></td> </tr></tbody></table><br> Дорки чаще ориентированы на поиск по всем сайтам сети интернет. Но ни что не мешает ограничить область поиска на каком-либо сайте или сайтах.<br> Каждый запрос к google можно сосредоточить на определённом сайте, добавив к запросу ключевое слово «site:somesite.com». Данное ключевое слово может быть дописано к любому дорку.<p><b>Автоматизация поиска уязвимостей </b><br> Так родилась идея написать простенькую утилиту, автоматизирующую поиск уязвимостей с помощью поисковой системы (google) и опирающуюся на Google Hack Database.</p><p>Утилита представляет из себя скрипт, написанный на nodejs с использованием phantomjs. Если быть точным, то скрипт интерпретируется самим phantomjs.<br> Phantomjs - это полноценный веб-браузер без графического интерфейса, управляемый с помощью js-кода и обладающий удобным API.<br> Утилита получила вполне понятное название – dorks. Запустив её в командной строке (без опций) получаем короткую справку с несколькими примерами использования:<br><br><img src='https://i0.wp.com/habrastorage.org/getpro/habr/post_images/edd/6fb/ccc/edd6fbccc5ec340abe750f3073c1b427.jpg' width="100%" loading=lazy><br> Рисунок 1 - Список основных опций dorks</p><p>Общий синтаксис утилиты: dork «команда» «список опций».<br> Подробное описание всех опций представлено в таблице 4. </p><p>Таблица 4 – Синтаксис dorks<br></p><table border="1"><tbody><tr><td width="214"><b>Команда </b><br></td> <td width="214"><b>Опция </b><br></td> <td width="214"><b>Описание </b><br></td> </tr><tr><td rowspan="4" width="214">ghdb<br></td> <td width="214">-l<br></td> <td width="214">Вывести нумерованный список категорий дорков Google Hack Database<br></td> </tr><tr><td width="214">-c «номер или название категории»<br></td> <td width="214">Загрузить дорки указанной категории по номеру или названию<br></td> </tr><tr><td width="214">-q «фраза»<br></td> <td width="214">Загрузить дорки, найденные по запросу<br></td> </tr><tr><td width="214">-o «файл»<br></td> <td width="214">Сохранить результат в файл (только вместе с опциями -c|-q)<br></td> </tr><tr><td rowspan="8" width="214">google<br></td> <td width="214">-d «дорк»<br></td> <td width="214">Задать произвольный дорк (опция может использоваться много раз, допускается сочетание с опцией -D)<br></td> </tr><tr><td width="214">-D «файл»<br></td> <td width="214">Использовать дорки из файла<br></td> </tr><tr><td width="214">-s «сайт»<br></td> <td width="214">Задать сайт (опция может использоваться много раз, допускается сочетание с опцией -S)<br></td> </tr><tr><td width="214">-S «файл»<br></td> <td width="214">Использовать сайты из файла (перебор дорков будет выполнен по каждому сайту независимо)<br></td> </tr><tr><td width="214">-f «фильтр»<br></td> <td width="214">Задать дополнительные ключевые слова (будет добавлено к каждому дорку)<br></td> </tr><tr><td width="214">-t «количество мс»<br></td> <td width="214">Интервал между запросами к google<br></td> </tr><tr><td width="214">-T «количество мс»<br></td> <td width="214">Таймаут, если встретилась каптча<br></td> </tr><tr><td width="214">-o «файл»<br></td> <td width="214">Сохранить результат в файл (будут сохранены только те дорки, по которым что-то нашлось)<br></td> </tr></tbody></table><br> С помощью команды ghdb можно получить все дорки с exploit-db по произвольному запросу, либо указать целиком всю категорию. Если указать категорию 0 - то будет выгружена вся база (около 4.5 тысяч дорков).<p>Список категорий доступных на данный момент представлен на рисунке 2.<br><br><img src='https://i1.wp.com/habrastorage.org/getpro/habr/post_images/b8f/b11/ffe/b8fb11ffeaced5066fd2fd9e43be67fb.jpg' width="100%" loading=lazy></p><p>Рисунок 2 - Список доступных категорий дорков GHDB</p><p>Командой google будет произведена подстановка каждого дорка в поисковик google и проанализирован результат на предмет совпадений. Дорки по которым что-то нашлось будут сохранены в файл.<br> Утилита поддерживает разные режимы поиска:<br> 1 дорк и 1 сайт;<br> 1 дорк и много сайтов;<br> 1 сайт и много дорков;<br> много сайтов и много дорков;<br> Список дорков и сайтов можно задать как через аргумент, так и через файл.</p><p><b>Демонстрация работы </b><br> Попробуем поискать какие-либо уязвимости на примере поиска сообщений об ошибках. По команде: dorks ghdb –c 7 –o errors.dorks будут загружены все известные дорки категории “Error Messages” как показано на рисунке 3.<br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/28c/386/641/28c386641d1528652f7f8e8b8089097a.jpg' width="100%" loading=lazy><br> Рисунок 3 – Загрузка всех известных дорков категории “Error Messages”</p><p>Дорки загружены и сохранены в файл. Теперь остается «натравить» их на какой-нибудь сайт (см. рисунок 4).<br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/8e0/a8a/3af/8e0a8a3af4f26544da1faa584813dbff.jpg' width="100%" loading=lazy><br> Рисунок 4 – Поиск уязвимостей интересуемого сайта в кэше google</p><p>Спустя какое-то время на исследуемом сайте обнаруживается несколько страниц, содержащих ошибки (см. рисунок 5).</p><p><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/10b/e83/ba3/10be83ba38f172213ba06b3f9ad05a58.jpg' width="100%" loading=lazy><br> Рисунок 5 – Найденные сообщения об ошибках</p><p>Итог, в файле result.txt получаем полный список дорков, приводящих к появлению ошибки.<br> На рисунке 6 представлен результат поиска ошибок сайта.<br><br> Рисунок 6 – Результат поиска ошибок</p><p>В кэше по данному дорку выводится полный бэктрейс, раскрывающих абсолютные пути скриптов, систему управления содержимым сайта и тип базы данных (см. рисунок 7).<br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/0a9/455/588/0a9455588496d6609f5e13d598cb5a48.jpg' width="100%" loading=lazy><br> Рисунок 7 – раскрытие информации об устройстве сайта </p><p>Однако стоит учитывать, что не все дорки из GHDB дают истинный результат. Так же google может не найти точного совпадения и показать похожий результат.</p><p>В таком случае разумнее использовать свой персональный список дорков. Например, всегда стоит поискать файлы с «необычными» расширениями, примеры которых приведены на рисунке 8.<br><br><img src='https://i0.wp.com/habrastorage.org/getpro/habr/post_images/d7f/865/693/d7f865693f7fcf13137598eeed0ecb58.jpg' width="100%" loading=lazy><br> Рисунок 8 – Список расширений файлов, не характерных для обычного веб-ресурса</p><p>В итоге, по команде dorks google –D extensions.txt –f банк, с самого первого запроса google начинает отдавать сайты с «необычными» расширениями файлов (см. рисунок 9). <br><br><img src='https://i1.wp.com/habrastorage.org/getpro/habr/post_images/107/e1f/a2f/107e1fa2f41c4169bcc254cba2f2f4b6.jpg' width="100%" loading=lazy><br> Рисунок 9 – Поиск «нехороших» типов файлов на сайтах банковской тематики</p><p>Стоит иметь ввиду, что google не воспринимает запросы длиннее 32 слов.</p><p>С помощью команды dorks google –d intext:”error|warning|notice|syntax” –f университет <br> можно поискать ошибки интерпретатора PHP на сайтах учебной тематики (см. рисунок 10). <br><br><img src='https://i1.wp.com/habrastorage.org/getpro/habr/post_images/717/74f/e36/71774fe3656bfc058c42d43262fdec4a.jpg' width="100%" loading=lazy><br> Рисунок 10 – Поиск PHP-ошибок времени исполнения</p><p>Иногда пользоваться какой-то одной или двумя категориями дорков не удобно.<br> Например, если известно, что сайт работает на движке wordpress, то нужны дорки именно по wordpress. В таком случае удобно воспользоваться поиском Google Hack Database. Команда dorks ghdb –q wordpress –o wordpress_dorks.txt загрузит все дорки по Wordpress, как показано на рисунке 11:<br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/dcb/ac9/a4e/dcbac9a4eb12f6ec775d9cccc2fdee87.jpg' width="100%" loading=lazy><br> Рисунок 11 – Поиск дорков, относящихся к Wordpress</p><p>Снова вернемся к банкам и командой dorks google –D wordpress_dords.txt –f банк попробуем найти что-нибудь интересное, связанное с wordpress (см. рисунок 12).<br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/042/0c2/c43/0420c2c435931704288b171f725ccc6a.jpg' width="100%" loading=lazy><br> Рисунок 12 – Поиск уязвимостей Wordpress</p><p>Стоит заметить, что поиск на Google Hack Database не воспринимает слова короче 4 символов. Например, если CMS сайта не известна, но известен язык - PHP. В таком случае можно отфильтровать нужное вручную с помощью пайпа и системной утилиты поиска dorks –c all | findstr /I php > php_dorks.txt (см. рисунок 13):<br><br><img src='https://i2.wp.com/habrastorage.org/getpro/habr/post_images/4c1/2f8/6e1/4c12f86e111074293c14d6a939c6ebab.jpg' width="100%" loading=lazy><br> Рисунок 13 – Поиск по всем доркам, где есть упоминание PHP</p><p>Поиск уязвимостей или какой-то чувствительной информации в поисковой системе следует искать только в случае если по данному сайту есть значительный индекс. Например, если у сайта проиндексировано 10-15 страниц, то глупо что-либо искать подобным образом. Проверить размер индекса просто - достаточно ввести в строку поиска google «site:somesite.com». Пример сайта с недостаточным индексом показан на рисунке 14.<br><br><img src='https://i1.wp.com/habrastorage.org/getpro/habr/post_images/78e/1db/b4f/78e1dbb4fc78cd422cec311fc2ca9d33.jpg' width="100%" loading=lazy><br> Рисунок 14 – Проверка размера индекса сайта</p><p>Теперь о неприятном… Периодически google может запросить каптчу - тут ничего не поделать - её придется ввести. Например, у меня, при переборе категории «Error Messages» (90 дорков) каптча выпала только один раз.</p><p>Стоит добавить, что phantomjs поддерживает работу так же и через прокси, как через http, так и через socks интерфейс. Для включения режима прокси надо раскоментировать соответствующую строку в dorks.bat или dorks.sh.</p><p>Инструмент доступен в виде исходного кода</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy>");</script> </div> <div class="edit-link"> </div> <ul class="related-posts"> <div class="clear"></div> <div class="cat-bar"><span class="side-title">Другие записи</span></div> <li class="related"> <a href="/flash-drive/zapis-igry-nvidia-shadowplay---chto-eto-za-programma-funkcional-i-osnovnye-preimushchestva-prilozheniya.html" title="Shadowplay - что это за программа?"> <img alt='Shadowplay - что это за программа?' src='/uploads/0aa4fa415e4bf49871b936c11846de08.jpg' / loading=lazy> <span class="rel-post-title">Shadowplay - что это за программа?</span> </a> </li> <li class="related"> <a href="/stalker-2/skachat-10-samyh-nuzhnyh-prilozhenii-na-android-samye-poleznye.html" title="Самые полезные приложения для Андроид: почему нужно скачать обязательно!"> <img alt='Самые полезные приложения для Андроид: почему нужно скачать обязательно!' src='/uploads/5c9da50ee947cef1ddb1a895320d7bcd.jpg' / loading=lazy> <span class="rel-post-title">Самые полезные приложения для Андроид: почему нужно скачать обязательно!</span> </a> </li> <li class="related"> <a href="/flash-drive/osnovnye-vidy-obektov-konfiguracii-kratkie-teoreticheskie.html" title="Краткие теоретические сведения"> <img alt='Краткие теоретические сведения' src='/uploads/2b14de66a58eb0825eb56f728be8e36c.jpg' / loading=lazy> <span class="rel-post-title">Краткие теоретические сведения</span> </a> </li> <li class="related"> <a href="/games/kak-skachat-video-s-vkontakte-na-kompyuter-kak-skachat-muzyku-iz.html" title="Как скачать музыку из вконтакте Скачать музику из вконтакте онлайн безплатно"> <img alt='Как скачать музыку из вконтакте Скачать музику из вконтакте онлайн безплатно' src='/uploads/f244afb7ec33eb878e99f6a09f5851b9.jpg' / loading=lazy> <span class="rel-post-title">Как скачать музыку из вконтакте Скачать музику из вконтакте онлайн безплатно</span> </a> </li> <li class="related"> <a href="/programming/obzor-galaxy-a7-2018-pervogo-smartfona-ot-samsung-s-troinoi-kameroi-obzor-samsung-galaxy-a7.html" title="Обзор Samsung Galaxy A7 – лучший средний класс с флагманскими возможностями Защита от воды и пыли"> <img alt='Обзор Samsung Galaxy A7 – лучший средний класс с флагманскими возможностями Защита от воды и пыли' src='/uploads/7a84bc70d824b86bbf6af709c35230d3.jpg' / loading=lazy> <span class="rel-post-title">Обзор Samsung Galaxy A7 – лучший средний класс с флагманскими возможностями Защита от воды и пыли</span> </a> </li> <li class="related"> <a href="/traffic/rabota-dlya-vrachei-pisat-stati-rabota-dlya-vracha-v-servise-imedicum.html" title="Работа для врача в сервисе iMedicum"> <img alt='Работа для врача в сервисе iMedicum' src='/uploads/70896e8461d0b451e2fa436095ad9344.jpg' / loading=lazy> <span class="rel-post-title">Работа для врача в сервисе iMedicum</span> </a> </li> <li class="related"> <a href="/programming/proshivka-zte-leo-q1-bez-kompyutera-poluchenie-root-zte-leo-q1-zte-leo-q1-telefon.html" title="Получение Root ZTE Leo Q1"> <img alt='Получение Root ZTE Leo Q1' src='/uploads/ad067c04277e11d3db337a4c77d38eef.jpg' / loading=lazy> <span class="rel-post-title">Получение Root ZTE Leo Q1</span> </a> </li> <li class="related"> <a href="/ok-google/programma-dlya-vosstanovleniya-c-ntfs-vosstanovlenie-dannyh-c.html" title="Восстановление данных c повреждённых разделов NTFS Восстановить данные с жесткого диска ntfs 4"> <img alt='Восстановление данных c повреждённых разделов NTFS Восстановить данные с жесткого диска ntfs 4' src='/uploads/7117ac85742c8b56a9948365fcc2cffc.jpg' / loading=lazy> <span class="rel-post-title">Восстановление данных c повреждённых разделов NTFS Восстановить данные с жесткого диска ntfs 4</span> </a> </li> <li class="related"> <a href="/dying-light/pochemu-net-zvuka-na-kompe-windows-7-propal-zvuk-na-kompyutere-chto.html" title="Пропал звук на компьютере"> <img alt='Пропал звук на компьютере' src='/uploads/d2e5488130183e666a7c108602f66046.jpg' / loading=lazy> <span class="rel-post-title">Пропал звук на компьютере</span> </a> </li> </ul> <div class="clear"></div> <hr /> <script type="text/javascript" src="//vk.com/js/api/openapi.js?146"></script> <div id="vk_comments"></div> <div id="disqus_thread"> </div> </div> <div class="clear"></div> </div> <div class="sidebar"> <div class="side-blok"> <div class="cat-bar"><span class="side-title">Популярное</span></div> <ul class="wpp-list wpp-list-with-thumbnails"> <li> <a href="/vkontakte/top-programm-dlya-ustanovki-draiverov-ustanovshchik-draiverov-kak-obnovit.html" title="Установщик драйверов: как обновить все и сразу" target="_self"><img src="/uploads/92be1c527b57b9f5bc274f1127d571bb.jpg" width="100" height="100" alt="Установщик драйверов: как обновить все и сразу" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy></a> <a href="/vkontakte/top-programm-dlya-ustanovki-draiverov-ustanovshchik-draiverov-kak-obnovit.html" title="Установщик драйверов: как обновить все и сразу" class="wpp-post-title" target="_self">Установщик драйверов: как обновить все и сразу</a> </li> <li> <a href="/blacklist/chto-takoe-messenger-i-kak-imi-polzovatsya-obzor-luchshih-programm-dlya-obshcheniya-na-ios-i.html" title="Обзор лучших программ для общения на iOs и Android" target="_self"><img src="/uploads/7fbdee0d33c40cfa4afe45fbc25ac70c.jpg" width="100" height="100" alt="Обзор лучших программ для общения на iOs и Android" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy></a> <a href="/blacklist/chto-takoe-messenger-i-kak-imi-polzovatsya-obzor-luchshih-programm-dlya-obshcheniya-na-ios-i.html" title="Обзор лучших программ для общения на iOs и Android" class="wpp-post-title" target="_self">Обзор лучших программ для общения на iOs и Android</a> </li> <li> <a href="/game/vkontakte-v-rezhime-offline-durov-verni-nevidimku-kak-sidet-v-vk-offlain.html" title="Вконтакте в режиме offline" target="_self"><img src="/uploads/fbaee1b34d468094ce322ec90310f894.jpg" width="100" height="100" alt="Вконтакте в режиме offline" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy></a> <a href="/game/vkontakte-v-rezhime-offline-durov-verni-nevidimku-kak-sidet-v-vk-offlain.html" title="Вконтакте в режиме offline" class="wpp-post-title" target="_self">Вконтакте в режиме offline</a> </li> <li> <a href="/flash-drive/otlichie-platnyh-i-besplatnyh-antivirusov-dlya-windows-platit-ili-ne.html" title="Платить или не платить за антивирус?" target="_self"><img src="/uploads/06717b0999c2b3820b4c0622b36492ef.jpg" width="100" height="100" alt="Платить или не платить за антивирус?" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy></a> <a href="/flash-drive/otlichie-platnyh-i-besplatnyh-antivirusov-dlya-windows-platit-ili-ne.html" title="Платить или не платить за антивирус?" class="wpp-post-title" target="_self">Платить или не платить за антивирус?</a> </li> <li> <a href="/ok-google/gde-nahoditsya-yandeks-brauzer-na-kompyutere-ustanovka-i-obnovlenie-brauzera.html" title="Установка и обновление браузера Установка яндекс браузера без интернета" target="_self"><img src="/uploads/04f934a2cf7ea1663fba5922da930c10.jpg" width="100" height="100" alt="Установка и обновление браузера Установка яндекс браузера без интернета" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy></a> <a href="/ok-google/gde-nahoditsya-yandeks-brauzer-na-kompyutere-ustanovka-i-obnovlenie-brauzera.html" title="Установка и обновление браузера Установка яндекс браузера без интернета" class="wpp-post-title" target="_self">Установка и обновление браузера Установка яндекс браузера без интернета</a> </li> </ul> </div> <div class="side-blok"> <div class="cat-bar"><span class="side-title">Категории</span></div> <div class="menu-1-container"><ul id="menu-1" class="menu"> <li id="menu-item-" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-"><a href="/category/iron/">Железо</a></li> <li id="menu-item-" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-"><a href="/category/game/">Игра</a></li> <li id="menu-item-" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-"><a href="/category/traffic/">Трафик</a></li> <li id="menu-item-" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-"><a href="/category/networks/">Сети</a></li> <li id="menu-item-" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-"><a href="/category/blacklist/">Черный список</a></li> <li id="menu-item-" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-"><a href="/category/phone/">Телефон</a></li> <li id="menu-item-" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-"><a href="/category/vkontakte/">Vkontakte</a></li> <li id="menu-item-" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-"><a href="/category/games/">Игры</a></li> <li id="menu-item-" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-"><a href="/category/dash/">Тире</a></li> </ul></div></div> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="credits"> <div class="social-bar"> <ul> </ul> </div> <p>© 2024 <br /> exotop.ru - ExoTop - интернет и технологии</p> </div> <a id="backtop" href="#top"><i class="fa fa-chevron-circle-up" aria-hidden="true"></i></a> <script type="text/javascript"> function gotoal(link) { window.open(link.replace("_", "http://")); } </script> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "smooth_scroll": "1", "visibility_show": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c", "visibility_hide": "\u0421\u043a\u0440\u044b\u0442\u044c", "width": "50%" }; /* ]]> */ </script> <script type='text/javascript' src='/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='/wp-content/plugins/wp_testme/js/testme.js?ver=1.1'></script> <script type='text/javascript' src='/wp-content/themes/justgoodnews/scripts/custom.js?ver=1.0'></script> <script type='text/javascript' src='/wp-content/themes/justgoodnews/scripts/theia-sticky-sidebar.js?ver=1.1.2'></script> <script type='text/javascript' src='/wp-content/themes/justgoodnews/scripts/jquery.mmenu.min.js?ver=5.6.1'></script> <script type='text/javascript' src='/wp-content/themes/justgoodnews/scripts/superfish.js?ver=1.4.8.'></script> <script type='text/javascript' src='/wp-content/themes/justgoodnews/scripts/headhesive.min.js?ver=1.2.0'></script> <script type='text/javascript' src='/wp-content/themes/justgoodnews/scripts/jquery.webticker.min.js?ver=1.3.1'></script> <script type='text/javascript' src='/wp-content/themes/justgoodnews/scripts/inview.js?ver=1.0.0.'></script> <script type='text/javascript' src='/wp-content/themes/justgoodnews/scripts/simple-likes.js?ver=0.5'></script> <script type='text/javascript' src='/wp-content/plugins/disqus-comment-system/media/js/count.js?ver=4.9.1'></script> <div id="mobilemenu" class="mobilemenu"> <ul id="menu-karta-sajta-1" class="top-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/iron/">Железо</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/game/">Игра</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/traffic/">Трафик</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/networks/">Сети</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/blacklist/">Черный список</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/phone/">Телефон</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/vkontakte/">Vkontakte</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/games/">Игры</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/dash/">Тире</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-"><a href="/category/dying-light/">Dying light</a></li> </ul> </div> </body> </html>