JavaScript暴力成为Web表单

时间:2011-07-16 05:19:42

标签: javascript webforms brute-force

enter image description here

  

在答案框的正上方,错误的尝试会出现错误   说“答复不正确”。此外,我们有无限数量的   尝试。

以上是包含详细信息的网站预览。

代码:

<form id="level" method="post"> 
    <label for="answer">Answer:</label> 
    <input type="text" name="answer" id="answer" /> 
    <input type="submit" name="submit" id="submit" value="Submit" /> 
</form>

所以我们在这里简单地知道表单没有动作源。 唯一的方法(我知道)是破解javascript。 就像过去常常用Facebook和Orkut垃圾邮件一样,我们必须在URI中添加javascript,地址栏。

我已经构建了一个javascript(用于地址栏)以链接到其他javascript文件。

我想知道你天才的一些提示和技巧(顺便提前谢谢,我知道你们非常慷慨)

如果有人知道某些在线javascript暴力脚本或可以通过javascript链接的在线内容。

3 个答案:

答案 0 :(得分:6)

尽管我不想告诉别人如何做这类事情,但这是一个有趣的问题。

但是,我应首先说,蛮力解决方案可能需要很长时间才能实用。如果解决方案是8个字符长,并且我们每秒尝试100万个可能性(非常乐观的假设),那么尝试所有可能性需要大约5年。

尽管如此,这里有一些您应该能够修改以满足您需求的Javascript代码:

var chars = ["a","b","c","d","e","f","g","h","i","j,","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"," "];
while(document.getElementById("answerResult").innerHtml != "Correct Answer"){
  var len = Math.floor(Math.random() * 20);
  var str = "";
  while(str.length < len){
    str += chars[Math.floor(Math.random() * chars.length)];
  }
  document.getElementId("answer").value = str;
  document.getElementById("level").submit();
}

此解决方案实际上并不使用蛮力。它实现了类似于bogosort的方法。虽然更有趣和简单,但完成可能需要更长的时间。如果你是一个非常幸运的人,它可能会在第一次迭代时解决。

答案 1 :(得分:0)

您需要找到它所连接的脚本。使用此http://blog.getfirebug.com/2009/10/30/event-listener-view-for-firebug/查看与按钮关联的事件侦听器。您可能还需要为firefox https://addons.mozilla.org/en-US/firefox/addon/javascript-deobfuscator/

下载javascript deobfuscator插件

答案 2 :(得分:0)

static String seqToken(long value) {
        String[] digitsAlpabets = { "a", "b", "c", "d", "e", "f", "g", "h",
                "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
                "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",
                "6", "7", "8", "9" };

        int codePoint = (int) (--value % 36);
        long higher = value / 36;
        String letter = digitsAlpabets[codePoint];
        return higher == 0 ? letter : seqToken(higher).concat(letter);
    }

根据需要更改字符集并相应地使用大小 获取序列生成器。