LINUX.ORG.RU

История изменений

Исправление swarnk, (текущая версия) :

Я делал пару дней назад вход в личный кабинет. Не мегафон правда, да и вообще не мобильный оператор.

curl -s https://somesite.com/login -c mycookies > /dev/null

У меня CSRF токен был доступен в файле с сохраненными куками, если это не так, как уже говорили выше грепайте вывод curl, а не перенаправляйте в /dev/null

TOKEN=$(cat mycookies | grep token | awk {'print $7'})
DATA="csrfmiddlewaretoken=$TOKEN&username=XXX&password=XXX"
echo $DATA > datafile

собственно POST запрос

curl 'https://somesite.com/login' -c mycookies -b mycookies -H 'Referer: https://somesite.com/login' --data @datafile  > /dev/null

Теперь если сервер ответил к примеру 302 загружаем страницы дальше...

curl "https://somesite.com/someurl" -c mycookies -b mycookies -H 'Referer: https://somesite.com/login' --output page_for_grep.html

Больше ничего хитрого кроме referer на стороне сервера не проверялось (без referer нихера не работало кстати). Ну и наверное стоит поменять в curl User-Agent )

UPD. И да, внимательно смотрите в консоль браузера при POST запросе. В моем случае на вкладке Params как раз было видно какие данные (form data) отдает браузер: csrmiddlewaretoken, username и password

Исходная версия swarnk, :

Я делал пару дней назад вход в личный кабинет. Не мегафон правда, да и вообще не мобильный оператор.

curl -s https://somesite.com/login -c mycookies > /dev/null

У меня CSRF токен был доступен в файле с сохраненными куками, если это не так, как уже говорили выше грепайте вывод curl, а не перенаправляйте в /dev/null

TOKEN=$(cat mycookies | grep token | awk {'print $7'})
DATA="csrfmiddlewaretoken=$TOKEN&username=XXX&password=XXX"
echo $DATA > datafile

собственно POST запрос

curl 'https://somesite.com/login' -c mycookies -b mycookies -H 'Referer: https://somesite.com/login' --data @datafile  > /dev/null

Теперь если сервер ответил к примеру 302 загружаем страницы дальше...

curl "https://somesite.com/someurl" -c mycookies -b mycookies -H 'Referer: https://somesite.com/login' --output page_for_grep.html

Больше ничего хитрого кроме referer на стороне сервера не проверялось (без referer нихера не работало кстати). Ну и наверное стоит поменять в curl User-Agent )