我正在尝试在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方法的顶部,结果很奇怪! 那么如何解决它的任何巧妙的想法?
答案 0 :(得分:2)
通常,Brute-Force攻击不是通过操纵网页本身来完成的,而是通过为进行凭证验证的服务器生成流量(当然,除非您在客户端验证,否则简单的javascript代码审查)就足够了。)
编写的代码模仿了webbroser控件与服务器的交互(为了利用受SSL保护的流量)。
答案 1 :(得分:0)
你不能这样做一个循环,因为.Navigate是一个异步方法。您需要在brwoser控件上订阅DocumentCompleted事件并在那里完成工作。
另外,我不确定.Navigate将采取javascipt:location。