Android: Запит HTTP-запитів за допомогою невкоріненого пристрою Android


88

У мене є програма для Android, яка використовує сторонній jar. Http-запит надсилається із сторонніх jar на сервер під час запуску програми. Мені потрібно захопити HTTP-запит, який надсилається із сторонніх jar. Мені цікаво, чи існує простий спосіб реалізації за допомогою некореневого пристрою

Для запуску: я спробував завантажити "proxyDroid", але для цього потрібен кореневий телефон. Я також спробував завантажити "акулу для кореня" за допомогою "програми для читання акул", яка також потребує вкоріненого пристрою. є корінним пристроєм

Мені потрібно щось, що fiddler / wireshark може зробити для Windows. Аналізатор мережевих пакетів, який можна легко інтегрувати з додатком Android, який може надати об'єкт запиту з усіма полями заголовка в ньому.


Це ваш "додаток для android"?
CommonsWare

Так, моя програма для android
Venkatesh

Привіт @Venkatesh, чи вдалося вам коли-небудь успішно перехопити http-запити з невкоріненим Android?

@lalalalalala Ні. Я не зміг досягти цього за допомогою некореневого пристрою.
Венкатеш

Відповіді:


78

Ви можете встановити Charles - проксі-сервер HTTP / монітор HTTP / зворотний проксі-сервер, який дозволяє розробнику переглядати весь трафік HTTP та SSL / HTTPS між їх машиною та Інтернетом - на вашому ПК або MAC.

Крок налаштування:

  • Нехай ваш телефон і ПК або MAC будуть в одній локальній мережі
  • Запустіть Charles, який ви встановили (проксі-порт за замовчуванням - 8888)
  • Налаштування Wi-Fi конфігурації телефону: встановіть ip делегат на ваш ПК або ip MAC, порт делегата на 8888
  • Запустіть свій додаток у свій телефон. І відстежувати http-запити на Чарльза.

4
цей підручник працював добре: jaanus.com/blog/2012/02/12/…
Лайонел

18
На жаль, це умовно-безкоштовна програма.
flawyte

1
Ви можете спробувати альтернативно відригувати пакет, щоб виконати ту ж роботу. Це дуже потужний і безкоштовний: portswigger.net/burp
gerodim

Чи є якийсь інструмент зробити те саме з трафіком веб-сокетів? Я маю на увазі на самому android. (Я знаю wireshark / fiddler для ПК)
Amol M Kulkarni

Що таке для Android
mohsen

17

Я щойно встановив Drony, не є умовно-умовною програмою, і для нього не потрібен root на мобільному телефоні з Android 3.x або вище

https://play.google.com/store/apps/details?id=org.sandroproxy.drony

Він перехоплює запити та відображається у ЛОГАПІ


Це те, що я шукаю, але я хочу точний вихідний код для цього додатка. Чи можете ви розмістити посилання на вихідний код для Android?
Smit.Satodia

2
@ Smit.Satodia Я не знаю, чи діляться вони / публікують вихідний код, чи хтось вважає, що не соромтеся розміщувати посилання як коментар
Маурісіо Грасія Гутьєррес

2
Вихідний код можна знайти тут: github.com/SuppSandroB/sandrop Спочатку він розміщувався на Google Code тут: code.google.com/archive/p/sandrop
GabLeRoux

1
@JanWytze, якщо ви зв’яжетеся з розробниками, можливо, вони можуть вам у цьому допомогти.
Mauricio Gracia Gutierrez

17

Існує багато способів зробити це, але один із них - скрипаль

Конфігурація скрипаля

  1. Перейдіть до опцій
  2. На вкладці HTTPS увімкніть Capture HTTPS Connections та розшифруйте трафік HTTPS
  3. На вкладці Підключення увімкніть Дозволити віддаленим комп’ютерам підключатися
  4. Перезапустіть скрипк

Конфігурація Android

  1. Підключіться до тієї самої мережі
  2. Змінення мережевих налаштувань
  3. Додайте проксі-сервер для підключення до IP-адреси вашого ПК (або імені хосту) та порту скрипта за замовчуванням (8888 / ви можете змінити це в налаштуваннях)

Тепер ви можете побачити повний журнал з вашого пристрою в скрипті

Також ви можете знайти повну інструкцію тут


2
Fiddler beta доступний на macOS (покладаючись на моно). Це хороша новина, якщо у вас немає ПК.
МакКентох

Дякую, але я маю на увазі всі комп’ютери у цій відповіді. ПК / ноутбук / тощо ... :) @MacKentoch
Arash Hatami

6

Ви можете використовувати скрипт як веб- налагоджувач http://www.telerik.com/fiddler/web-debugging

Fiddler - це інструмент налагодження програмного забезпечення telerik, який допомагає перехопити кожен запит, ініційований з вашої машини.


4
Хоча це посилання може відповісти на питання, краще включити сюди основні частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо сторінка, на яку пов’язано, зміниться
zohar 02.03.15

5

Зараз 2020 рік, для останнього рішення ви можете використовувати Burp Suite, щоб нюхати https-трафік, не вкорінюючи пристрій Android.

Кроки:

  1. Встановіть Burp Suite

  2. Увімкнути проксі

  3. Імпортуйте сертифікацію у свій телефон Android

  4. Змініть конфігурацію Wi-Fi на прослуховування проксі

  5. Прибуток!

Повний посібник та знімок екрана про те, як це зробити, я написав тут: https://www.yodiw.com/monitor-android-network-traffic-with-burp/


Було б непогано скопіювати дані з сайту, щоб ви відповіли тут. Оскільки ваш сайт може знизитися. Також SO заохочує цитувати, а не посилання з цієї ж причини. Крім цього чудового підручника.
Марк

Хоча, щоб бути справедливим, можливо, було б краще просто покращити stackoverflow.com/a/39684919/5506988, ніж писати чергову "відповідь" .... У будь-якому разі чудова робота.
Марк

4

Ви можете використовувати відрижку. виконайте наведену нижче процедуру.

Налаштуйте прослуховувач Burp Proxy

У Burp перейдіть на вкладку «Проксі», а потім на вкладку «Параметри». У розділі «Слухачі проксі» натисніть кнопку «Додати».

На вкладці «Прив’язка» у полі «Прив’язати до порту:» введіть номер порту, який наразі не використовується, наприклад «8082». Потім виберіть опцію «Усі інтерфейси» та натисніть «ОК».

Налаштуйте пристрій на використання проксі-сервера

На своєму пристрої Android перейдіть до меню «Налаштування».

Якщо ваш пристрій ще не підключений до бездротової мережі, яку ви використовуєте, увімкніть кнопку "Wi-Fi" і натисніть кнопку "Wi-Fi", щоб отримати доступ до меню "Wi-Fi".

У таблиці "Мережі Wi-Fi" знайдіть свою мережу та торкніться її, щоб відкрити меню підключення.

Натисніть "Підключити". Якщо ви налаштували пароль, введіть його та продовжуйте.

Після підключення натисніть і утримуйте кнопку мережі, щоб відкрити контекстне меню. Натисніть «Змінити конфігурацію мережі».

Переконайтеся, що встановлено прапорець «Показати розширені параметри».

Змініть “Параметри проксі” на “Вручну”, натиснувши кнопку.

Потім введіть IP-адресу комп’ютера, на якому запущена система Burp, у “Ім'я хоста проксі”. Введіть номер порту, налаштований у розділі “Слухачі проксі” раніше, у цьому прикладі “8082”. Натисніть “Зберегти”.

Перевірте конфігурацію

У Burp перейдіть на вкладку "Перехоплення проксі" і переконайтеся, що перехоплення увімкнено (якщо на кнопці написано "Перехоплення вимкнено", натисніть її, щоб змінити стан перехоплення).

Відкрийте браузер на своєму пристрої Android і перейдіть на веб-сторінку HTTP (ви можете відвідати веб-сторінку HTTPS, коли встановите сертифікат CA Burp на своєму пристрої Android).

Запит повинен бути перехоплений у Burp.


2

SandroProxy здається кращим за Drony (того самого розробника): Ви можете (але не обов'язково) зручно переглядати та аналізувати трафік у браузері свого ПК.

Повинна працювати і в емуляторах.


1

Встановіть https://mitmproxy.org/ як проксі-сервер в тій же локальній мережі

  • Відкрите джерело
  • Вбудований в python 3
  • Встановлюється через pip
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.