0

我正在尝试用 C# 编写代码,对我的临时网页实施蛮力攻击,以尝试破解登录系统。像这样的东西:

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 事件中,这样它就会真正循环(当页面加载完成时,然后一次又一次地做同样的事情......)但是这种方式有它的问题,比如 if页面文档快速完成,然后它跳过其余代码并转到 DocumentCompleted 方法的顶部,结果很奇怪!!!那么任何巧妙的想法如何解决它?

4

2 回答 2

2

通常,蛮力攻击不是通过操纵网页本身来完成的,而是通过向执行凭据验证的服务器生成流量来完成(当然,除非您在客户端上进行验证,在这种情况下,简单的 javascript 代码审查就足够了) .

编写的代码模拟了网络浏览器控件与服务器的交互(以利用受 SSL 保护的流量)。

于 2012-04-04T16:36:57.197 回答
0

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

另外,我不确定 .Navigate 是否会采用 javascipt: 位置。

于 2012-04-04T16:20:36.587 回答