Photoshop

Inurl privat bild php name будничный. PHP: Наследование

Inurl privat bild php name будничный. PHP: Наследование

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

Как такое возможно?
Поисковые роботы, безостановочно бродящие по просторам интернета, помимо информации, полезной обычному пользователю, часто фиксируют то, что может быть использовано злоумышленниками при атаке на веб-ресурс. Например, ошибки скриптов и файлы с чувствительной информацией (начиная от конфигурационных файлов и логов, заканчивая файлами с аутентификационными данными и бэкапами баз данных).
С точки зрения поискового робота сообщение об ошибке выполнения sql-запроса - это обычный текст, неотделимый, например, от описания товаров на странице. Если вдруг поисковый робот наткнулся на файл с расширением.sql, который почему-то оказался в рабочей папке сайта, то он будет воспринят как часть содержимого сайта и так же будет проиндексирован (включая, возможно, указанные в нём пароли).

Подобную информацию можно найти, зная устойчивые, часто уникальные, ключевые слова, которые помогают отделить «уязвимые страницы» от страниц, не содержащих уязвимости.
Огромная база специальных запросов с использованием ключевых слов (так называемых дорков) существует на exploit-db.com и известна под названием Google Hack Database.

Почему google?
Дорки ориентированы в первую очередь на google по двум причинам:
− наиболее гибкий синтаксис ключевых слов (приведен в Таблице 1) и специальных символов (приведен в Таблице 2);
− индекс google всё же более полный нежели у других поисковых систем;

Таблица 1 – Основные ключевые слова google

Ключевое слово
Смысл
Пример
site
Поиск только на указанном сайте. Учитывает только url
site:somesite.ru - найдет все страницы по данному домену и поддоменам
inurl
Поиск по словам, присутствующим в uri. В отличие от кл. слова “site”, ищет совпадения после имени сайта
inurl:news - найдет все страницы, где в uri встретится данное слово
intext
Поиск в теле страницы
intext:”пробки” - полностью аналогично обычному запросу “пробки”
intitle
Поиск в заголовке страницы. Текст, заключенный между тэгами <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://i1.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://i0.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://i1.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://i1.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://i1.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://i2.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://i0.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://i0.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://i1.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://i1.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://i2.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> <p>Наследование - это механизм объектно ориентированного программирования, который позволяет описать новый класс на основе уже существующего (родительского).</p> <p>Класс, который получается в результате наследования от другого, называется подклассом. Эту связь обычно описывают с помощью терминов «родительский» и «дочерний». Дочерний класс происходит от родительского и наследует его характеристики: свойства и методы. Обычно в подклассе к функциональности родительского класса (который также называют суперклассом) добавляются новые функциональные возможности.</p> <p>Чтобы создать подкласс, необходимо использовать в объявлении класса ключевое слово extends , и после него указать имя класса, от которого выполняется наследование:</p><p> <?php class Cat { public $age; function __construct($age) { $this->age = $age; } function add_age () { $this->age++; } } // объявляем наследуемый класс class my_Cat extends Cat { // определяем собственный метод подкласса function sleep() { echo "<br>Zzzzz..."; } } $kitty = new my_Cat(10); // вызываем наследуемый метод $kitty->add_age(); // считываем значение наследуемого свойства echo $kitty->age; // вызываем собственный метод подкласса $kitty->sleep(); ?> </p><p>Подкласс наследует доступ ко всем методам и свойствам родительского класса, так как они имеют тип public . Это означает, что для экземпляров класса my_Cat мы можем вызывать метод add_age() и обращаться к свойству $age не смотря на то, что они определены в классе cat . Также в приведенном примере подкласс не имеет своего конструктора. Если в подклассе не объявлен свой конструктор, то при создании экземпляров подкласса будет автоматически вызываться конструктор суперкласса.</p> <p>Обратите внимание на то, что в подклассах могут переопределяться свойства и методы. Определяя подкласс, мы гарантируем, что его экземпляр определяется характеристиками сначала дочернего, а затем родительского класса. Чтобы лучше это понять рассмотрим пример:</p><p> <?php class Cat { public $age = 5; function foo() { echo "$this->age"; } } class my_Cat extends Cat { public $age = 10; } $kitty = new my_Cat; $kitty->foo(); ?> </p><p>При вызове $kitty->foo() интерпретатор PHP не может найти такой метод в классе my_Cat , поэтому используется реализация этого метода заданная в классе Cat . Однако в подклассе определено собственное свойство $age , поэтому при обращении к нему в методе $kitty->foo() , интерпретатор PHP находит это свойство в классе my_Cat и использует его.</p> <p>Так как мы уже рассмотрели тему про указание типа аргументов, осталось сказать о том, что если в качестве типа указан родительский класс, то все потомки для метода будут так же доступны для использования, посмотрите на следующий пример:</p><p> <?php class Cat { function foo(Cat $obj) {} } class my_Cat extends Cat {} $kitty = new Cat; // передаем методу экземпляр класса my_Cat $kitty->foo(new my_Cat); ?> </p><p>Мы можем обращаться с экземпляром класса my_Cat так, как будто это объект типа Cat , т.е. мы можем передать объект типа my_Cat методу foo() класса Cat , и все будет работать, как надо.</p> <h2>Оператор parent</h2> <p>На практике подклассам бывает необходимо расширить функциональность методов родительского класса. Расширяя функциональность за счет переопределения методов суперкласса, в подклассах вы сохраняете возможность сначала выполнить программный код родительского класса, а затем добавить код, который реализует дополнительную функциональность. Давайте разберем как это можно сделать.</p> <p>Чтобы вызвать нужный метод из родительского класса, вам понадобится обратиться к самому этому классу через дескриптор. Для этой цели в PHP предусмотрено ключевое слово parent . Оператор parent позволяет подклассам обращаться к методам (и конструкторам) родительского класса и дополнять их существующую функциональность. Чтобы обратиться к методу в контексте класса, используются символы " :: " (два двоеточия). Синтаксис оператора parent:</p><p>Parent::метод_родительского_класа </p><p>Эта конструкция вызовет метод, определенный в суперклассе. Вслед за таким вызовом можно поместить свой программный код, который добавит новую функциональность:</p><p> <?php class book { public $title; public $price; function __construct($title, $price) { $this->title = $title; $this->price = $price; } } class new_book extends book { public $pages; function __construct($title, $price, $pages) { // вызываем метод-конструктор родительского класса parent::__construct($title, $price); // инициализируем свойство определенное в подклассе $this->pages = $pages; } } $obj = new new_book("азбука", 35, 500); echo "Книга: $obj->title<br> Цена: $obj->price<br> Страниц: $obj->pages"; ?> </p><p>Когда в дочернем классе определяется свой конструктор, PHP не вызывает конструктор родительского класса автоматически. Это необходимо сделать вручную в конструкторе подкласса. Подкласс сначала в своем конструкторе вызывает конструктор своего родительского класса, передавая нужные аргументы для инициализации, исполняет его, а затем выполняется код, который реализует дополнительную функциональность, в данном случае инициализирует свойство подкласса.</p> <p>Ключевое слово parent можно использовать не только в конструкторах, но и в любом другом методе, функциональность которого вы хотите расширить, достигнуть этого можно, вызвав метод родительского класса:</p><p> <?php class Cat { public $name = "Арни"; function getstr() { $str = "Имя кота: {$this->name}."; return $str; } } class my_Cat extends Cat { public $age = 5; function getstr() { $str = parent::getstr(); $str .= "<br>Возраст: {$this->age} лет."; return $str; } } $obj = new my_Cat; echo $obj->getstr(); ?> </p><p>Здесь сначала вызывается метод getstr() из суперкласса, значение которого присваивается переменной, а после этого выполняется остальной код определенный в методе подкласса.</p> <p>Теперь, когда мы познакомились с основами наследования, можно, наконец, рассмотреть вопрос видимости свойств и методов.</p> <h2>public, protected и private: управление доступом</h2> <p>До этого момента мы явно объявляли все свойства как public (общедоступные). И такой тип доступа задан по умолчанию для всех методов.</p><p>Элементы класса можно объявлять как public (общедоступные), protected (защищенные) и private (закрытые). Рассмотрим разницу между ними: </p><ul><li>К <b>public </b> (общедоступным) свойствам и методам, можно получить доступ из любого контекста.</li> <li>К <b>protected </b> (защищенным) свойствам и методам можно получить доступ либо из содержащего их класса, либо из его подкласса. Никакому внешнему коду доступ к ним не предоставляется.</li> <li>Вы можете сделать данные класса недоступными для вызывающей программы с помощью ключевого слова <b>private </b> (закрытые). К таким свойствам и методам можно получить доступ только из того класса, в котором они объявлены. Даже подклассы данного класса не имеют доступа к таким данным.</li> </ul><h4>public - открытый доступ:</h4> <?php class human { public $age = 5; public function say() { echo "<br>hello"; } } $obj = new human; // доступ из вызывающей программы echo "$obj->age"; // Допустимо $obj->say(); // Допустимо?> <h4>private - доступ только из методов класса:</h4> <?php class human { private $age = 5; function say() { // внутри класса доступ к закрытым данным есть echo "$this->age"; } } $obj = new human; // напрямую из вызывающей программы доступа к закрытым данным нет echo "$obj->age"; // Ошибка! доступ закрыт! // однако с помощью метода можно выводить закрытые данные $obj->say(); // Допустимо?> <h4>protected - защищенный доступ:</h4> <p>Модификатор protected с точки зрения вызывающей программы выглядит точно так же, как и private: он запрещает доступ к данным объекта извне. Однако в отличие от private он позволяет обращаться к данным не только из методов своего класса, но также и из методов подкласса.</p> <h1>Как правильно искать с помощью google.com</h1> <p>Все наверное умеют пользоваться такой поисковой системой, как гугл =) Но не все знают, что если грамотно составить поисковой запрос с помощью специальных конструкций, то можно достичь результатов того, что Вы ищете намного эффективнее и быстрее =) В этой статье я постараюсь показать что и как Вам нужно делать, чтобы искать правильно </p><p>Гугл поддерживает несколько расширенных операторов поиска, имеющими специальное значение при поиске на google.com. Типично, эти операторы изменяют поиск, или даже говорят гуглу делать полностью различные типы поиска. Например, конструкция <b>link: </b> является специальным оператором, и запрос <u>link:www.google.com </u> не даст вам нормального поиска, но вместо этого найдет все web-страницы, которые имеют связи к google.com. <br> альтернативные типы запросов </p><p><b>cache: </b> Если Вы будете включать другие слова в запрос, то Гугл подсветит эти включенные слова в пределах кэшируемого документа. <br> Например, <u>cache:www.сайт web </u> покажет кэшируемое содержимое с подсвеченным словом "web". </p><p><b>link: </b> рассматриваемый выше поисковой запрос покажет веб-страницы, на которых содержатся ссылки к указанному запросу. <br> Например: <u>link:www.сайт </u> отобразит все страницы на которых есть ссылка на http://www.сайт </p><p><b>related: </b> Отобразит web-страницы, которые являются "подобными" (related) указанной web-странице. <br> Например, <u>related: www.google.com </u> перечислит web-страницы, которые являются подобными домашней странице Гугл. </p><p><b>info: </b> Информация запроса: представит немного информации, которую Гугл имеет о запрашиваемой web-странице. <br> Например,<u> info:сайт </u> покажет информацию о нашем форуме =) (Армада - Форум адалт вебмастеров). </p><p><b>Другие информационные запросы </b> </p><p><b>define: </b> Запрос define: обеспечит определение слов, которые Вы вводите после того, как это, собранный из различных сетевых источников. Определение будет для всей введенной фразы (то есть, это будет включать все слова в точный запрос). </p><p><b>stocks: </b> Если Вы начинаете запрос с stocks: Гугл обработает остальную часть сроков запроса как символы биржевых сводок, и свяжется со страницей, показывающую готовую информацию для этих символов. <br> Например, <u>stocks: Intel yahoo </u> покажет информацию о Intel и Yahoo. (Отметьте, что Вы должны напечатать символы последних новостей, не название компании) </p><p><b>Модификаторы Запросов </b></p><p><b>site: </b> Если Вы включаете site: в ваш запрос, Гугл ограничит результаты теми вебсайтами, которые найдет в данном домене. <br> Также можно искать и по отдельным зонам, как таковое ru, org, com, etc (<u> site:com </u> <u>site:ru </u>) </p><p><b>allintitle: </b> Если Вы запускаете запрос с allintitle:, Гугл ограничит результаты со всеми словами запроса в заголовке. <br> Например, <u>allintitle: google search </u> вернет все страницы гугла по поиску как то images, Blog, etc </p><p><b>intitle: </b> Если Вы включаете intitle: в вашем запросе, Гугл ограничит результаты документами, содержащими то слово в заголовке. <br> Например, <u>intitle:Бизнес </u></p><p><b>allinurl: </b> Если Вы запускаете запрос с allinurl: Гугл ограничит результаты, со всеми словами запроса в URL. <br> Например, <u>allinurl: google search </u> вернет документы с google и search в заголовке. Также как вариант можно разделять слова слэшем (/) тогда слова по обе стороны слэша будут искаться в пределах одной страницы: Пример <u>allinurl: foo/bar </u></p><p><b>inurl: </b> Если Вы включаете inurl: в вашем запросе, Гугл ограничит результаты документами, содержащими то слово в URL. <br> Например, <u>Animation inurl:сайт </u></p><p><b>intext: </b> ищет только в тексте страницы указанное слово, игнорируя заглавие и тексты ссылок, и прочее не относящееся к. Есть также и производная этого модификатора - <b>allintext: </b> т.е. далее все слова в запросе будут искаться только в тексте, что тоже бывает важно, игнорируя часто используемые слова в ссылках <br> Например, <u>intext:форум </u> </p><p><b>daterange: </b> ищет во временных рамках (daterange:2452389-2452389), даты для времени указываются в Юлианском формате. </p><p><b>Ну и еще всякие интересные примеры запросов </b> </p><p><u>Примеры составления запросов для Google. Для спамеров </u> </p><p>Inurl:control.guest?a=sign </p><p>Site:books.dreambook.com “Homepage URL” “Sign my” inurl:sign </p><p>Site:www.freegb.net Homepage </p><p>Inurl:sign.asp “Character Count” </p><p> “Message:” inurl:sign.cfm “Sender:” </p><p>Inurl:register.php “User Registration” “Website” </p><p>Inurl:edu/guestbook “Sign the Guestbook” </p><p>Inurl:post “Post Comment” “URL” </p><p>Inurl:/archives/ “Comments:” “Remember info?” </p><p> “Script and Guestbook Created by:” “URL:” “Comments:” </p><p>Inurl:?action=add “phpBook” “URL” </p><p>Intitle:”Submit New Story” </p><p><u>Журналы </u> </p><p>Inurl:www.livejournal.com/users/ mode=reply </p><p>Inurl greatestjournal.com/ mode=reply </p><p>Inurl:fastbb.ru/re.pl? </p><p>Inurl:fastbb.ru /re.pl? “Гостевая книга” </p><p><u>Блоги </u> </p><p>Inurl:blogger.com/comment.g?”postID”"anonymous” </p><p>Inurl:typepad.com/ “Post a comment” “Remember personal info?” </p><p>Inurl:greatestjournal.com/community/ “Post comment” “addresses of anonymous posters” </p><p> “Post comment” “addresses of anonymous posters” - </p><p>Intitle:”Post comment” </p><p>Inurl:pirillo.com “Post comment” </p><p><u>Форумы </u> </p><p>Inurl:gate.html?”name=Forums” “mode=reply” </p><p>Inurl:”forum/posting.php?mode=reply” </p><p>Inurl:”mes.php?” </p><p>Inurl:”members.html” </p><p>Inurl:forum/memberlist.php?” </p> <p><b><span>Слито </b> </span><br></p><p>Привет всем ребят! <br> Я сразу хочу сказать я не являюсь специалистом глубокого профиля - есть люди и умнее и с более глубокими знаниями. Для меня лично это хобби. Но есть люди которые знают меньше чем я - в первую очередь материал рассчитан не для совсем дурачков, но и супер про не нужно быть что бы его понять.<br> Многие из нас привыкли считать что дорка - это уязвимость, увы вы ошибались - по сути своей дорка - это поисковый запрос отправляемый в поисковик.<br> То есть слово index.php?id= дорка<br> но и слово Shop - тоже дорка.<br> Для того что бы понимать чего вы хотите вы должны быть четко усведомленны какие ваши требования к поисковику. Обычного вида дорка index.php?id= можно поделить на<br>index - ключ<br>.php? - код с указанием что нужен сайт стоящий на Php<br> id= идентификатор чего либо на сайте<br> id=2 в нашем случае 2 - это указание с каким параметром нужно спарсить идентификатор.<br> Если вы напишите index.php?id=2 то будут сайты только где id=2, в случае несовпадения сайт отсеится. По этой причине писать точное указание идентификатору не имеет смысла - поскольку он может 1,2,3,4,5 и до бесконечности.<br> Если же вы решили создать точную дорку, допустим под стим то имеет смысл придать ей такой вид <br><span>inurl:game* +intext:"csgo" </span><br><span>она будет в урле сайта парсить слово game* (где * произвольное количество символов после слова game - ведь может быть games и тому подобное)<br> Так же стоит использовать такой оператор как intitle: <br> Если вы увидели хороший игровой сайт или у вас есть список уязвимых игровых сайтов<br> есть смысл юзнуть для парсинга оператор related :<br> Для related: подойдет значение в виде ссылки на сайт </span><br><span>related: *** </span><br><span>- он найдет все сайты с точки зрения поисковика похожи на указанный<br> Запомните - дорка это парсинг - это не дырка.<br> Дырка, она же уязвимость обнаруживается сканнером на основе спарсенного вами.<br> Я лично не советую юзать большое количество префиксов (поисковых операторов) когда вы работаете без проксей.<br> Расскажу вам о методе создания приватных дорок под страну<br> Для того что бы создать дорку вида index.php?id= нам придется её разобрать<br> index - мы заменим на произвольное слово<br>.php?id= будет кодом нашей дорки<br> Выдумывать новый код нету смысла - ибо много сайтов стоят стабильно на одних и тех же кодах и движках и будут стоять. Список кодов:<br><p>Спойлер: Дорки </p><p>Php?ts= <br> .php?topic= <br> .php?t= <br> .php?ch= <br> .php?_nkw= <br> .php?id= <br> .php?option= <br> .php?view= <br> .php?lang= <br> .php?page= <br> .php?p= <br> .php?q= <br> .php?gdjkgd= <br> .php?son= <br> .php?search= <br> .php?uid= <br> .php?title= <br> .php?id_q= <br> .php?prId= <br> .php?tag= <br> .php?letter= <br> .php?prid= <br> .php?catid= <br> .php?ID= <br> .php?iWine= <br> .php?productID= <br> .php?products_id= <br> .php?topic_id= <br> .php?pg= <br> .php?clan= <br> .php?fid= <br> .php?url= <br> .php?show= <br> .php?inf= <br> .php?event_id= <br> .php?term= <br> .php?TegID= <br> .php?cid= <br> .php?prjid= <br> .php?pageid= <br> .php?name=<br> .php?id_n= <br> .php?th_id= <br> .php?category= <br> .php?book_id=<br> .php?isbn= <br> .php?item_id= <br> .php?sSearchword= <br> .php?CatID= <br> .php?art= <br> .html?ts= <br> .html?topic= <br> .html?t= <br> .html?ch= <br> .html?_nkw= <br> .html?id= <br> .html?option= <br> .html?view= <br> .html?lang= <br> .html?page= <br> .html?p= <br> .html?q= <br> .html?gdjkgd= <br> .html?son= <br> .html?search= <br> .html?uid= <br> .html?title= <br> .html?id_q= <br> .html?prId= <br> .html?tag= <br> .html?letter= <br> .html?prid= <br> .html?catid= <br> .html?ID= <br> .html?iWine= <br> .html?productID= <br> .html?products_id=<br> .html?topic_id= <br> .html?pg= <br> .html?clan= <br> .html?fid= <br> .html?url= <br> .html?show=<br> .html?inf= <br> .html?event_id= <br> .html?term= <br> .html?TegID= <br> .html?cid= <br> .html?prjid= <br> .html?pageid= <br> .html?name= <br> .html?id_n= <br> .html?th_id= <br> .html?category= <br> .html?book_id= <br> .html?isbn= <br> .html?item_id= <br> .html?sSearchword=<br> .html?CatID= <br> .html?art= <br> .aspx?ts= <br> .aspx?topic=<br> .aspx?t= <br> .aspx?ch= <br> .aspx?_nkw=<br> .aspx?id= <br> .aspx?option= <br> .aspx?view=<br> .aspx?lang= <br> .aspx?page= <br> .aspx?p= <br> .aspx?q= <br> .aspx?gdjkgd= <br> .aspx?son= <br> .aspx?search= <br> .aspx?uid= <br> .aspx?title= <br> .aspx?id_q= <br> .aspx?prId= <br> .aspx?tag= <br> .aspx?letter= <br> .aspx?prid= <br> .aspx?catid= <br> .aspx?ID= <br> .aspx?iWine= <br> .aspx?productID= <br> .aspx?products_id= <br> .aspx?topic_id= <br> .aspx?pg= <br> .aspx?clan= <br> .aspx?fid= <br> .aspx?url= <br> .aspx?show= <br> .aspx?inf= <br> .aspx?event_id= <br> .aspx?term= <br> .aspx?TegID= <br> .aspx?cid= <br> .aspx?prjid= <br> .aspx?pageid= <br> .aspx?name= <br> .aspx?id_n= <br> .aspx?th_id= <br> .aspx?category= <br> .aspx?book_id= <br> .aspx?isbn= <br> .aspx?item_id= <br> .aspx?sSearchword= <br> .aspx?CatID= <br> .aspx?art=<br> .asp?ts= <br> .asp?topic= <br> .asp?t= <br> .asp?ch= <br> .asp?_nkw= <br> .asp?id= <br> .asp?option= <br> .asp?view= <br> .asp?lang= <br> .asp?page= <br> .asp?p= <br> .asp?q= <br> .asp?gdjkgd= <br> .asp?son= <br> .asp?search= <br> .asp?uid= <br> .asp?title= <br> .asp?id_q= <br> .asp?prId= <br> .asp?tag= <br> .asp?letter= <br> .asp?prid= <br> .asp?catid= <br> .asp?ID= <br> .asp?iWine= <br> .asp?productID=<br> .asp?products_id= <br> .asp?topic_id= <br> .asp?pg= <br> .asp?clan= <br> .asp?fid= <br> .asp?url= <br> .asp?show= <br> .asp?inf= <br> .asp?event_id= <br> .asp?term= <br> .asp?TegID= <br> .asp?cid= <br> .asp?prjid= <br> .asp?pageid= <br> .asp?name= <br> .asp?id_n= <br> .asp?th_id= <br> .asp?category=<br> .asp?book_id= <br> .asp?isbn= <br> .asp?item_id= <br> .asp?sSearchword= <br> .asp?CatID= .asp?art= <br> .htm?ts= .htm?topic= <br> .htm?t= .htm?ch= <br> .htm?_nkw= <br> .htm?id=<br> .htm?option= <br> .htm?view= <br> .htm?lang= <br> .htm?page= <br> .htm?p= <br> .htm?q= <br> .htm?gdjkgd= <br> .htm?son= <br> .htm?search= <br> .htm?uid= <br> .htm?title= <br> .htm?id_q= <br> .htm?prId= <br> .htm?tag= <br> .htm?letter= <br> .htm?prid= <br> .htm?catid= <br> .htm?ID= <br> .htm?iWine= <br> .htm?productID= <br> .htm?products_id= <br> .htm?topic_id= <br> .htm?pg= <br> .htm?clan= <br> .htm?fid= <br> .htm?url= <br> .htm?show= <br> .htm?inf= <br> .htm?event_id= <br> .htm?term= <br> .htm?TegID= <br> .htm?cid= <br> .htm?prjid= <br> .htm?pageid= <br> .htm?name= <br> .htm?id_n= <br> .htm?th_id= <br> .htm?category= <br> .htm?book_id= <br> .htm?isbn= <br> .htm?item_id= <br> .htm?sSearchword= <br> .htm?CatID= <br> .htm?art= <br> .cgi?ts= <br> .cgi?topic= <br> .cgi?t= <br> .cgi?ch= <br> .cgi?_nkw= <br> .cgi?id= <br> .cgi?option= <br> .cgi?view= <br> .cgi?lang= <br> .cgi?page= <br> .cgi?p= <br> .cgi?q= <br> .cgi?gdjkgd= <br> .cgi?son= <br> .cgi?search= <br> .cgi?uid= <br> .cgi?title= <br> .cgi?id_q= <br> .cgi?prId= <br> .cgi?tag= <br> .cgi?letter= <br> .cgi?prid= <br> .cgi?catid= <br> .cgi?ID= <br> .cgi?iWine= <br> .cgi?productID= <br> .cgi?products_id= <br> .cgi?topic_id= <br> .cgi?pg= <br> .cgi?clan= <br> .cgi?fid= <br> .cgi?url= <br> .cgi?show= <br> .cgi?inf= <br> .cgi?event_id= <br> .cgi?term= <br> .cgi?TegID= <br> .cgi?cid= <br> .cgi?prjid= <br> .cgi?pageid=<br> .cgi?name= <br> .cgi?id_n= <br> .cgi?th_id= <br> .cgi?category= <br> .cgi?book_id= <br> .cgi?isbn=<br> .cgi?item_id= <br> .cgi?sSearchword= <br> .cgi?CatID= <br> .cgi?art= <br> .jsp?ts= <br> .jsp?topic= <br> .jsp?t= <br> .jsp?ch= <br> .jsp?_nkw= <br> .jsp?id= <br> .jsp?option= <br> .jsp?view= <br> .jsp?lang= <br> .jsp?page= <br> .jsp?p= <br> .jsp?q= <br> .jsp?gdjkgd= <br> .jsp?son=<br> .jsp?search= <br> .jsp?uid= <br> .jsp?title=<br> .jsp?id_q= <br> .jsp?prId= <br> .jsp?tag= <br> .jsp?letter= <br> .jsp?prid= <br> .jsp?catid= <br> .jsp?ID= <br> .jsp?iWine= <br> .jsp?productID= <br> .jsp?products_id= <br> .jsp?topic_id= <br> .jsp?pg= <br> .jsp?clan= <br> .jsp?fid= <br> .jsp?url= <br> .jsp?show= <br> .jsp?inf= <br> .jsp?event_id= <br> .jsp?term= <br> .jsp?TegID= <br> .jsp?cid= <br> .jsp?prjid= <br> .jsp?pageid= <br> .jsp?name= <br> .jsp?id_n= <br> .jsp?th_id= <br> .jsp?category= <br> .jsp?book_id= <br> .jsp?isbn= <br> .jsp?item_id= <br> .jsp?sSearchword= <br> .jsp?CatID= <br> .jsp?art=</p></p><p>Эти коды мы будем использовать для генератора дорков.<br> Идем в гугл переводчик - переводим на итальянский - самые часто употреблямые слова список.<br> Парсим список слов на Итальянском - вставляем в первый столбец генератора дорков - во второй ставим коды, обычно php -это самые разные сайты, cfm шопы, jsp - игровые.<br> Генерируем - убираем пробелы. Приват дорки под Италию готовы.<br> Так же имеет смысл вставить в правую колонку фразы на том же языке в стиле "запомнить меня, забыли пароль" вместо site:it <br> Они будут круто парсить, они будут приват, если вы спарсите что то уникальное и замените ключ дорки.<br> И добавите на том же языке запомнить меня - то сайты будут лететь только с базами.<br> Вся суть в мышлении. Дорки будут вида name.php?uid= вся их фишка будет в уникальном ключе. Они будут миксовыми, оператор Inurl: применять не нужно - так как парсинг будет без него идти и в урле, и в тексте, и в тайтле.<br> Ведь смысл дорки такой весь в том что может быть что угодно - и стим, и палка, и неттелер - а может и не быть. Тут нужно брать количеством.<br> Так же есть так называемый парсинг по уязвимостям.<br><br></p><p>Спойлер: Дорки </p><p><b>intext:"java.lang.NumberFormatException: null"<br><span>intext:"error in your SQL syntax"<br> intext:"mysql_num_rows()"<br> intext:"mysql_fetch_array()"<br> intext:"Error Occurred While Processing Request"<br> intext:"Server Error in "/" Application"<br> intext:"Microsoft OLE DB Provider for ODBC Drivers error"<br> intext:"Invalid Querystring"<br> intext:"OLE DB Provider for ODBC"<br> intext:"VBScript Runtime"<br> intext:"ADODB.Field"<br> intext:"BOF or EOF"<br> intext:"ADODB.Command"<br> intext:"JET Database"<br> intext:"mysql_fetch_row()"<br> intext:"Syntax error"<br> intext:"include()"<br> intext:"mysql_fetch_assoc()"<br> intext:"mysql_fetch_object()"<br> intext:"mysql_numrows()"<br> intext:"GetArray()" </span> </b><br><b>intext:"FetchRow()" </b> </p><span>Эти дорки ищут сразу уязвимость напрямую, то есть использовать их вместе с уникальными словами которые до вас вряд ли парсили </span> <p>Каждый раз становится смешно, когда люди начинают втирать про приват дорки.<br> Давайте начнем с определения что такое дорка и что такое приват:</p><p><b>ДОРК (ДОРКА) </b><i>- это маска, иначе говоря запрос в поисковик, в ответ на который система выдаст список страниц сайтов, в адресе которых содержится этот самый ДОРК. </i></p><p><b>Приват (private) </b><i>- информация к которой имеет доступ только один человек или небольшая группа людей, работающих над одним проектом. </i></p><p>Теперь давайте разберем словосочетание "<b><i>Приватная дорка </i> </b>". <br> Если мы отправляем запрос найти сайты по данной дорке и нам выдает какой то результат, то это может сделать любой человек, а следовательно выданная информация не является приватной.</p><p>А немного про продавцов игровых/денежных/шоп дорок.<br> Очень много людей любят составлять дорки такого типа:<br></p><p>Steam.php?q= bitcoin.php?id= minecraft.php?id=</p><p>Представим что мы ничего не понимаем в дорках и попробуем глянуть сколько же ссылок нам выдаст гугл:<br><br> Наверно у вас в голове сразу появились мысли такого типа: "Хренович, да ты нихуя не шаришь, смотри сколько ссылок, люди вон деньги практически продают!"<br> Но я скажу вам нет, ибо сейчас глянем какие же ссылки нам выдаст такой запрос:<br></p><p> <br><img src='https://i1.wp.com/image.prntscr.com/image/bdCbWByESr2h-TZDrWRdyQ.png' width="100%" loading=lazy></p> <p>Я думаю суть вы поняли, теперь давайте используем оператор гугла <i>inurl: </i>для точного поиска и посмотрим что же выйдет:<br></p><p> <br><img src='https://i0.wp.com/image.prntscr.com/image/FQgo8pTHTLi954nEvPvyfA.png' width="100%" loading=lazy></p> <p>Ага, количество резко сократилось, то то же. А если учитывать что там будут дубли доменов + ссылки плана ***.info/vaernamo-nyheter/dennis-steam.php , то в сухом остатке получим штук 5-10.</p><p>Как думаете, насколько много людей будут прописывать у себя на сайте такие ссылки " </p><p>Вы должны быть зарегистрированы, чтобы видеть ссылки.</p><p>" и т.п. , да конечно единицы.</p><p>А значит писать дорки типа <i>steam.php?id= </i> смысла нет, тогда вопрос, какие же дорки нам стряпать?<br> А все довольно просто, нам же нужно собрать как можно больше ссылок по нашей дорке. Наибольшее число ссылок получится с самой примитивной дорки вида <i>index.php?id= </i><br></p><p> <img src='https://i1.wp.com/image.prntscr.com/image/jCHyFW7vTKG029fT7UW6tw.png' height="144" width="301" loading=lazy></p> <br> Опа, целых 538 миллионов, хороший результат, правда?<br> А давайте еще добавим <i>inurl: </i><br><p> <img src='https://i1.wp.com/image.prntscr.com/image/pK-8NoySS6ug9oJxd26Egw.png' height="138" width="255" loading=lazy></p> <br> Во как, половина отпала, зато теперь практически все ссылки будут с index.php?id=<p>Из вышесказанного можно сделать вывод: нам нужны самые часто используемые директории, именно с них наш результат будет выше всего.</p><p>Я думаю у многих появились мысли типа: "Ну и что дальше? Нам же нужны тематические сайты, а не всякие сайты любителей щенков!". Ну конечно, но что бы перейти к тематикам сайтов - нам будет необходимо познакомиться с операторами гугла, давайте начнем. Разбирать будем не все операторы, а только те, что помогут нам с парсом страниц.</p><p>Какие есть интересующие нас операторы:</p><p><b>inurl: </b> Показывает сайты, содержащие в адресе страницы указанное слово. <br><u><i>Пример: </i> </u><br> Нам нужны сайты где в адресе страницы есть слово <i>cart. </i>Стряпаем запрос вида<i> inurl:cart </i>и нам выдаст все ссылки где в адресе есть слово cart. Т.е. использкя данный запрос мы добились более строго выполнения нашего условия и отсева не подходящих нам ссылок.</p><p><b>intext: </b> выборка страниц производится именно по содержимому страницы.<br><i><u>Пример: </u> </i><br> Допустим нам нужны страницы на которых написано слова bitcoin. Стряпаем запрос вида <i>intext:bitcoin , </i>теперь нам выдаст ссылки где в тексте использовалось слово bitcoin.</p><p><b>intitle: </b> выводятся страницы, у которых в теге title присутствуют указанные в запросе слова, думаю вы уже поняли как составлять запросы, так что примеры приводить не буду.</p><p><b>allinanchor: </b> оператор показывает страницы, у которых в описании есть интересующие нас слова.</p><p><b>related: </b> пожалуй один из важных операторов, который выдает сайты с похожим наполнением.<br><i><u>Пример: </u> </i><br> related:exmo.com - нам выдаст биржи, попробуйте проверить сами.</p><p>Ну пожалуй все основные операторы что нам потребуются.</p><p>Теперь давайте перейдем к построению дорок при помощи данных операторов.</p><p>Перед каждой доркой будем ставить inurl:<br></p><p>Inurl:cart?id= inurl:index?id= inurl:catalog?id=</p><br> Давайте еще используем intext: допустим ищем игрульки, а значит нам нужны слова по типу dota2, portal, CSGO...<br><p>Intext:dota2 intext:portal intext:csgo</p><p>Если нам нужно словосочетание, то allinurl:<br></p><p>Allinurl:GTA SAMP ...</p><p>А теперь склеим все это и получим такой вид:</p><p>Inurl:cart?id= intext:dota2 inurl:cart?id= intext:portal inurl:cart?id= intext:csgo inurl:cart?id= allinurl:GTA SAMP inurl:index?id= intext:dota2 inurl:index?id= intext:portal inurl:index?id= intext:csgo inurl:index?id= allinurl:GTA SAMP inurl:catalog?id= intext:dota2 inurl:catalog?id= intext:portal inurl:catalog?id= intext:csgo inurl:catalog?id= allinurl:GTA SAMP</p><p>В итоге, мы получили игровые дорки с более узким и точным поиском.<br> Так что включайте мозги и немного экспериментируйте с поисковыми операторами и ключевыми словами, не нужно извращаться и писать дорки вида <i>hochymnogoigr.php?id= <br></i><br> Всем спасибо, надеюсь хоть что то полезное из этой статьи вы вынесли.</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="vce-share-bar"> <ul class="vce-share-items"> <li><a class="fa fa-facebook" href="javascript:void(0);" data-url="http://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fneglicei.ru%2Fphotoshop%2Finurl-privat-bild-php-name-budnichnyi-php-nasledovanie-private---dostup-tolko%2F"></a></li> <li><a class="fa fa-twitter" href="javascript:void(0);" data-url="http://twitter.com/intent/tweet?url=https%3A%2F%2Fneglicei.ru%2Fphotoshop%2Finurl-privat-bild-php-name-budnichnyi-php-nasledovanie-private---dostup-tolko%2F"></a></li> <li><a class="fa fa-google-plus" href="javascript:void(0);" data-url="https://plus.google.com/share?url=https%3A%2F%2Fneglicei.ru%2Fphotoshop%2Finurl-privat-bild-php-name-budnichnyi-php-nasledovanie-private---dostup-tolko%2F"></a></li> <li><a class="fa fa-pinterest" href="javascript:void(0);" data-url="http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fneglicei.ru%2Fphotoshop%2Finurl-privat-bild-php-name-budnichnyi-php-nasledovanie-private---dostup-tolko%2F"></a></li> <li><a class="fa fa-whatsapp no-popup" href="whatsapp://send?text=https%3A%2F%2Fneglicei.ru%2Fphotoshop%2Finurl-privat-bild-php-name-budnichnyi-php-nasledovanie-private---dostup-tolko%2F"></a></li> </ul> </div> </article> </main> <div class="main-box vce-related-box"> <h3 class="main-box-title">Возможно вас заинтересует</h3> <div class="main-box-inside"> <article class="vce-post vce-lay-d post-273 post type-post status-publish format-standard has-post-thumbnail hentry category-stroitelstvo category-fundament tag-gazobeton tag-dom tag-kak-vybrat tag-stroitelstvo tag-fundament"> <div class="meta-image"> <a href="/program/skachat-programmu-proslushka-telefona-skachat-programmu-dlya/" title="Скачать программу для прослушивания телефона"> <img width="145" height="71" src="/uploads/d0e297b5e3eaaf705c409368ae20f9e1.jpg" class="attachment-vce-lay-d size-vce-lay-d wp-post-image" alt="Скачать программу для прослушивания телефона"sizes="(max-width: 145px) 100vw, 145px" / loading=lazy> </a> </div> <header class="entry-header"> <span class="meta-category"><a href="" class="category">Программа</a> </span> <h2 class="entry-title"><a href="/program/skachat-programmu-proslushka-telefona-skachat-programmu-dlya/" title="Скачать программу для прослушивания телефона">Скачать программу для прослушивания телефона</a></h2> </header> </article> <article class="vce-post vce-lay-d post-273 post type-post status-publish format-standard has-post-thumbnail hentry category-stroitelstvo category-fundament tag-gazobeton tag-dom tag-kak-vybrat tag-stroitelstvo tag-fundament"> <div class="meta-image"> <a href="/yandex-browser/chto-takoe-faily-dll-i-ocx-i-kak-ih-zaregistrirovat-regsvr32--/" title="Что такое файлы *.dll и *.ocx, и как их зарегистрировать? REGSVR32 - регистрация или отмена регистрации библиотеки DLL в реестре Windows"> <img width="145" height="71" src="/uploads/7b6ae40b09b9d33cdfafa449ce2f89c3.jpg" class="attachment-vce-lay-d size-vce-lay-d wp-post-image" alt="Что такое файлы *.dll и *.ocx, и как их зарегистрировать? REGSVR32 - регистрация или отмена регистрации библиотеки DLL в реестре Windows"sizes="(max-width: 145px) 100vw, 145px" / loading=lazy> </a> </div> <header class="entry-header"> <span class="meta-category"><a href="" class="category">Яндекс Браузер</a> </span> <h2 class="entry-title"><a href="/yandex-browser/chto-takoe-faily-dll-i-ocx-i-kak-ih-zaregistrirovat-regsvr32--/" title="Что такое файлы *.dll и *.ocx, и как их зарегистрировать? REGSVR32 - регистрация или отмена регистрации библиотеки DLL в реестре Windows">Что такое файлы *.dll и *.ocx, и как их зарегистрировать? REGSVR32 - регистрация или отмена регистрации библиотеки DLL в реестре Windows</a></h2> </header> </article> <article class="vce-post vce-lay-d post-273 post type-post status-publish format-standard has-post-thumbnail hentry category-stroitelstvo category-fundament tag-gazobeton tag-dom tag-kak-vybrat tag-stroitelstvo tag-fundament"> <div class="meta-image"> <a href="/yandex-browser/usluga-lokator-ot-mts-kak-opredelit-mestopolozhenie-cheloveka-po-nomeru/" title="Как определить местоположение человека по номеру телефона МТС"> <img width="145" height="71" src="/uploads/604943f0e582731e8da529e38eb129dc.jpg" class="attachment-vce-lay-d size-vce-lay-d wp-post-image" alt="Как определить местоположение человека по номеру телефона МТС"sizes="(max-width: 145px) 100vw, 145px" / loading=lazy> </a> </div> <header class="entry-header"> <span class="meta-category"><a href="" class="category">Яндекс Браузер</a> </span> <h2 class="entry-title"><a href="/yandex-browser/usluga-lokator-ot-mts-kak-opredelit-mestopolozhenie-cheloveka-po-nomeru/" title="Как определить местоположение человека по номеру телефона МТС">Как определить местоположение человека по номеру телефона МТС</a></h2> </header> </article> <article class="vce-post vce-lay-d post-273 post type-post status-publish format-standard has-post-thumbnail hentry category-stroitelstvo category-fundament tag-gazobeton tag-dom tag-kak-vybrat tag-stroitelstvo tag-fundament"> <div class="meta-image"> <a href="/files/imya-seti-megafon-3g-kak-nastroit-internet-ot-megafon-na/" title="Как настроить интернет от «Мегафон» на андроид-смартфоне"> <img width="145" height="71" src="/uploads/414cd5736715a35f34831726c51e62da.jpg" class="attachment-vce-lay-d size-vce-lay-d wp-post-image" alt="Как настроить интернет от «Мегафон» на андроид-смартфоне"sizes="(max-width: 145px) 100vw, 145px" / loading=lazy> </a> </div> <header class="entry-header"> <span class="meta-category"><a href="" class="category">Файлы</a> </span> <h2 class="entry-title"><a href="/files/imya-seti-megafon-3g-kak-nastroit-internet-ot-megafon-na/" title="Как настроить интернет от «Мегафон» на андроид-смартфоне">Как настроить интернет от «Мегафон» на андроид-смартфоне</a></h2> </header> </article> </div> </div> </div> <aside id="sidebar" class="sidebar right"> <div id="search-2" class="widget widget_search"> <form class="vce-search-form" action="/" method="get"> <input name="s" class="vce-search-input" size="20" type="text" value="Поиск" onfocus="(this.value == 'Поиск') && (this.value = '')" onblur="(this.value == '') && (this.value = 'Поиск')" placeholder="Поиск" /> <button type="submit" class="vce-search-submit"><i class="fa fa-search"></i></button> </form> </div> <div id="recent-posts-2" class="widget widget_recent_entries"> <h4 class="widget-title">Свежие записи</h4> <ul> <li> <a href="/program/skachat-programmu-proslushka-telefona-skachat-programmu-dlya/">Скачать программу для прослушивания телефона</a> </li> <li> <a href="/yandex-browser/chto-takoe-faily-dll-i-ocx-i-kak-ih-zaregistrirovat-regsvr32--/">Что такое файлы *.dll и *.ocx, и как их зарегистрировать? REGSVR32 - регистрация или отмена регистрации библиотеки DLL в реестре Windows</a> </li> <li> <a href="/yandex-browser/usluga-lokator-ot-mts-kak-opredelit-mestopolozhenie-cheloveka-po-nomeru/">Как определить местоположение человека по номеру телефона МТС</a> </li> <li> <a href="/files/imya-seti-megafon-3g-kak-nastroit-internet-ot-megafon-na/">Как настроить интернет от «Мегафон» на андроид-смартфоне</a> </li> <li> <a href="/excel/vse-knigi-pro-kamedi-klab-iskazhenie-programma-dlya-veb-kamery/">Программа для веб камеры: искажение лица до неузнаваемости Настройка программных средств для искажения</a> </li> <li> <a href="/mozilla-firefox/huawei-honor-6-plus-chernyi-obzor-horoshego-no-bolno-uzh-nedesh-vogo/">Обзор хорошего, но больно уж недешёвого фаблета</a> </li> <li> <a href="/program/samsung-galaxy-s8-obzor-novoe-obzor-samsung-galaxy-s8-plus-chto-mozhet-byt-luchshe/">Обзор Samsung Galaxy S8 Plus: Что может быть лучше?</a> </li> <li> <a href="/steam/plati-kogda-ugodno-ot-megafon-kredit-doveriya-pod-novym/">Простые способы отключить услугу «Плати когда удобно» на Мегафоне Плати когда удобно мегафон платная или нет</a> </li> <li> <a href="/vkontakte/samsung-tab-3-vernut-zavodskie-nastroiki-polnyi-sbros-hard-reset-galaxy-tab-chto/">Полный сброс (hard reset) Galaxy Tab</a> </li> </ul> </div> <div id="categories-2" class="widget widget_categories"> <h4 class="widget-title">Рубрики</h4> <ul> <li class="cat-item cat-item-16"><a href="/category/word/" title="Word"><span class="category-text">Word</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/excel/" title="Excel"><span class="category-text">Excel</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/how-to/" title="Как сделать"><span class="category-text">Как сделать</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/program/" title="Программа"><span class="category-text">Программа</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/yandex-browser/" title="Яндекс Браузер"><span class="category-text">Яндекс Браузер</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/windows-7/" title="Windows 7"><span class="category-text">Windows 7</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/photoshop/" title="Photoshop"><span class="category-text">Photoshop</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/skype/" title="Skype"><span class="category-text">Skype</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/flash-drive/" title="Флешка"><span class="category-text">Флешка</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/steam/" title="Steam"><span class="category-text">Steam</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/itunes/" title="ITunes"><span class="category-text">ITunes</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/files/" title="Файлы"><span class="category-text">Файлы</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/vkontakte/" title="Вконтакте"><span class="category-text">Вконтакте</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/mozilla-firefox/" title="Mozilla Firefox"><span class="category-text">Mozilla Firefox</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/google-chrome/" title="Google Chrome"><span class="category-text">Google Chrome</span><span class="count"><span class="count-hidden"></span></span></a> </li> <li class="cat-item cat-item-16"><a href="/category/reviews/" title="Обзоры "><span class="category-text">Обзоры </span><span class="count"><span class="count-hidden"></span></span></a> </li> </ul> </div> </aside> </div> <footer id="footer" class="site-footer"> <div class="container"> <div class="container-fix"> <div class="bit-3"> </div> <div class="bit-3"> </div> <div class="bit-3"> </div> </div> </div> <div class="container-full site-info"> <div class="container"> <div class="vce-wrap-left"> <p>Copyright © 2024. Компьютерный журнал</p> </div> </div> </div> </footer> </div> </div> <a href="javascript:void(0)" id="back-top"><i class="fa fa-angle-up"></i></a> <div id="vk_api_transport"></div> <script type="text/javascript"> jQuery(document).ready(function($) { if ($('.social-likes')) { $('.social-likes').each(function() { var p = $(this).parent(); if (p.data('url')) { $(this).data({ 'url': p.data('url'), 'title': p.data('title') }); } if ($(this).find('.pinterest').length) { if (p.data('media')) { $($(this).find('.pinterest')[0]).data({ 'media': p.data('media') }); } else $($(this).find('.pinterest')[0]).remove(); } }); $('.social-likes').socialLikes({ zeroes: 0 }); } }); </script> <script type='text/javascript' src='/assets/evc-share.js'></script> <script type='text/javascript' src='/assets/social-likes.min.js'></script> <script type='text/javascript' src='/assets/scripts.js'></script> <script type='text/javascript' src='/assets/main.js'></script> <script type='text/javascript'> /* <![CDATA[ */ var vce_js_settings = { "sticky_header": "1", "sticky_header_offset": "700", "sticky_header_logo": "", "logo_mobile": "", "logo_mobile_retina": "", "rtl_mode": "0", "ajax_url": "\/wp-admin\/admin-ajax.php", "ajax_mega_menu": "1", "mega_menu_slider": "", "mega_menu_subcats": "", "lay_fa_grid_center": "", "full_slider_autoplay": "", "grid_slider_autoplay": "", "fa_big_opacity": { "1": "0.5", "2": "0.7" } }; /* ]]> */ </script> <script type='text/javascript' src='/assets/min.js'></script> <script type='text/javascript' src='/assets/wp-embed.min.js'></script> <script type="text/javascript"> /* <![CDATA[ */ jQuery(document).ready(function($) { if (typeof VKWidgetsComments !== 'undefined' && VKWidgetsComments.length && evc_post_id) { if ($('#vk-widget-' + evc_post_id).length) { if ($('#respond').length) { $('#respond form').hide(); $('#respond').append($('#vk-widget-' + evc_post_id)); } } cClose = false; if ($("#comments .comment-list").length) { $("#comments .comment-list").wrap('<div class = "evc-comments-wrap"></div>'); docViewHeight = $(window).height(); $(document).scroll(function() { var docViewTop = $(window).scrollTop(); var elemTop = $('.evc-comments-wrap').offset().top; //var elemBottom = elemTop + $('.evc-comments-wrap').height(); if (elemTop * 3 / 4 <= docViewTop && !cClose) { cClose = true; $(".evc-comments-wrap").animate({ "height": 0 }, 800); } }); } } // Rresponsive VK Comments Widget Width if ($('.vk_widget_comments').length) { responsiveVkWidget(); $(window).on('resize', function() { responsiveVkWidget(); }); } function responsiveVkWidget() { var vkParentWidth = parseInt($('.vk_widget_comments').parent().width()); $('.vk_widget_comments, .vk_widget_comments iframe').css({ width: vkParentWidth }); $('.vk_widget_comments, .vk_widget_comments iframe').attr('width', vkParentWidth); } // END Rresponsive VK Comments Widget Width }); // End jQuery /* ]]> */ </script> </body> </html>