POST GET

Castaneda

Client
Регистрация
24.05.2019
Сообщения
840
Благодарностей
282
Баллы
63
Подскажите как модифицировать и отправить запрос такого плана:

Если что-то изменить, то отвечает с ошибкой 9003
судя по всему отправляет хеш.
Возможно ли это обойти?

Код:
POST /level-finish HTTP/2
Host: URL
Authorization: Bearer токен
Firebase-Instance-Id-Token: c9iPAGuMWkeBhTj_-nJtMb:APA91bEZUKbOBC-NzFAcNjRCVWyrsvP1-yg20D2POz78Kjcd_LUJ6x8-FFvwaS3VX8Lz3146uDb_PSlM-Ap1xF4R2Tuy2gp8QnsNYeWHeTbLWlcjwfFpaljouMp5eQ3tAaJ7F-Kxh6GJ
Content-Type: application/json; charset=utf-8
Content-Length: 802
Accept-Encoding: gzip, deflate, br
User-Agent: okhttp/3.12.13

{"data":{"level":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"4"},"gifts":{"top":{"a":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"1"},"b":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"c":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"d":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"}},"id":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"4"},"down":{"a":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"b":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"c":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"d":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"}}}}}
 

blackbyte

Client
Регистрация
05.09.2022
Сообщения
186
Благодарностей
104
Баллы
43
Подскажите как модифицировать и отправить запрос такого плана:

Если что-то изменить, то отвечает с ошибкой 9003
судя по всему отправляет хеш.
Возможно ли это обойти?

Код:
POST /level-finish HTTP/2
Host: URL
Authorization: Bearer токен
Firebase-Instance-Id-Token: c9iPAGuMWkeBhTj_-nJtMb:APA91bEZUKbOBC-NzFAcNjRCVWyrsvP1-yg20D2POz78Kjcd_LUJ6x8-FFvwaS3VX8Lz3146uDb_PSlM-Ap1xF4R2Tuy2gp8QnsNYeWHeTbLWlcjwfFpaljouMp5eQ3tAaJ7F-Kxh6GJ
Content-Type: application/json; charset=utf-8
Content-Length: 802
Accept-Encoding: gzip, deflate, br
User-Agent: okhttp/3.12.13

{"data":{"level":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"4"},"gifts":{"top":{"a":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"1"},"b":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"c":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"d":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"}},"id":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"4"},"down":{"a":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"b":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"c":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"d":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"}}}}}
Что именно изменяешь?
И для чего?
 

Castaneda

Client
Регистрация
24.05.2019
Сообщения
840
Благодарностей
282
Баллы
63

blackbyte

Client
Регистрация
05.09.2022
Сообщения
186
Благодарностей
104
Баллы
43

Castaneda

Client
Регистрация
24.05.2019
Сообщения
840
Благодарностей
282
Баллы
63
Ты пытаешься Authorization: Bearer токен изменить ?
не. В запросе есть текущий LVL и количество гифтов, которые ты получил когда его прошел. Этот запрос уходит на сервер.
Вот когда ставлю не 1, а 10, то получаю в ответ

Код:
HTTP/2 200 OK
Vary: Origin
Content-Type: application/json; charset=utf-8
X-Cloud-Trace-Context: e31bac3bce9a5670efaa550fce8c627a
Date: Tue, 09 Apr 2024 10:51:16 GMT
Server: Google Frontend
Content-Length: 65
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000

{"result":{"error":true,"message":"ERROR","code":9001,"data":{}}}
 

blackbyte

Client
Регистрация
05.09.2022
Сообщения
186
Благодарностей
104
Баллы
43
не. В запросе есть текущий LVL и количество гифтов, которые ты получил когда его прошел. Этот запрос уходит на сервер.
Вот когда ставлю не 1, а 10, то получаю в ответ

Код:
HTTP/2 200 OK
Vary: Origin
Content-Type: application/json; charset=utf-8
X-Cloud-Trace-Context: e31bac3bce9a5670efaa550fce8c627a
Date: Tue, 09 Apr 2024 10:51:16 GMT
Server: Google Frontend
Content-Length: 65
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000

{"result":{"error":true,"message":"ERROR","code":9001,"data":{}}}
По идее где-то должен быть hash этих значений для сверки.
Может есть ещё какой то запрос перед этим?
 

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 236
Благодарностей
804
Баллы
113
Тоесть, получил 1, а отправляешь как будто 10?
 

Castaneda

Client
Регистрация
24.05.2019
Сообщения
840
Благодарностей
282
Баллы
63

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 236
Благодарностей
804
Баллы
113

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 184
Благодарностей
823
Баллы
113
Может быть ещё внутреннее ограничение - проверка на сервере, что выше какого-то значения не получится отправить. Попробуй отправить для теста сначала 2, а потом по нарастающей.
 

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 236
Благодарностей
804
Баллы
113
Так это из разряда "Я получаю 50к, но когда прийду в бухгалтерию, скажу что 500к"
 

Castaneda

Client
Регистрация
24.05.2019
Сообщения
840
Благодарностей
282
Баллы
63
Может быть ещё внутреннее ограничение - проверка на сервере, что выше какого-то значения не получится отправить. Попробуй отправить для теста сначала 2, а потом по нарастающей.
пробовал. Такая же ошибка.

Так это из разряда "Я получаю 50к, но когда прийду в бухгалтерию, скажу что 500к"
не спамь.
 

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 184
Благодарностей
823
Баллы
113

Castaneda

Client
Регистрация
24.05.2019
Сообщения
840
Благодарностей
282
Баллы
63
Тогда ещё где-то рядом передаётся хэш, по которому проверяется правильность данных
ну судя по всему это он и есть:

Firebase-Instance-Id-Token: c9iPAGuMWkeBhTj_-nJtMb:APA91bEZUKbOBC-NzFAcNjRCVWyrsvP1-yg20D2POz78Kjcd_LUJ6x8-FFvwaS3VX8Lz3146uDb_PSlM-Ap1xF4R2Tuy2gp8QnsNYeWHeTbLWlcjwfFpaljouMp5eQ3tAaJ7F-Kxh6GJ
 

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 184
Благодарностей
823
Баллы
113
ну судя по всему это он и есть:

Firebase-Instance-Id-Token: c9iPAGuMWkeBhTj_-nJtMb:APA91bEZUKbOBC-NzFAcNjRCVWyrsvP1-yg20D2POz78Kjcd_LUJ6x8-FFvwaS3VX8Lz3146uDb_PSlM-Ap1xF4R2Tuy2gp8QnsNYeWHeTbLWlcjwfFpaljouMp5eQ3tAaJ7F-Kxh6GJ
Firebase-Instance-Id-Token - это точно не то.
Может быть там вообще не предусмотрено получение за раз количества этих гифтов больше чем 1? Т.е. в логике предусмотрено, что можно получить только 1 и всё что отличается от 1 будет выдавать ошибку. Ну или если всё-таки можно за раз получить их 2 штуки, то отлови запрос где передаётся количество 2 и сравни чем будут отличаться запросы.
 
Последнее редактирование:

Nord

Client
Регистрация
22.03.2012
Сообщения
2 375
Благодарностей
1 435
Баллы
113
Получи 10 уровней и отснифай, что передает. Или 10 - нереально? Может по этому и не получается?
 

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 236
Благодарностей
804
Баллы
113
А может сервер говорит(знает, отправляет в приложение) изначально сколько ты получил, и нет смысла ему доказывать другое?) Вы реально верите что в 2024 году есть приложения, которые генерируют такую инфу на стороне клиента?) Я думаю что лет 15 уже такого нет.
 

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 184
Благодарностей
823
Баллы
113
Вы реально верите что в 2024 году есть приложения, которые генерируют такую инфу на стороне клиента?) Я думаю что лет 15 уже такого нет.
Да есть такое и всегда будет. Практически во всех приложениях есть уязвимости. Если глубже копнуть, то можно очень удивиться какие незакрытые дыры бывают.
 
  • Спасибо
Реакции: Dmitriy Ka

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
545
Благодарностей
300
Баллы
63
А может сервер говорит(знает, отправляет в приложение) изначально сколько ты получил, и нет смысла ему доказывать другое?) Вы реально верите что в 2024 году есть приложения, которые генерируют такую инфу на стороне клиента?) Я думаю что лет 15 уже такого нет.
Есть конечно, сам лично находил такие прилки, где можно было проснифать запросы и напрямую в БД кидать свои данные :D
 

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 236
Благодарностей
804
Баллы
113
Ну тогда моя шутка про артманию - не шутка:-)
 

Castaneda

Client
Регистрация
24.05.2019
Сообщения
840
Благодарностей
282
Баллы
63
Получи 10 уровней и отснифай, что передает. Или 10 - нереально? Может по этому и не получается?
Firebase-Instance-Id-Token - это точно не то.
Может быть там вообще не предусмотрено получение за раз количества этих гифтов больше чем 1? Т.е. в логике предусмотрено, что можно получить только 1 и всё что отличается от 1 будет выдавать ошибку. Ну или если всё-таки можно за раз получить их 2 штуки, то отлови запрос где передаётся количество 2 и сравни чем будут отличаться запросы.
request:
POST /level-start HTTP/2
Host: europe-west1.cloudfunctions.net
Authorization: Bearer token
Firebase-Instance-Id-Token: c9iPAGuMQkeBcTj_-nJtMb:APA91bEZUKbOBC-NzFAcNjRCVWyrsvP1-yg20D2POz78Kjcd_LUJ6x8-FFvwaS3VX8Lz3146uDb_PSlM-Ap1xF4R2Xuy2gp8QnsNYeWNeTbLWlcjwfFpaljpuMp5eQ3tAaJ7F-Kxh8GP
Content-Type: application/json; charset=utf-8
Content-Length: 91
Accept-Encoding: gzip, deflate, br
User-Agent: okhttp/3.12.13

{"data":{"level":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"11"}}}
response:
HTTP/2 200 OK
Vary: Origin
Content-Type: application/json; charset=utf-8
X-Cloud-Trace-Context: 98d72d7e05db4cf12a8645ce7c173t31
Date: Tue, 09 Apr 2024 14:30:21 GMT
Server: Google Frontend
Content-Length: 154
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000

{"result":{"error":false,"message":"OK","code":0,"data":{"level":11,"config":{"id":11,"top":{"a":2,"b":2,"c":0,"d":0},"down":{"a":4,"b":0,"c":0,"d":0}}}}}
request:
POST /level-finish HTTP/2
Host: europe-west1.cloudfunctions.net
Authorization: Bearer
Firebase-Instance-Id-Token: c9iIAGuMgkeBcTj_-nJtMb:APA91yEZUKbOBC-NzFAcNjRCVnyrsvP1-yg20D2POz78Kjcd_LUJ6x8-FFvwaS3VX8Lz3146uDb_PSlM-Ap1xF4R2Xuy2gp8QnsNYeWNeTbLWlcjwfFpaljpuMp5eQ3tAaJ7F-Kxh8GP
Content-Type: application/json; charset=utf-8
Content-Length: 804
Accept-Encoding: gzip, deflate, br
User-Agent: okhttp/3.12.13

{"data":{"level":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"11"},"gifts":{"top":{"a":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"b":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"c":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"d":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"}},"id":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"11"},"down":{"a":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"b":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"c":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"d":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"}}}}}
response:
HTTP/2 200 OK
Vary: Origin
Content-Type: application/json; charset=utf-8
X-Cloud-Trace-Context: d5ba7b4f814bdd72d5be17e560928765
Date: Tue, 09 Apr 2024 14:30:42 GMT
Server: Google Frontend
Content-Length: 431
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000

{"result":{"error":false,"message":"","data":{"profile":{"id":"73pKIhECItcKaJa8u7z4AKxdYnd8","created_at":{"_nanoseconds":624000000,"_seconds":1712667495},"name":"player_4383","xp":0,"keys_total":0,"keys":0,"max_level":11,"lastPlayed_at":{"_seconds":1712673088,"_nanoseconds":737000000},"lastPlayed_level":11,"gifts":{"a":23,"b":1,"c":0,"d":0,"e":0},"total_boxes":0,"rank_last":100000,"rating":100000,"country":"UA","lang":"uk"}}}}
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
545
Благодарностей
300
Баллы
63
Могу предположить, что из этого запроса мы получаем инфу об уровне

C#:
HTTP/2 200 OK
Vary: Origin
Content-Type: application/json; charset=utf-8
X-Cloud-Trace-Context: 98d72d7e05db4cf12a8645ce7c173t31
Date: Tue, 09 Apr 2024 14:30:21 GMT
Server: Google Frontend
Content-Length: 154
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000

{"result":{"error":false,"message":"OK","code":0,"data":{"level":11,"config":{"id":11,"top":{"a":2,"b":2,"c":0,"d":0},"down":{"a":4,"b":0,"c":0,"d":0}}}}}
Здесь видим: "top":{"a":2,"b":2,"c":0,"d":0}
Рассмотрим А=2 и B=2

Поэтому в запросе на завершение уровня, скорей всего мы можем поменять нули на А=2 и B=2 и не поймаем ошибку, но это не точно :-)

C#:
POST /level-finish HTTP/2
Host: europe-west1.cloudfunctions.net
Authorization: Bearer
Firebase-Instance-Id-Token: c9iIAGuMgkeBcTj_-nJtMb:APA91yEZUKbOBC-NzFAcNjRCVnyrsvP1-yg20D2POz78Kjcd_LUJ6x8-FFvwaS3VX8Lz3146uDb_PSlM-Ap1xF4R2Xuy2gp8QnsNYeWNeTbLWlcjwfFpaljpuMp5eQ3tAaJ7F-Kxh8GP
Content-Type: application/json; charset=utf-8
Content-Length: 804
Accept-Encoding: gzip, deflate, br
User-Agent: okhttp/3.12.13

{"data":{"level":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"11"},"gifts":{"top":{"a":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"b":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"c":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"d":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"}},"id":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"11"},"down":{"a":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"b":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"c":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"},"d":{"@type":"type.googleapis.com\/google.protobuf.Int64Value","value":"0"}}}}}
Лайфхак, как проверить игру на взлом, если в игре есть рейтинги и там запредельные цифры, значит игру точно можно ломать))
 

Castaneda

Client
Регистрация
24.05.2019
Сообщения
840
Благодарностей
282
Баллы
63
Всем спасибо) игра побеждена. Никакой защиты там нет, кроме элементарной логики
 

slavyn8213

Client
Регистрация
28.10.2018
Сообщения
173
Благодарностей
39
Баллы
28

Castaneda

Client
Регистрация
24.05.2019
Сообщения
840
Благодарностей
282
Баллы
63
так что подменил? в чем была проблема?
в том, что на стороне сервера прописано что может произойти на уровне. Условно ты не можешь получить +1000 опыта на уровне, где максимум 10
 
  • Спасибо
Реакции: slavyn8213 и Dr.Pipetka

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)