PDA

Просмотр полной версии : url элемента


user6334
27.10.2015, 12:28
Помогите! Как узнать url всплывающего окна? Просматриваю код элемента (кнопки, которая его открывает), но там только такое:

Войти

ZodiaX
27.10.2015, 13:10
Можно каким нибудь http снифером глянуть (plug. HttpFox for FF).

-=lebed=-
27.10.2015, 13:11
↑ (https://antichat.live/posts/3907423/)
Помогите! Как узнать url всплывающего окна? Просматриваю код элемента (кнопки, которая его открывает), но там только такое:
Войти



Поставь в ФФ плагин Firebug http://getfirebug.com/

user6334
27.10.2015, 15:38
Нифига, и снифером смотрел, пришел к выводу, что страницу в браузере формирует js, который в нем же выполняется. Но как найти этот js? Через браузер я могу спокойно просмотреть код всплывающего элемента и увидеть, что мне нужно, но как открыть его в URL?

Altai
27.10.2015, 15:58
↑ (https://antichat.live/posts/3907499/)
Нифига, и снифером смотрел, пришел к выводу, что страницу в браузере формирует js, который в нем же выполняется. Но как найти этот js? Через браузер я могу спокойно просмотреть код всплывающего элемента и увидеть, что мне нужно, но как открыть его в URL?


не пойму для чего вам это надо? Чтоб заполнить форму во всплывающем окне и отправить её? Или для чего?

user6334
27.10.2015, 16:00
↑ (https://antichat.live/posts/3907511/)
не пойму для чего вам это надо? Чтоб заполнить форму во всплывающем окне и отправить её? Или для чего?


поясню, мне надо спарсить CSRF-токен

ubepkr
28.10.2015, 10:43
↑ (https://antichat.live/posts/3907499/)
Нифига, и снифером смотрел, пришел к выводу, что страницу в браузере формирует js, который в нем же выполняется. Но как найти этот js? Через браузер я могу спокойно просмотреть код всплывающего элемента и увидеть, что мне нужно, но как открыть его в URL?


Был у меня похожий вопрос, может, что-то типа Acunetix+deep crawling?

user6334
28.10.2015, 10:44
спарсил я токен, но появилась проблема:

-boundary

указываетчся как параметр в заголовке content type

как он формируется?

выглядит так: ---------------------------4962140363242

Altai
06.11.2015, 12:35
↑ (https://antichat.live/posts/3907512/)
поясню, мне надо спарсить CSRF-токен


Возникла такая же проблема. Можете рассказать, как вы её рышили? Можно ли как-то получить страницу, на которой уже выполнились все яваскрипты?

SS_47
06.11.2015, 12:53
↑ (https://antichat.live/posts/3907786/)
спарсил я токен, но появилась проблема:
-boundary
указываетчся как параметр в заголовке content type
как он формируется?
выглядит так: ---------------------------4962140363242


браузером рандомно

нужен для того, чтобы разграничить разные части mutipart-запроса, например, два разных файла

если ты пишешь какой-то парсер, то можешь просто захардкодить достаточно длинную уникальную строку

чуть-чуть информации можешь найти в вики в примере и пару строк под примером

https://ru.wikipedia.org/wiki/Multipart/form-data

M_script
06.11.2015, 14:56
Нужно смотреть не исходный код, а DOM-модель страницы. В разных браузерах инструменты для разработчика называются по-разному, но хоткеи обычно совпадают - Ctrl+Shift+I

Altai
06.11.2015, 14:59
↑ (https://antichat.live/posts/3911939/)
Нужно смотреть не исходный код, а DOM-модель страницы. В разных браузерах инструменты для разработчика называются по-разному, но хоткеи обычно совпадают - Ctrl+Shift+I


если это мне, то я знаю как в ручную это сделать, а как это сделать во время парсинга програмно - не понятно

M_script
06.11.2015, 15:05
altai, это было всем.

Программно можно выполнить JS интерпретатором или переписать код JS на нужный ЯП. Если интересует только AJAX, он перехватывается так же, как все остальные HTTP-запросы.

user6334
07.11.2015, 01:18
Есть такая фигня, открываешь сайт, печатать её в адресной строке после javascript:, и она пишет тебе все урлы js на сайте, которые ты видишь в алерте

user6334
07.11.2015, 01:29
↑ (https://antichat.live/posts/3911888/)
браузером рандомно
нужен для того, чтобы разграничить разные части mutipart-запроса, например, два разных файла
если ты пишешь какой-то парсер, то можешь просто захардкодить достаточно длинную уникальную строку
чуть-чуть информации можешь найти в вики в примере и пару строк под примером
https://ru.wikipedia.org/wiki/Multipart/form-data


А вот и рандомно, да не всегда. Написано же, по спец. Алгоритму. Как узнать алгоритм? Я подставил другие значения и запрос не проходит. Вообще зачем генерировать что-то? Как проверяется потом валидность сгенерированного значения?

M_script
07.11.2015, 06:41
↑ (https://antichat.live/posts/3912175/)
Написано же, по спец. Алгоритму.


Это вырвано из контекста, там другое написано.

"boundary (граница) — это последовательность байтов, которая не должна встречаться внутри закодированного представления данных части." Все просто и понятно, никаких дополнительных условий нет.

"Обычно клиент (браузер) генерирует эту последовательность случайно или по специальному алгоритму." В данном случае клиент - это твой софт. Как ты напишешь алгоритм, такой он и будет.

SS_47
07.11.2015, 12:55
↑ (https://antichat.live/posts/3912175/)
А вот и рандомно, да не всегда. Написано же, по спец. Алгоритму. Как узнать алгоритм? Я подставил другие значения и запрос не проходит. Вообще зачем генерировать что-то? Как проверяется потом валидность сгенерированного значения?


Алгоритм, как написали выше выбираешь ты сам

Смотри

В том случае, когда ты используешь application/x-www-form-urlencoded ты посылаешь несколько параметров разделенных амперсандом


param1=qwerty&param2=123

Сервер получая такой запрос, знает, что между & и = находится название параметра, между = и & - значение и он может распарсить их

Multipart/form-data часто используется для передачи файлов и никто не может гарантировать, что в бинарном формате твоего файла не встретится что-то вроде & или =

Поэтому ты говоришь: сервер, смотри, я использую Asrf456BGe4h для разделения разных частей запроса


Content-Type: multipart/form-data; boundary=Asrf456BGe4h

и дальше формируешь запрос


--Asrf456BGe4h
Content-Disposition: form-data; name="DestAddress"
(пустая строка)
brutal-vasya@example.com
--Asrf456BGe4h
Content-Disposition: form-data; name="MessageTitle"
(пустая строка)
--Asrf456BGe4h
Content-Disposition: form-data; name="MessageText"
(пустая строка)
Привет, Василий! Твой ручной лев, которого ты оставил
у меня на прошлой неделе, разодрал весь мой диван.
Пожалуйста забери его скорее!
Во вложении две фотки с последствиями.
--Asrf456BGe4h
Content-Disposition: form-data; name="AttachedFile1"; filename="horror-photo-1.jpg"
Content-Type: image/jpeg
(пустая строка)
(двоичное содержимое первой фотографии)
--Asrf456BGe4h
Content-Disposition: form-data; name="AttachedFile2"; filename="horror-photo-2.jpg"
Content-Type: image/jpeg
(пустая строка)
(двоичное содержимое второй фотографии)
--Asrf456BGe4h--
(отсутствующий эпилог - пустая строка)

и сервер прочитав хедер content-type может распарсить этот запрос и при генерации boundary рандомно и достаточно большой длины с высокой долей вероятности не возникнет проблем с тем, что внутри приаттаченного файла есть данные, которые сломают серверу парсинг

user6334
07.11.2015, 17:47
Спасибо за подробное объяснение, я с этим уже и так разобрался, но. Отправляю, запрос с сайта, он проходит, нажимаю в просмотре заголовков реплей, меняю значение

boundary в заголовке и в пост-запросе - вываливается ошибка, что вроде как неверный csrf токен, если значение boundary я не меняю, реплей проходит нормально

M_script
07.11.2015, 19:03
↑ (https://antichat.live/posts/3912405/)
нажимаю в просмотре заголовков реплей


В какой программе?

user6334
07.11.2015, 19:32
↑ (https://antichat.live/posts/3912421/)
В какой программе?


Плагин для мадзиллы

M_script
07.11.2015, 20:43
Попробуй charles.

user6334
08.11.2015, 09:47
↑ (https://antichat.live/posts/3912460/)
Попробуй charles.


А что, смена программы разве выход? Ошибку выдает не программа, а сайт! Реплей с другими изменениями параметрами обрабатывает корректно

M_script
08.11.2015, 11:12
↑ (https://antichat.live/posts/3912681/)
А что, смена программы разве выход? Ошибку выдает не программа, а сайт!


В данном случае ошибка не в сайте, а в программе или человеке. Смена программы поможет это выяснить.

Если через charles не будет работать, тогда по его скринам в этой теме можно будет найти ошибку.

user6334
08.11.2015, 22:04
↑ (https://antichat.live/posts/3912701/)
В данном случае ошибка не в сайте, а в программе или человеке. Смена программы поможет это выяснить.
Если через charles не будет работать, тогда по его скринам в этой теме можно будет найти ошибку.


Не, ну я конечно попробую, однако сомневаюсь. Вот с чем это связано. Не понятно, почему браузера генерит число при каждом запросе. Это первое. Второе, сам токен в форме не меняется, и связан с сессий. Третье я уже сказал, при смене числа разделителя вылезает ошибка с токеном. Вообщем предположение следующее

user6334
08.11.2015, 22:08
В странице кроме токена в скрытом поле, еще и передаётся некий рандомно код вроде соли для токена, сама соль и является разделителем, либо она может передаваться в заголовке

M_script
09.11.2015, 07:34
↑ (https://antichat.live/posts/3912946/)
сама соль и является разделителем, либо она может передаваться в заголовке


Обычно сам токен передается в заголовке.

user6334
09.11.2015, 09:22
↑ (https://antichat.live/posts/3913049/)
Обычно сам токен передается в заголовке.


в смысле я передаю, или сервер мне передает?

M_script
09.11.2015, 10:27
Клиент передает один токен в теле запроса и второй такой же в заголовке (в куках или отдельным заголовком). Это нужно для защиты от CSRF и XSS.

user6334
09.11.2015, 13:18
↑ (https://antichat.live/posts/3913078/)
Клиент передает один токен в теле запроса и второй такой же в заголовке (в куках или отдельным заголовком). Это нужно для защиты от CSRF и XSS.


нет, у меня только в теле. С boundary я разобрался, говорю вам спасибо

uniplace
11.11.2015, 14:18
↑ (https://antichat.live/posts/3907423/)
Помогите! Как узнать url всплывающего окна? Просматриваю код элемента (кнопки, которая его открывает), но там только такое:
Войти



Включаешь режим отладки в гугл хроме (F12) и смотришь в окошке Network откуда растут ноги у загружаемого окна.

Но, конкретно у тебя окно не загружается. Оно прописано в коде - ищи что-то типа div id="auth" - этот див вызывается через data-target атрибут модальным плагином