PhantomJS或CasperJS表单自动提交

时间:2018-07-20 09:36:44

标签: phantomjs casperjs

我正在为利用CSRF漏洞建立实验室任务。 我需要一个机器人,该机器人将访问我的页面并执行JS:

<html>
<head>
</head>
  <body>
    <form action="http://localhost:9010/csrf/register.php" method="POST" id="csrf-form">
      <input type="hidden" name="login" value="casper" />
      <input type="hidden" name="password" value="casper" />
      <input type="submit" value="Submit request"/>
    </form>
  </body>
  <script>document.getElementById("csrf-form").submit()</script>
</html>

我无法使用PhantomJS或CasperJS进行处理。 我不知道不同学生的HTML代码看起来如何(表单id属性可以不同),我只想在页面上执行JS代码。 使用phantomjs版本2.1.1的/ opt / casperjs中的CasperJS版本1.1.4

var casper = require('casper').create();
casper.start('http://127.0.0.1/mypage.html');

1 个答案:

答案 0 :(得分:0)

由于您不知道表单id属性(并且每个学生都具有其他元素属性),因此可以使用casper.fillXPath()使用常规选择器填写并自动提交表单

示例:

casper.start('https://example.com/', function () {
  this.fillXPath('form', {
    '//form/input[@type="hidden"][1]': username,
    '//form/input[@type="hidden"][2]': password,
  }, true);
});

否则,如果您了解有关表单中使用的选择器的更多信息,则可以使用casper.fill()casper.fillSelectors()casper.fillLabels()

如果您只需要在Page DOM环境中执行JavaScript,则可以使用casper.evaluate()