0

ログインシステムを解読するために、C# でブルートフォース攻撃を一時 Web ページに実装するコードを作成しようとしています。このようなもの:

private void buttonHack_Click(object sender, EventArgs e)
    {
        while (!found)
        {
            textBox_pw.Text = guess;
            guesser.NextGuess();

            webBrowser1.Document.GetElementById("user_id").SetAttribute("value", textBox_ID.Text);
            webBrowser1.Document.GetElementById("password").SetAttribute("value", textBox_pw.Text);
            webBrowser1.Navigate("javascript:enter();");

            guess = new String(guesser.CurrentGuess);
        }
    }

// 'guess' と 'guesser' は BF アタック用です。

しかし、どうやら WebBrowser は、内部で呼び出されたメソッドが返されるまで「起動」しません。while ループ内の部分を Webbrowser_DocumentCompleted イベントに入れようとしたので、文字通りループします (ページの読み込みが完了すると、同じことを何度も繰り返します...)。しかし、この方法には次のような問題がありました。ページドキュメントはすぐに完成し、残りのコードをスキップして DocumentCompleted メソッドの先頭に移動し、結果として奇妙になります!!! それで、それを修正する方法はありますか?

4

2 に答える 2

2

一般に、ブルート フォース攻撃は Web ページ自体を操作することによってではなく、資格情報の検証を行うサーバーへのトラフィックを生成することによって行われます (もちろん、単純な JavaScript コードのレビューで十分なクライアントで検証している場合を除きます)。 .

WebBroser コントロールとサーバーとの対話を模倣するコードが記述されています (SSL で保護されたトラフィックを利用するため)。

于 2012-04-04T16:36:57.197 に答える
0

.Navigate は非同期メソッドであるため、このようなループは実行できません。ブラウザ コントロールの DocumentCompleted イベントをサブスクライブし、そこで作業を行う必要があります。

また、.Navigate が javascipt: の場所を取るかどうかもわかりません。

于 2012-04-04T16:20:36.587 に答える