Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Песочница (https://forum.antichat.xyz/forumdisplay.php?f=189)
-   -   url элемента (https://forum.antichat.xyz/showthread.php?t=432108)

user6334 27.10.2015 12:28

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

Войти

ZodiaX 27.10.2015 13:10

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

-=lebed=- 27.10.2015 13:11

Цитата:

Сообщение от user6334
user6334 said:

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


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

user6334 27.10.2015 15:38

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

altai 27.10.2015 15:58

Цитата:

Сообщение от user6334
user6334 said:

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

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

user6334 27.10.2015 16:00

Цитата:

Сообщение от altai
altai said:

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

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

ubepkr 28.10.2015 10:43

Цитата:

Сообщение от user6334
user6334 said:

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

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

user6334 28.10.2015 10:44

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

-boundary

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

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

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

altai 06.11.2015 12:35

Цитата:

Сообщение от user6334
user6334 said:

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

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

SS_47 06.11.2015 12:53

Цитата:

Сообщение от user6334
user6334 said:

спарсил я токен, но появилась проблема:
-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

Цитата:

Сообщение от M_script
M_script said:

Нужно смотреть не исходный код, а 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

Цитата:

Сообщение от SS_47
SS_47 said:

браузером рандомно
нужен для того, чтобы разграничить разные части mutipart-запроса, например, два разных файла
если ты пишешь какой-то парсер, то можешь просто захардкодить достаточно длинную уникальную строку
чуть-чуть информации можешь найти в вики в примере и пару строк под примером
https://ru.wikipedia.org/wiki/Multipart/form-data

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

M_script 07.11.2015 06:41

Цитата:

Сообщение от user6334
user6334 said:

Написано же, по спец. Алгоритму.

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

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

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

SS_47 07.11.2015 12:55

Цитата:

Сообщение от user6334
user6334 said:

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

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

Смотри

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

Код:

Code:
param1=qwerty&param2=123

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

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

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

Код:

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

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

Код:

Code:
--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

Цитата:

Сообщение от user6334
user6334 said:

нажимаю в просмотре заголовков реплей

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

user6334 07.11.2015 19:32

Цитата:

Сообщение от M_script
M_script said:

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

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

M_script 07.11.2015 20:43

Попробуй charles.

user6334 08.11.2015 09:47

Цитата:

Сообщение от M_script
M_script said:

Попробуй charles.

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

M_script 08.11.2015 11:12

Цитата:

Сообщение от user6334
user6334 said:

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

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

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

user6334 08.11.2015 22:04

Цитата:

Сообщение от M_script
M_script said:

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

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

user6334 08.11.2015 22:08

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

M_script 09.11.2015 07:34

Цитата:

Сообщение от user6334
user6334 said:

сама соль и является разделителем, либо она может передаваться в заголовке

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

user6334 09.11.2015 09:22

Цитата:

Сообщение от M_script
M_script said:

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

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

M_script 09.11.2015 10:27

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

user6334 09.11.2015 13:18

Цитата:

Сообщение от M_script
M_script said:

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

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

uniplace 11.11.2015 14:18

Цитата:

Сообщение от user6334
user6334 said:

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


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

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


Время: 20:13