Историята на анализа на един aspx сайт

заден план

Всъщност аз съм дизайнер на оформление. И уеб разработчик, но в тази област уменията не са толкова високи, просто правя сносни сайтове на wordpress. Не съм срещал груби искания за къдрици преди. И с aspx сайтове - също. Но е интересно!(това доведе до месец вечери с php и няколко безсънни нощи. И много забавление, разбира се)

Първоначално имаше опити за междудомейн заявки с помощта на javascript, но нищо не се получи в тази посока. След това плахи разкопки към phantomjs и друга емулация на потребителско поведение. Но се оказа, че все още ми липсват js умения. В резултат на това всичко работи при curl заявки, идващи от php страницата.

Получаване на информацията

Разрешението се оказа достатъчно бързо и спечели повече или по-малко без проблеми.Най-неприятният проблем беше ограничението за броя на въведените неправилни пароли: два пъти - и се обадете на администратора, възстановете достъпа.

Но с прехода към желания град упорито се провали. Преходът беше направен, но някъде не там, въпреки че POST заявката беше завършена според всички правила. Оказа се, че preg_match не работи правилно с много голям брой знаци. Това се запазва чрез посочване на директивата

Първо получаваме първоначалното състояние на страницата (тъй като все още не сме влезли, стигаме до страницата за вход) и изваждаме viewstate от там:

Сега, когато вече имаме актуална моментна снимка на състоянието на страницата в ръцете си, въвеждаме потребителското име и паролата. (postdata е POST параметърът на заявката към страницата, можете да надникнете в същата пожарна грешка).

получаваме получаваме в резултат на състоянието на показване на страницата, от която се нуждаем.

Точно в този момент възникна проблемът с неработещия preg_replace, но решението - благодарение на Habr - беше намерено. Да!Сега можете да отидете на приложения за желания град и да започнете анализиране.

Когато най-накрая разберете какво правите, всичко е съвсем просто: трябва да следвате точно връзката, чието състояние на изглед е получено в предишната стъпка.

Обработка на данни

Разбрахме, започваме анализирането. Първият опит беше с регулярни изрази. За съжаление, php на хостинга някак работеше много странно с многоредови изрази и не изтръгна напълно селектирането (с всички опции), колкото и да го убеждавах (докато всичко работеше на локално).

Търсим в гугъл, мислим, четем. Намираме Нокогири. Знаеш ли, лесно и си заслужава! Наистина бързо и приятно нещо за работа:

Красота и украса

Изведнъж се появи много странен проблем: самият клиент, с очевидно недоволство, използва версията на разработчика без css, js и други звънци и свирки. По-точно, той не разбираше кактоваизобщо може да се използва.

Търсим информация за XHR заявки.

P.S. Просто ме попитаха дали е възможно да се променят данните в системата за работа с приложения с помощта на този клиент. Изглежда беше заплаха...

Hardcore conf в C++. Каним само професионалисти.