方法内部的C#Fire Webbrowser
本文关键字:Webbrowser C#Fire 内部 方法 | 更新日期: 2023-09-27 18:30:05
我正在尝试用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"answers"guesser"用于BF攻击。
但显然,WebBrowser在返回内部调用的方法之前不会"激发"。我曾尝试将while循环中的部分放入Webbrowser_DocumentCompleted事件中,这样它就可以真正地循环(就像页面加载完成后一次又一次地重复一样…)但这种方式也有问题,比如如果页面文档完成得很快,那么它就会跳过其余代码,转到DocumentCompleted方法的顶部,结果很奇怪!!!那么,有什么巧妙的解决方法吗?
通常,Brute Force攻击不是通过操纵网页本身来完成的,而是通过生成到进行凭据验证的服务器的流量来完成的(当然,除非您在客户端上进行验证,在这种情况下,简单的javascript代码审查就足够了)。
编写的代码模仿webbroser控件与服务器的交互(以便利用SSL保护的流量)。
您不能执行这样的循环,因为Navigate是一个异步方法。您需要订阅brwoser控件上的DocumentCompleted事件,并在那里完成工作。
另外,我不确定Navigate是否会使用javascipt:location。