Комментарии 87
SECURE_AUTH_KEY — секретный ключ для подключения к чему-то без использования паролей. Для чего именно использовался этот ключ, из тех файлов, что были в наличии, непонятно.
Судя по структуре, константам и тд, там просто в основе DLE используется. В dle эта константа для хеширования используется, вроде.
Некий поддельный сайт раскручивают при запросе цен на авиабилеты парсит легальные сайты, показывая пользователю результаты.
При оплате данные карты посылаются на легальный сервис card2card банка.
И, если раньше, использовались фреймы, пряча визуальные части страниц, то в этом случае идет просто отправка данных через POST.
Разрабов банка отпинать, что не смотрят откуда идут данные.
xbox, могу порекомендовать книгу «Пиши, сокращай».
Книгу прочитаю.
Автор предыдущего перед Вашим сообщения, судя по всему, уже ознакомился с этой книгой.
А мне наоборот понравилось. Именно такими статьями и завлекаются молодые кадры в наш стан. при эом автор умудрился рассказать достаточно, чтобы с нулевыми знаниями можно было разобраться, но в то же время без нудятины.
P.S. не считайте руководством к действию, если что.
P.P.S. Кстати, иногда код php можно получить без доступа на хостинг, в случае ошибок в работе сервера. Мне несколько раз попадалось — вместо кода html страницы возвращается сам текст php-страницы (код php).
Но, чтобы ситилинк рф, оказался легитимней еще надо постараться)
xbox, интересно, а ж/д (автобусные, водного транспорта) билеты так не продают? Оно ведь наиболее близко…
интересно, а ж/д (автобусные, водного транспорта) билеты так не продают? Оно ведь наиболее близко…
Сообщения на форумах, про то, что ж/д билеты таким же образом планируется продавать я встречал, но хотя бы один подобный сайт ни разу не видел. С точки зрения создания сайта затраты примерно одинаковые, но привлечь покупателей намного сложней. Цены на внутренние жд билеты, если я не ошибаюсь, у всех примерно одинаковые. Цена отличается только комиссией за продажу билета. Также РЖД фактически монополист и найти альтернативный маршрут обычно невозможно. Поэтому большинство покупателей жд билетов покупают их напрямую у ржд, остальные у нескольких известных компаний-посредников.
По этой причине (невозможно проверить, кому уйдут данные) ненавижу сайты/магазины, которые встраивают платежную форму фреймом. В этом случае приходится лезть выяснять, что это действительно фрейм, а не форма ввода, и что подгружается он с сайта банка, не откуда попало, и что у сайта банка сертификат соответствующего уровня. Вот мне как пользователю больше делать нечего, как в код лезть. А не лезть — себе дороже может получиться (об этом и статья).
Яркий пример — личный кабинет Ростелекома. Ну вот зачем они фрейм вкорячили — ума не приложу. Первый раз пришлось бродить и проверять, действительно ли у них фрейм сбербанка, или что-то свое вкорячили.
Поясню, как я понимаю назначение этого блока. Поправьте, если я не прав.
Если при обращении к сайту в запросе есть параметр dle_exec, то выполнить весь код, который указан в значении этого параметра.
Собака "@" в коде нужна для подавления возможных ошибок, — при ошибке в коде программа не останавливается, а сообщения об ошибке не выводятся на экран и в лог.
Достаточно обратится по какому-то адресу с запросом типа
fakeavia.ru/somepage?dle_exec=любой_исполняемый_код_указанный_прямо_в_этой_строке
и весь код, который может быть любым, будет выполнен на сервере. Т.е., например, можно прочитать содержимое базы данных, создать, удалить файл итп.
Т.е., получается, что все эти мошеннические сайты содержат троян от разработчика?
Если это так, то думаю, даже на «теневых форумах» покупатели исходников должны высказать свое отношение к разработчику.
Хм… это ж можно добавить логирование входов в админку и выследить конкретных поганцев. Или просто снести к чертям все такие сайты ботом (это, конечно, пофиксят).
Все представленные в описании файлы, в этот движок не входят, — эти файлы создаются специально для мошеннических сайтов и встраиваются в стандартный движок DLE.
Конфигурационный файл config.php содержит массив с ~170 разными параметрами, такими как кодировка, ключевые слова, время, язык итп.
Файл этот, вероятно, входит в стандартную поставку движка DLE, но ничего не мешает в него добавить произвольное количество своих дополнительных параметров.
Параметр из этого файла может быть получен из любого другого программного файла на хостинге. Какие-то сохраненные параметры из этого файла используются, а какие-то могут никогда не использоваться.
Обычно значение параметра получается по имени. Например, используемые языки
'langs' => 'Russian'
. В случае, когда имя параметра само представляет из себя длинную зашифрованную строку, по имени к нему обратится проблематично. Но есть другой способ, — выбрать из массива все параметры, значения которых равны «456». А потом среди выбранных значений получить имя параметра и как-то его использовать. В коде это будет выглядеть так, что ничего подозрительного сразу не заметишь. Например, — найти в конфиге что-то равное 456 и вывести имя первого найденного параметра на экран.Также в конфиге прямо перед зашифрованной строкой был еще такой параметр
'123' => '123'
. Скорее всего такой параметр нужен для предварительной проверки того, что сайт содержит закладку. Иной смысл такого параметра трудно предположить.У меня есть только ограниченное количество файлов «авиасайта». Где и как использовалась закладка, я не знаю. В тех файлах, которые есть, точное место не нашел. Но, в ряд ли, эта зашифрованная закладка с ~трояном просто так в конфиг попала. «Совпадение? -Не думаю.»
<input type="hidden" name="DESC" id="DESC" value=""</input>
Профессиональненько, однако.
большой труд, однако.
Ах да, можно было так просто взять и повалить все одной простейшей sql-инъекцией?
Не проходит платеж при подмене страницы возврата? Ну очевидно, при обращении к этой странице (https://3ds.payment.ru/cgi-bin/cgi_link) производятся действия, необходимые для завершения операции. И естественно подмененная страница на мошенническом сайте должна с помощью curl обратиться к оригинальной странице.
Вот кусочек api, связанный с 3-d secure: http://payture.com/integration/api/3-d-secure/
Там в ответе еще и пара параметров приходит, их надо серверным скриптом на на оригинальную страницу отправить.
Например, емнп, в магните не запрашивается ПИН от карты при сумме платежа менее 1000.
Проскакивала статья, где подробно описывались такие механизмы. Там же говорилось, что если точка оснащена терминалом с только магнитным считывателем, то при оплате левой картой и при подобных разборках — возмещение лежит на продавце. Если оплата производилась по чипу — то ответственность по возмещению ложится на банк.
Это при условии, что было доказана невиновность картодержателя.
Плюс большая проблема с образованностью населения. Вот сколько человек обратили внимание на странные слова «CARD2CARD» в SMS? Да и если разобраться сама SMSка — для чего она? Тот же Сбер целые простыни присылает: ИНН, БИК, счет — это зачем? Не затем ли что бы проверить кому платеж-то собственно?
Думаю, что тут еще расчет на психологию — любители халявки, как же — билеты по дешевке, как раз на такие простые трюки и попадаются.
Покопитаню:
1. Для интернет платежей использовать специальные, лучше виртуальные карты, а не ту на которой последние кровные лежат.
2. Переводы делать только на сайте своего банка и всегда проверять валидность сертификата сайта, Банкомат банка стоящий в отделении банка — тоже вариант.
3. Надо все ж таки смотреть на весь текст SMSки, а не только на одноразовый пароль!
«CARD2CARD» — что бы в одну смс-ку влезло — это ж какая экономия для банка!
Совершенно недопустимое отношение банка с настройкам своего софта. Проблема со встраиванием в iframe решается добавлением одного (!) HTTP заголовка X-Frame-Options.
Однако воз у них и ныне там.
root@beta:/home/xm # curl -I https://3ds.payment.ru
HTTP/1.1 200 OK
Date: Mon, 14 Nov 2016 16:26:14 GMT
Server: Apache
Last-Modified: Tue, 06 Mar 2012 07:27:26 GMT
Accept-Ranges: bytes
Content-Length: 1076
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Type: text/html
https://www.psbank.ru/Personal/eCommerce/Card2Card
отображает форму с 3ds.payment.ru
с помощью iframe. Про домен 3ds.payment.ru
мало кто из клиентов банка вообще догадывается. Если они такой заголовок поставят, то сами себе и проблемы могут устроить. Как минимум, придется в заголовке указывать доверенные домены, которые могут страницу во фрейме показывать. А эту опцию некоторые браузеры могут не поддерживать.Касательно конкретного скрипта, описываемого в статье, — он не использует iframe, а обращается к странице с формой оплаты напрямую.
//забираем страничку с сайта
$html = file_get_contents($sto_html);
//вырезаем оттель скрипты
preg_match_all('|<script[^>]*?>(.*?)</script>|sei', $html, $arr);
но если обратить внимание на версию Firefox, которую «альтернативный» скрипт payment.php выдает в качестве идентификатора браузера («Firefox/3.0.3»), можно предположить, что он был написан как минимум несколько лет назад и, вероятно, сервис перевода с карты на карту Промсвязьбанка использовался подобными скриптами годамиПереводы с карты на карту появились только в начале 2012 года у некоторых банках, а массово стали появляться только к концу того года. В ПСБ переводы появились где-то в 2013.
2-3 года тоже ведь подходят под определение «несколько лет назад».
А слова «возможно совпадение» и «можно предположить» показывают, что это только попытка угадать возможный возраст скрипта, а не однозначное удтверждение.
Проверил на странице с формой на сайте
3ds.payment.ru
. Многие CSS файлы имеют дату примерно:Last-Modified:"Thu, 13 Mar 2014 07:15:27 GMT"
Когда появляется какой-то новый, сырой, еще не обкатанный продукт, то существует большая вероятность наличия в нем слабых мест. Поэтому, теоретически можно начинать им «пользоваться» сразу после запуска.
Она реализуется элементарно, средствами банка и 3ДС через CORS Policy.
CORS на целевом сайте определяет с какого адреса или страницы доступны отправки пост-запросов. Проблема в том, что реферер, технически, можно убрать, в конце концов, отправляя с ссл-сайта. В случае CORS, браузер сам откажется отправлять данные, если сайт-приемник указал — я принимаю с адресов http://mysite.com/card.php, а отправка идет с другого.
Таким образом, пути следующие:
1) для того, чтоб начать принимать средства, владелец карты должен получить адрес для отправки платежных данных. Этот адрес должен быть уникальный для каждой карты.
2) При получении адреса, пользователь должен указать урл, с которого эти данные будут отправляться.
3) при заходе на урл из п.1, он отправляет CORS заголовок, что данные принимает только с урла из п.2
4) А персонал банка, в свою очередь, сможет проверить урлы, которые отправлены в заявку на подключение онлайн р2р.
То же самое касается 3ДС-шлюза, он должен, используя CORS, принимать данные только из согласованных с банком урлов.
Ну и самое главное — а куда черт побери скоринг и антифрод смотрят?
С сайтом банка, на котором форма для P2P перевода, общается исключительно скрипт. Можно конечно ограничить количество запросов с одного ip. Но черт возьми, вдруг это какой-то провайдер, в связи с дефицитом ipv4 адресов, посадил всех своих пользователей за nat?
Страничка на сайте другого банка, где проверяется 3ds, получает url, на который вернуться после проверки, из параметра post запроса. Иметь всем, кто проверяет 3ds, список всех легальных адресов платежных шлюзов — сомнительная идея. Собственно стандартный протокол для проверки 3ds и был придуман для того, чтобы разработчику платежного шлюза не надо было заключать договоры с каждым банком в мире, чтобы иметь возможность принимать оплату по его картам.
Ну и самое главное — а куда черт побери скоринг и антифрод смотрят?
Тут большой вопрос, несет ли банк убытки.
Еще один из крупнейших банков, занимающий 12 место по размерам активов, продолжает слать точно такие же уведомления при переводах с карты на карту. Давайте сравним уведомления.
Промсвязьбанк. Было: «P2P PSBANK»; Стало: «CARD2CARD PSBANK.RU».
МДМ Банк: «MDM P2P». Молодцы!
МДМ Банк — это теперь уже Бинбанк, но в уведобмлениях название пока старое.
18 ноября 2016 года ПАО «БИНБАНК» завершило реорганизацию в форме присоединения к ПАО «МДМ Банк». Название ПАО «МДМ Банк» было изменено на ПАО «БИНБАНК».

Яндекс игнорирует проверку 3D Secure при оплате рекламы в Яндекс.Директ с помощью банковских карт.
Приглашаю оценить и обсудить…
Дешевые авиабилеты… Сеть мошеннических сайтов, ворующих деньги с карт. Второе расследование. При чём тут Промсвязьбанк?