Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Портал .::2BakSa.WS::.
Вернуться   Компьютерный форум NoWa.cc > Компьютеры и Интернет > Интернет партизаны > Статьи

Уважаемые пользователи nowa.cc и 2baksa.ws. У нас сложилось тяжёлое финансовое положение. Мы работаем для вас вот уже более 15 лет и сейчас вынуждены просить о помощи. Окажите посильную поддержку проектам. Мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: 826074280762 Webmoney WME: 804621616710
PayPal PayPal_Email E-mail для связи по вопросу помощи
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!
Ответ
 
Опции темы Опции просмотра Language
Старый 24.07.2007, 22:32   #1
Постоялец
 
Аватар для WeNZeeR
 
Пол:Мужской
Регистрация: 14.12.2006
Сообщений: 546
Репутация: 576
Arrow Знакомство/Изучение устройств Мульти-Касс (Автор: throughout)

В данной статье я вам хочу рассказать как устроены терминалы/мульти-Кассы (программно).
Начну с того что Все знают терминалы/мульти-Кассы, и как через них можно пополнить себе баланс на мобильные телефоны и различные платёжные системы,
Как все думают что бы нелегально пополнить себе на телефон, Нужно подключиться к терминалу,Знать логин и пороль.И сидеть и пополнять на халяву.
На самом деле ребята всё подругому.Все терминалы используют обычные XML
запросы, которые отправляются на сервер с помощью шаблонов,У каждого терминала есть свои ключи(обычно это 64 битный ключ) С помощью этого ключа терминал авторизируеться на сервер для осуществления платежей. B)
Вот реальный пример с одного из терминалов:

Цитата:

<REQUEST>
<PAYMENT>
<DEALER_INFO>
<DEALER_ID>%dealer%</DEALER_ID>
<TERMINAL_ID>%terminal% </TERMINAL_ID>
</DEALER_INFO>
<PAYMENT_INFO>
<OPERATOR>%operator%</OPERATOR>
<PHONE_NUMBER>%phone%</PHONE_NUMBER>
<HOLDER_FIRST_NAME>%firstname%</HOLDER_FIRST_NAME>
<HOLDER_SECOND_NAME>%lastname%</HOLDER_SECOND_NAME>
<HOLDER_MIDDLE_NAME>%middlename%</HOLDER_MIDDLE_NAME>
<AMOUNT>%summa%</AMOUNT>
<COMMENT>%comment%</COMMENT>
</PAYMENT_INFO>
</PAYMENT>
</REQUEST>

Это формы запроса на сервер для авторизации.

Цитата:

<?php
class AKS {
private $dealerid = "654852";
private $terminalid = "2";

function checkValues() {

}

function encrypt($data) {
$data = base64_encode($data);

$sapKey = <<<EOF
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQC6GI5uaA7hEkgeP98VHL6TSxJwwPI+Mh+rFx KQPCgarT3/nZCS
Gz1r223+gfH/adV4IDvlbYT18VQ4vSspX+QRAidFeZvsfv99FewnwNoTL3LwYp/K
r9eW5YCpCEe8Crziks0vf92PNoHgNAL0iVo0Zma1ScDBSPBlQJ oZ1UiwoQIDAP//
AoGAMs3U9+LqKsWra8V1iPYA0LCoOmY2x8dwwqKwGQY1LPWGSW VqE/z5soJ6upxu
D9sRPLtxdWRqV5p4S3GX0QRZg7Jfb9vPdHpJXtZyQ4vxMdYyRR aSDT9drCfgjLUn
0qMDHYTU0Z3qY4iiFr0HzpTa0acV0MMhnEEZ0Gc0JKKsab8CQQ Dx7yT26vHTsA/+
af6X51rhXcVakaw3Rrxw/MHkbaONiqwaEDxsWJ/ZCGRT5diwP3rRqu7o4aSIMSx4
SNx06ikpAkEAxOpWRyTByzh3gfIu+VVPP89/7526O5qdcG58JNoWufHbyTxJh3BO
naRSuVXvjA/htqv7iAXUkmvPoqVTqX2iuQJAMkE78dn9N1LglVw/s3NM7u72Rmda
qhIGhIq1HRT3NwTOBnP30QU1sT2UfJXR2WX4+/g6enAhKj9JGQFTdEh79wJASyhP
iETCr8fD/H+gh1AjqFlliKS2ufhz8V5Mhgk217z0BJkkFXJlo7ZcPRLWmUa lB3JZ
Wbq7ZYHFaDQLy2s75wJAeHsEgQSxj2idJoZltLU/HIevL2pXurBvzLKY8qgz0hoK
B1Jd1G5U8NqLsrc8C9UQBbohihTjihGHEVzKr01Tgg==
-----END RSA PRIVATE KEY-----
EOF;
$sapKeyID = openssl_get_privatekey($sapKey);
openssl_sign($data, $signature, $sapKeyID, 2);
$signature = base64_encode($signature);

return array('data' => $data,'sign' => $signature);
}

function sendRequest($data) {
$PostData = "data=". urlencode($data['data']) ."&sign=". urlencode($data['sign']);
$len = strlen($PostData);

$zapros= "POST https://217.198.178.10:8443/srv/pay HTTP/1.0\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"Content-Length: ". $len ."\r\n".
"Host: 217.198.178.10\r\n".
"Accept: */*\r\n".
"Accept-Encoding: gzip, deflate\r\n".
"Connection: Keep-Alive\r\n".
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)\r\n\r\n".
$PostData;

$fp = fsockopen("ssl://217.198.178.10", 8443, &$errno, &$errstr, 300);
if(!$fp) {
echo "Ошибка соединения с сервером!";
return false;
}

fputs($fp,$zapros);
while(trim(fgets($fp,1024)) != "") {
}
$otvet = '';
while(!feof($fp)) {
$otvet .= fgets($fp,1024);
}
fclose($fp);

return $otvet;
}

function sendData($tpl,$toreplace) {
// $basedir = $_SERVER['DOCUMENT_ROOT'];
$xmlf=str_replace("\\","/",dirname(__FILE__) ."/aks/". $tpl);
if(!file_exists($xmlf) || !is_readable($xmlf)) {
return false;
}

$xml = implode('',file($xmlf));
$toreplace['%dealer%'] = $this->dealerid;
$toreplace['%terminal%'] = $this->terminalid;
$xml = str_replace(array_keys($toreplace),array_values($t oreplace),$xml);
// echo "<pre>".htmlspecialchars($xml)."</pre>";
//$datasign = $this->encrypt($xml); массив с закодированными данными и подписью
$otvet = $this->sendRequest( $this->encrypt($xml) );
// echo "<pre>".htmlspecialchars($otvet)."</pre>";
if($otvet === false)
return false;

$sxe = @simplexml_load_string("<?xml version=\"1.0\" encoding=\"windows-1251\"?>".$otvet);
//file_put_contents("1.txt",var_export($otvet,true)) ;
if ($sxe === false)
return false;
return $sxe;
}

function Payment($toreplace,$tpl) {
return $this->sendData($tpl ."_pay.xml",$toreplace);
}

function checkPayment($toreplace,$tpl) {

return $this->sendData($tpl ."_check.xml",$toreplace);
}
}
?>

Сдесь мы видим Скрипт конфигурации для отправки запроса на сервер с помощью шаблона,сдесь используется ключ.
--------------------------------------------------------------------------------------------------
Как мы видим,что терминал использует шаблон для построения запроса.
Думаю уже многие догадались что, даже нам не составит труда отправить такой же запрос на сервер,как вы уже догадались с помощью своих рук и головы :P

Рассмотрим шаблон запроса пополнения ОСС.

Цитата:
<OPERATOR>%operator%</OPERATOR>
<PHONE_NUMBER>%phone%</PHONE_NUMBER>
<HOLDER_FIRST_NAME>%firstname%</HOLDER_FIRST_NAME>
<HOLDER_SECOND_NAME>%lastname%</HOLDER_SECOND_NAME>
<HOLDER_MIDDLE_NAME>%middlename%</HOLDER_MIDDLE_NAME>
<AMOUNT>%summa%</AMOUNT>
<COMMENT>%comment%</COMMENT>

Во всех шаблонах вместо значка % подменяются данные на введённые юзером.

Сам файл настройки терминала хранит тоже очень важную информацию.

Рассмотрим его:

Цитата:
[Debug]
DebugMode=1
DumpMode=1
ShowMouse=0
;DemoMode=1

[WatchDog]
; Тип сторожевого таймера (NONE при отсутствии)
Type=NONE
;Type=LISCO
;Type=ITRUS
; Таймаут обновления файла слежения или нотификации (в секундах)
Timeout=50

;*** параметры только для LISCO
; Имя сервиса
ServiceName=NONE
;ServiceName=wd_main
; Путь к файлу слежения - ПРОПИШИТЕ СВОЙ!!!!!
RunningFile=C:\1.tst

;*** параметры только для ITRUS
; Таймаут пингования модема (в секундах), если = 0 пинг не проводится
PingTimeout=600
; Количество неудачных попыток пингования модема перед принятием решения о зависании
; если = 0 пинг не проводится
MaxFailedPings=3
; К какому разъему подключен модем (USB1, USB2, RELAY), если
; не указано пинг не проводится
ModemPowerSource=RELAY

[Printer]
; Путь к dll с драйверами принтеров
Lib=PrinterPack.dll

[BillCollector]
; Тип купюроприемника
Type=Fir8999
;Type=U70
;Type=CashCode
;Type=NV9

; COM порт используемый купюроприемником
Port=1
; Набор купюр, принимаемых к оплате
Use5=0
Use10=1
Use50=1
Use100=1
Use500=1
Use1K=1
Use5K=0
Use10K=0
; Максимальное количество купюр, если 0, то не проверяется
AmountThreshold=800

[Daemon]
; Время на которое демон засыпает после обработки блока отложенных транзакций (в минутах)
SleepTime=30
; Время на которое демон засыпает, если требуется вмешательство администратора АКС (в минутах)
ProblemTime=300
; Время в течении которого транзакции хранятся в блоке отложенных транзакций (в сутках)
LifeTime=30
; Время в течении которого транзакция из блока отложенных транзакций активна (в часах)
ActiveTime=12

[Terminal]
; Логин администратора (фиктивный номер телефона)
AdminLogin=9061111111
; Пароль администратора
AdminPassword=222
; Если 0 звук есть, если 1 то звук не проигрывается
Mute=0
; Идентификатор дилера, выданный АКС
DealerId=654852
; Идентификатор терминала, выданный АКС
TerminalId=22
; Имя абонента для отображения в системе
Abonent=Абонент киоска
; Логин терминала, устанавливается администратором дилера
Login=admin
; Пароль терминала, устанавливается администратором дилера
Password=admin
; Внутренний код терминала (устанавливается дилером)
TerminalCode= Kiosk
; Количество секунд неактивности терминала для переключения на стартовую страницу
IdleTimeout=40
; Время (в секундах) в течении которого показывать сообщение о запрете сервиса
DisabledTime=2
; Степень прозрачности сообщения запрета сервиса (0-255)
DisabledBlend=90

[Connector]
; Параметры коннектора
;IP=192.168.0.1
IP=217.198.178.10
;IP=127.0.0.1
Port=8181
Encoding=ZIP
;Connection=Beeline-GPRS
Connection=
Timeout=10

[MRUOperators]
Count=4
; Megafon NW
Operator1=2
; MTC
Operator2=8
; Beeline
Operator3=5
; Skylink NW
Operator4=7

[Keys]

; Секретный ключ терминала
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCeiJPjP6w8smOZ7Icx40Epe42gex9+NB19ZG kR8MidFfPkkW0v
eBQTNO9GLq8qmu2iRpTkWiPsn1p2Tw+Vf6vrPKyr5GcWmvJwJ6 U0GZnA1I2qAJmO
Dgv43jbkxIZuSZkjpSEnVhPaqXGRzg3vwfQR36VwTG1exOkCmT crAbY15wIDAP//
AoGAGcwDHHVw1DE7Nj8bHtFBY6lmbQt141cOQ32iNnWMmlw009 4dyl8sY2x4e7wE
bMsyhiJSTJqXgxBRIKFuApmQ6s5ydC/Aip1ZhQwAoes9EOlE4718U/LYMAvTPa93
BbXghbLTjKSILUmsniAKtmcgrhOcy9AqING4D8+E/OJj7z8CQQDJrDj7rO341YQg
FFmZseALCanbKP5q8AlRMofb1xQ/69nvGA7+xrcXBq5VGva8a3Bzy/voXFt3HBYb
liLjqXbzAkEAyT1h4bV7GTWC63DU3iA0Oib9cXoCIiSlJBUGxR +97iWDp33REU+e
EAh0AJ3vUC+LpkNErp8c2yp/OnrgnisqPQJBAKeJ/MR4Fg0cFSXnbbKOqeh1SJM7
6k5qhHf7jT5bM8qpza5gT91Qm6v5lc6C+9nUrriw/o6vQB778Q2Nz7umJFkCQFG3
0prtwG44/OZ/s6/2W6uIyKsA6iavcA5a6B6rxleea1hKm1PW3FH3ALHQ06IvMLAw
OO/xZDUTMsT98nusms8CQDzD0jQRBAwE4Y/35Alaz79njiOK6hNA7U/zLoi/vNxG
/nErqNju3JcBqgpEuE5btD50dKKcaCOgn0T8YRLyiOo=
-----END RSA PRIVATE KEY-----

; Публичный ключ ACS
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBALoYjm5oDuESSB4/3xUcvpNLEnDA8j4yH6sXEpA8KBqtPf+dkJIbPWvb
bf6B8f9p1XggO+VthPXxVDi9Kylf5BECJ0V5m+x+/30V7CfA2hMvcvBin8qv15bl
gKkIR7wKvOKSzS9/3Y82geA0AvSJWjRmZrVJwMFI8GVAmhnVSLChAgMA//8=
-----END RSA PUBLIC KEY-----

Как мы видим что, используется сдесь 2 ключа.
1 ключ - это ключ для авторизации терминала с сервером, 2 ключ - используется для логирования на сервере отчётов.
Как из всего этого мы видим, что терминалы/Мульти-кассы не используют суппер-пупер защиту ;)
Ссори, не смогу вам рассказать как осуществить не законное пополнение Мобильного телефона :P Но каждый может догадаться и попробывать всё сам.
Информация будет дополняться.
Прошу строго не судить :rolleyes:
С наилучшими пожеланиями throughout

Статья написана для ProLogic.WS.
__________________
Sometimes the life chooses for us..
Если человек идиот он должен знать об этом. (c) me
WeNZeeR вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Рекомендуем KNS - процессор Intel Core i3 - Подарок каждому покупателю!Интернет-магазин КНС Нева - принтеры струйные с снпч купить цена - КНС Санкт-Петербург - мы дорожим каждым клиентом!вентилятор канальный kvr 315-1Рекомендуем гипермаркет KNS - ноутбуки от асус - Подарок каждому покупателю!интеграция мегафон с метрикой


Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перспективно ли изучение .Net и С# dimanisu .NET 191 19.04.2021 18:38
Sex-автор Маdonna lamin Книги и журналы для взрослых 1 28.08.2009 11:19
Мульти СИМ адаптеры на кпк Aeroradist КПК 10 16.05.2009 08:16
Изучение Иврита (ИРИС, HebrewVerbs и т.п) Steppler Варезник 3 12.05.2009 10:59
С чего начинать изучение веб-программирования? Naurizbai Веб - Программирование 2 14.03.2007 01:03

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 21:22. Часовой пояс GMT +3.


Copyright ©2004 - 2024 2BakSa.WS

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.14685 секунды с 11 запросами