C#Fire Webbrowser里面的一个方法

时间:2012-04-04 16:12:02

标签: c# .net browser

我正在尝试在C#中编写代码,该代码对我的临时网页实施Brute-Force Attack,以便尝试破解登录系统。 像这样:

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);
        }
    }

//'猜'和'猜猜'是针对BF攻击的。

但显然WebBrowser在其内部调用的方法返回之前不会“触发”。我试图将while循环中的部分放入Webbrowser_DocumentCompleted事件中,这样它就会循环(就像页面加载完成时一样又一次地做同样的事情......)但是这种方式有它的问题,比如if页面文档快速完成然后它跳过其余的代码并转到DocumentCompleted方法的顶部,结果很奇怪! 那么如何解决它的任何巧妙的想法?

2 个答案:

答案 0 :(得分:2)

通常,Brute-Force攻击不是通过操纵网页本身来完成的,而是通过为进行凭证验证的服务器生成流量(当然,除非您在客户端验证,否则简单的javascript代码审查)就足够了。)

编写的代码模仿了webbroser控件与服务器的交互(为了利用受SSL保护的流量)。

答案 1 :(得分:0)

你不能这样做一个循环,因为.Navigate是一个异步方法。您需要在brwoser控件上订阅DocumentCompleted事件并在那里完成工作。

另外,我不确定.Navigate将采取javascipt:location。