• XSS.stack #1 – первый литературный журнал от юзеров форума

Веб формы android

leeex

CD-диск
Пользователь
Регистрация
12.12.2018
Сообщения
13
Реакции
9
Как из простого сделать что нибудь классное, на самом деле клиенты очень часто нам предлагают на первый взгляд безумные вещи и из-за большой загруженности мы их просто сразу отсекаем но что если остановится и попробовать. Вот так и я подумал а что если. Заказ был следующим бот должен был открыть страницу браузера и вбить данные затем перейти на страницу оплаты и вбить СС. Где то пару дней я соображал как все сделать четко чтоб и работало на всех ботах и разрешений не нужно было и тут меня осенило в WebView же можно передавать нужные параметры, заполнять формы,кликать.
По сути по мимо того что мы можем заполнить нужные нам формы мы можем еще кликать по батанам (кнопки).
Кто то сейчас сидит и думает нафига можно же post запросом передать, так подумал и я, но когда передаешь 80 параметров + часть из них меняется думаю не стоит объяснять, плюс задача была имитировать действия реального пользователя.
И так задача была вбить в booking, начну я пример со второй страницы, общее число страниц три, и на ней же закончу.

1KuATOL.jpeg


Вот пример второй страницы

Далее нам нужно найти элемент id или нейм элемент

O71rX6U.jpeg


Как мы можем видеть нужный нам элемент называется "lastname" .
Первая строка js "javascript:document.getElementById('lastname').value='Leeex';".
Тут нужный на id lastname и значение Leeex это то что мы заносим в форму наш текст
Позднее скину эту часть кода.
Скрины всех форм я скидывать не буду думаю смысл понятен.
Сделаем клик по кнопке.
JugN8dP.jpeg



Кликаем по submit js код "bookForm.submit();"
Таким образом мы заполнили нужные нам поля и кликнули по кнопки и перешли на страницу вбива СС.
Часть кода данной страницы
Код:
public class Boockone extends Activity {
    private Context mContext;
    private Activity mActivity;
    private LinearLayout mRootLayout;
    private WebView mWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    Task();
}
    private void Task() {
        try {
            Intent intent = getIntent();
            final String Link = intent.getStringExtra("Link");
            mContext = getApplicationContext();
            mActivity = Boockone.this;

            mRootLayout = (LinearLayout) findViewById(R.id.root_layout);
            mWebView = (WebView) findViewById(R.id.web_view);
            mWebView.loadUrl(Link);
            mWebView.getSettings().setDomStorageEnabled(true); //для страницы номер 3
            mWebView.getSettings().setJavaScriptEnabled(true);
        
            mWebView.setWebChromeClient(new WebChromeClient());
            final String js = "javascript:document.getElementById('lastname').value='Leeex';"
                    + "javascript:document.getElementById('email').value='testscsd@gmail.com';"
                    + "javascript:document.getElementById('phone_number').value='1111111111';"
                    + "bookForm.submit();";
           //вторая страница
            mWebView.setWebViewClient(new WebViewClient() {
                public void onPageFinished(WebView view, String url) {
                    if (Build.VERSION.SDK_INT >= 19) {
                        view.evaluateJavascript(js, new ValueCallback<String>() {
                            @Override
                            public void onReceiveValue(String s) {
                            }
                        });
                    }
                }

Надеюсь статья вам понравилась. Всем мир!
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх