Особенности поиска в Яндекс

Marat_1162

Стаж на ФС с 2014 г
Private Club
Старожил
Migalki Club
Меценат💰️
Регистрация
25/3/16
Сообщения
4.649
Репутация
9.166
Реакции
22.743
RUB
0
Депозит
3 500 рублей
Сделок через гаранта
4
Синтаксис запросов в Яндекс отличается от Google: операторы называются по-другому и логика их работы отличается, аналоги каких-то гугловских операторов отсутствуют вовсе, а какие-то, напротив, являются уникальными только для Яндекса.

Пожалуй, главным отличием поиска Яндекса является свой собственный индекс, с огромным охватом сайтов на русском языке. А также свои собственные алгоритмы определения релевантности (насколько страница соответствует поисковому запросу) и ранжирования (как высоко в результатах поисковой выдачи должна находиться страница).

И хотя операторы поиска в Яндекс работают иначе чем в Google, они довольно гибкие для составления в том числе и сложных запросов по нескольким критериям. Я покажу несколько примеров Яндекс-дорков, с помощью которых можно найти пароли и другую очень интересную для пентестера информацию.

Итак, давайте познакомимся с продвинутыми приёмами поиска Яндекс, которые в любом случае пригодятся всем, кто что-то ищет в Интернете (то есть всем) – даже если вы не занимаетесь расследованиями на основе открытых источников.

Язык запросов Яндекс для расширенного поиска

Поиск по одному слову

Яндекс ищет не только по точной форме слова, но и по различным его формам (единственное-множественное число, различные падежи, различные глагольные формы и другое). В справке это не указано, но очевидно, что поиск производится также по синонимам слова

Поиск по фразе
Ищутся страницы, содержащие все слова из фразы. Как и для отдельных слов, поиск выполняется по различным словоформам, синонимам

Например, запрос

недорогие авиабилеты
Найдёт страницы, содержащие фразы «недорогие авиабилеты», «дешёвые авиабилеты», «поиск дешёвых авиабилетов» и другие.

Поиск слова в заданной форме
Если вы не хотите, чтобы при поиске использовались различные формы слова либо его синонимы, то перед этим словом поставьте восклицательный знак (!):

!недорогие авиабилеты
Допустимо использовать несколько операторов ! в рамках одного запроса.

На самом деле, результаты поиска по-прежнему содержат документы с синонимами – возможно, этот оператор работает не всегда или влияют другие факторы.

Важные слова в поисковом запросе
дёшево +доехать +суварнабхуми +сукумвит
Необычная концепция – будет выполнен поиск документов, в которых обязательно присутствует выделенное знаком плюс (+) слово. Допустимо использовать несколько операторов + в одном запросе.

Т.е. по приведённому поисковому запросу обязательно будут найдены страницы, содержащие слова «доехать» «суварнабхуми» «сукумвит» и, возможно, слово «дёшево».


Поиск по точной цитате
Точно также как в Гугл, вы можете искать страницы, содержащие точную цитату. Для этого поместите её в кавычки.

"безопасно хранить свои денежные средства в батах"
Будут найдены страницы (документы) которые содержат все слова поискового запроса, именно в той последовательности и в точной форме, как они идут в самом запросе.

Поиск по цитате с пропущенным словом (словами)
Один оператор * соответствует одному пропущенному слову.

Вы можете использовать это только при поиске по точной цитате – т.е. внутри двойных кавычек.

"без труда не * и рыбку из пруда"
Правда иногда Яндекс издевается:

1645629440558.png

В общем, я так и не вспомнил, какое там именно слово…

Поисковый запрос с альтернативами
SVO | DME | трактор
Вы можете выполнить поиск страниц, в которых присутствует любое слово из запроса – это ещё называют логическим ИЛИ. Для этого используется оператор, обозначенный символом труба (|). Операторы отделяется от слов пробелами.

Допустимо использовать несколько операторов | в одном запросе.

Напомню, что в Google можно использовать оператор OR либо также использовать трубу.

Поиск любой из фраз
"большой адронный коллайдер" | "смешные кошки"
Вы можете использовать ИЛИ (|) вместе с поиском по точно совпадающим фразам.

В результате будут найдены страницы, содержащие фразу "большой адронный коллайдер", а также страницы с фразой "смешные кошки".

Использование скобок для группировки
обучение (java | PHP)
По умолчанию, логическое ИЛИ разбивает поисковый запрос на две части – то, что стоит до этого оператора и то, что стоит после него.

Т.е. запрос

обучение java | PHP
привёл бы к тому, что поисковая система стала бы искать страницы с фразой «обучение java» и страницы с фразой «PHP». Но если нам нужно, чтобы были найдены страницы с фразой «обучение java» и страницы с фразой «обучение PHP», то нам нужно использовать скобки для отделения обязательной части от альтернативной.


Поиск документов, в которых отсутствует заданное слово
лечение аппендицита -самостоятельно
При поиске по фразе из нескольких слов, вы можете указать те слова, которые не должны встречаться на найденных страницах. Т.е. в результатах поиска будут те документы, на которых есть искомая раза, но без нежелательного слова.

В качестве оператора отрицания используется знак минус (-). Исключается только слово, перед которым стоит оператор. При этом исключаемое слово должно размещаться в конце поискового запроса.

Допустимо использовать несколько операторов минус (-) в одном запросе.

Видимо, минус работает только со словами для поиска, но не работает с операторами, которые будут рассмотрены далее.

Продвинутые операторы
Уточнить поисковый запрос можно с помощью данных, относящихся к служебной информации о страницах. Например, можно ограничить поиск по:

  • типу файла
  • хосту
  • URL
  • языку страницы
  • дате
Синтаксис для уточнения поиска по данным параметрам называется «документные операторы».

Документный оператор рекомендуется указывать после текста поискового запроса и отделять от него пробелом. В одном запросе одновременно можно использовать несколько операторов, так же разделяя их пробелом. Например,

поиск site: mime
:p
df
При использовании операторов, где в качестве параметра задается имя хоста (url, host и rhost), следует указывать главное зеркало сайта. Например,

host:lib.ru
а не

host:
Поиск по страницам, размещенным по заданному адресу (URL)
Для поиска по определённому адресу страницы используется оператор url: со следующим синтаксисом:

url:полный URL
или:

url:имя хоста/папка/*
Регистр букв в адресе не учитывается.

Чтобы найти все документы, адреса которых начинаются с заданного значения, поставьте в конце URL символ *.

URL в запросе следует заключить в кавычки, если он содержит один из следующих символов:

  • '
  • "
  • (
  • )
  • _
Обратите внимание, что запрос:


уязвимость sql инъекция url:hackware.ru
Ничего не найдёт! Поскольку поиск будет проводиться именно по домашней странице hackware.ru (а не по всему сайту). Чтобы выполнялся поиск по всему сайту используйте звёздочку:

уязвимость sql инъекция url:hackware.ru/*
Параметр url: предназначен в первую очередь для поиска по определённым разделам сайта, например:

уязвимость sql инъекция url:hackware.ru/?cat=*
Будет выполнен поиск фразы «уязвимость sql инъекция» только по страницам вида hackware.ru/?cat= (категории).

Для поиска по всему целевому хосту используйте один из следующих параметров.

Поиск по всем поддоменам и страницам указанного сайта
Синтаксис:

site:URL сайта
Пример:

уязвимость sql инъекция site:hackware.ru
Будут найдены документы, содержащие фразу «уязвимость sql инъекция» и размещенные на поддоменах и страницах сайта hackware.ru.

Поиск по страницам, размещенным на данном хосте
Синтаксис:

host:имя хоста в формате второго уровня.домен верхнего уровня
Идентичен оператору url: с заданным именем хоста.

Пример:

sqli host:tools.kali.org
Будут найдены документы, содержащие слово «sqli» и размещенные на хосте tools.kali.org (один из поддоменов сайта kali.org).

Другой вариант поиска страниц на определённому субдомене – это использование оператоора rhost:

Идентичен оператору host:, но имя хоста записывается в обратном порядке: сначала домен верхнего уровня, затем домен второго уровня и т. д.

Для поиска по всем поддоменам заданного домена в конце URL поставьте символ *.

Синтаксис:

rhost:имя хоста в формате домен верхнего уровня.домен второго уровня.www
Вариант с подстановочным символом:

rhost:имя хоста в формате домен верхнего уровня.домен второго уровня.*
Пример, вывод всех страниц поддомена tools.kali.org:

rhost
:eek:
rg.kali.tools
Показать все страницы любых субдоменов kali.org, начинающихся на букву a:

rhost
:eek:
rg.kali.a*


Поиск по доменам
Синтаксис:



domain:домен
Обратите внимание, что домен может быть любого уровня. То есть можно указать домен верхнего уровня, такой как ru, net, org, name, com и т. д. Можно указать домен второго уровня, например, hackware, zalinux, yandex, google и т. д. Также можно указать домен любого другого уровня.

Пример поиска по домену верхнего уровня:

information security labs domain:edu
Будет найдена фраза «information security labs» только на сайтах доменной зоны edu.

Поиск по домену других уровней. Этот вариант будет искать любые домены второго и другого уровней с именем hackware на которых встречается слово «уязвимости»:

уязвимости domain:hackware
Будет выполнен поиск по доменом верхнего уровня tools и других уровней с этим же названием:

sqli domain:tools
Поиск по типу файлов
Синтаксис:

mime:тип файла
Поиск по документам в заданном типе файла. Поддерживаются следующие типы файлов:

  • doc
  • docx
  • html
  • odg
  • odp
  • ods
  • odt
  • pdf
  • ppt
  • pptx
  • rtf
  • swf
  • xls
  • xlsx
Пример:

анкета загранпаспорт mime:doc
Будут найдены документы в формате doc, содержащие слова «анкета» и «загранпаспорт».

Можно указать сразу несколько расширений для поиска, но обязательно объедините их логическим ИЛИ (|):

site:vasexperts.ru (mime
:p
df | mime:doc | mime:docx)
Поиск по страницам на заданном языке
Синтаксис:

lang:язык
Поддержижваются языки:

  • русский (ru)
  • украинский (uk)
  • белорусский (be)
  • английский (en)
  • французский (fr)
  • немецкий (de)
  • казахский (kk)
  • татарский (tt)
  • турецкий (tr)
Пример:

passport lang:en
Будут найдены документы на английском языке, содержащие слово «passport».

Поиск по дате и диапазону дат
А вот в этом поиск Яндекса точно обогнал Google – у Гугла очень невнятный поиск по датам изменения документа, практически, можно сказать что его нет, т.к. результаты странные.

Вы можете выполнять поиск по страницам с ограничением по дате их последнего изменения.

Варианты поиска по дате

Изменение страницы соответствует указанной дате:

date:ГГГГММДД
Изменение страницы находится в интервале:

date:ГГГГММДД..ГГГГММДД
Изменение страницы находится до или после указанной даты (<, <=, >, >=):

date:<ГГГГММДД
Дата изменения страницы указана частично:

date:ГГГГ**
Примечание. Год изменения указывается обязательно. Месяц и день можно заменить символом *.

Примеры, в которых ищется слово «фестиваль» в документах, для которых дата изменения соответствует 10.10.2014:

фестиваль date:20141010
Дата изменения находится в интервале между 10.10.2014 и 10.11.2014 включительно:

фестиваль date:20141010..20141110
Дата изменения позднее 10.11.2014:

фестиваль date:>20141110
Дата изменения соответствует 2014 году:

фестиваль date:2014**
Допустим, я хочу узнать, какие страницы сайта hackware.ru изменились в период с 10 июня 2018 года по 10 июля 2018 года:

site:hackware.ru date:20180610..20180710
Я хочу найти любые документы на любом сайте, в которых присутствует точная фраза "алексей милосердов" и которые изменены в период с 5 июля 2018 года по 10 июля 2018 года:

"алексей милосердов" date:20180705..20180710


Всего один документ с адресом

Кстати, можно посмотреть, какие ещё студенческие работы там есть:

site:student.knastu.ru/upload/works/


Поиск по заголовку
Вы можете искать по заголовку веб-страниц. Но в Яндекс это реализовано немного необычно – вы можете искать ИЛИ по заголовку ИЛИ по документу, но не одновременно и там и там.

Чтобы выполнить поиск по названию страницы, вы можете воспользоваться формой расширенного поиска: . Этот интерфейс расширенного поиска больше не работает, попробуйте альтернативный вариант:



Либо к адресу страницы с результатами поиска добавьте &zone=title

Возможно имеется специальный оператор, чтобы не нужно было менять URI, но я не нашёл информации об этом. Напрашивается аналогия zone:title, но, на мой взгляд, это не работает.

Если вы об этом что-то знаете – то пишите в комментариях.

Поиск по точной форме слова
Мы уже рассмотрели этот вопрос – если фраза для поиска помещена в кавычки, то на страницах ищется точное соответствие. В противном случае ищутся все формы и синонимы слов.

Если вы хотите искать по точным формам слов, но вам не важен их порядок и слова не обязательно должны составлять одну фразу, то, по идее, каждое слово можно поместить в кавычки. Ещё один вариант – это отредактировать URI. Если там wordforms=all, то выполняется поиск по всем формам, а если wordforms=exact – то ищутся точные совпадения.

Яндекс дорки?
Поиск в Яндекс, безусловно, может оказаться полезным для исследователей на основе открытых источников. В том числе, при поиске утечек.

А как насчёт поиска в Яндекс для хакеров и пентестеров? Хотя язык запросов Яндекса менее гибок, всё равно и через Яндекс можно найти разнообразную чувствительную информацию и файлы, не предназначенные для всеобщего доступа.

Брутфорс поддоменов по одной букве
Мы уже рассматривали как перечислеть поддомены. Там же я говорил про плюсы и минусы этого способа. В Яндекс тоже есть такая возможность. Причём, для тех сайтов, которые я попробовал, Яндекс знает больше субдоменов чем Google!

Для этого можно использовать оператор rhost: Напомню, при нём домен/поддомен пишется в обратном порядке, т.е. начиная с домена верхнего уровня, затем домен второго уровня, затем поддомен третьего уровня и так далее.

Самое интересное – используя подстановочный символ * мы можем искать по части поддомена – к слову, Google не воспринимает частично написанные домены вообще.

Допустим, меня интересуют поддомены сайта kali.org. Я делаю запросы вида:

rhost
:eek:
rg.kali.a*
rhost
:eek:
rg.kali.b*
rhost
:eek:
rg.kali.c*
rhost
:eek:
rg.kali.d*
rhost
:eek:
rg.kali.e*
rhost
:eek:
rg.kali.f*
rhost
:eek:
rg.kali.g*
rhost
:eek:
rg.kali.h*
rhost
:eek:
rg.kali.i*

rhost
:eek:
rg.kali.t*


В результате я нашёл несколько новых субдоменов, которые не смог найти с помощью Гугл:

  • buildd-amd64.kali.org
  • eros.kali.org
  • eos.kali.org
  • iris.kali.org
  • images.kali.org
Можно создать скрипт и при правильно написанном алгоритме можно получить весь список субдоменов за несколько десятков запросов либо сотен запросов (в зависимости от выбранного алгоритма) – это может конкурировать с брут-форсом субдоменов по словарю. Самое важное – кроме Яндекса запросы никуда больше не делаются.

Аналогично для offensive-security.com с помощью Яндекса я нашёл субдомены, о которых не знал Гугл:

rhost:com.offensive-security.d*
  • download.offensive-security.com
rhost:com.offensive-security.f*
  • forums.offensive-security.com
rhost:com.offensive-security.i*
  • images.offensive-security.com
rhost:com.offensive-security.s*
  • support.offensive-security.com
  • screenconnect.offensive-security.com:8040
Поиск папок с открытым листингом
"Index of /" "Parent Directory"
В таких папках может быть что угодно – от публичных файлообменников до личных фото архивов.

Иногда там можно найти файлы со списком паролей:



Причём разных пользователей:



Пробуйте разные названия папок. Например, поиск папки admin листингом файлов:

"Index of /admin" "Parent Directory"
Поиск папки mail (иногда в них лежат электронные письма):

"Index of /mail" "Parent Directory"
Вариантов много, посмотрите также .

Поиск админок и страниц аутентификации
"Вход" url:."ru/admin"


Или

"Вход" url:."ru/login"
Пробуйте свои варианты!

Поиск ключей для подключения по SSH
"Index of /.ssh/"
 
Сверху Снизу