Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CSRFTester未生成html文件_Java_Security_Web Applications_Csrf_Csrf Protection - Fatal编程技术网

Java CSRFTester未生成html文件

Java CSRFTester未生成html文件,java,security,web-applications,csrf,csrf-protection,Java,Security,Web Applications,Csrf,Csrf Protection,我目前正处于第一个合作期,我的任务之一是检查我们的部分web应用程序是否存在CSRF漏洞 我使用过OWASP和许多其他安全站点推荐的CSRFTester。 我已经能够为我们的一个web应用程序捕获数据并使用脚本“生成HTML”文件 但是,当在我们拥有的另一个web应用程序上执行相同的测试时(其中实现了防伪令牌),CSRFTester不会生成html文件 控制台输出是我在下面发布的 我的问题是,我是否无法生成html,因为防伪令牌正在工作?还是因为我错过了什么 Exception in threa

我目前正处于第一个合作期,我的任务之一是检查我们的部分web应用程序是否存在CSRF漏洞

我使用过OWASP和许多其他安全站点推荐的CSRFTester。 我已经能够为我们的一个web应用程序捕获数据并使用脚本“生成HTML”文件

但是,当在我们拥有的另一个web应用程序上执行相同的测试时(其中实现了防伪令牌),CSRFTester不会生成html文件

控制台输出是我在下面发布的

我的问题是,我是否无法生成html,因为防伪令牌正在工作?还是因为我错过了什么

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException:
 1
        at org.owasp.csrftester.report.ReportAdapter.getParametersAsHtmlInput(Re
portAdapter.java:74)
        at org.owasp.csrftester.report.ReportAdapter.getParametersAsHtmlInput(Re
portAdapter.java:41)
        at org.owasp.csrftester.report.FormsReport.getFormHtml(FormsReport.java:
55)
        at org.owasp.csrftester.report.FormsReport.generateHtml(FormsReport.java
:31)
        at org.owasp.csrftester.CSRFTesterUI.testButtonActionPerformed(CSRFTeste
rUI.java:772)
        at org.owasp.csrftester.CSRFTesterUI.access$14(CSRFTesterUI.java:751)
        at org.owasp.csrftester.CSRFTesterUI$15.actionPerformed(CSRFTesterUI.jav
a:319)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)

在我看来,这就像CSRFTester中的一个bug

我找不到源.java文件,但我们可以从这个项目的Google代码存档中反编译.class文件(例如使用)

不幸的是,行号不匹配,但它可能在
对[0]
部分[i].split(“=”[1]
)或类似的未检查数组索引调用中失败:

protected String getParametersAsHtmlInput(CSRFTesterModel model, int row,
  boolean isString) {
  String s = model.getParameters(row);
  String[] parts = s.split("&");
  StringBuffer sb = new StringBuffer();
  if ((s == null) || (s.length() == 0)) {
    if (isString) {
      sb.append("'<input type=\"hidden\" name=\"name\" value=\"value\"/>' \r\n");
    } else {
      sb.append("<input type=\"hidden\" name=\"name\" value=\"value\"/> \r\n");
    }
  }
  else if (parts.length == 1) {
    String[] pair = parts[0].split("=");
    if (isString) {
      sb.append("'<input type=\"hidden\" name=\"" + pair[0] 
        + "\" value=\"" + pair[1] + "\"/>' \r\n");
    } else {
      sb.append("<input type=\"hidden\" name=\"" + pair[0] 
        + "\" value=\"" + pair[1] + "\"/> \r\n");
    }
  }
  else {
    for (int i = 0; i < parts.length; i++) {
      String name = parts[i].split("=")[0];
      String value = parts[i].split("=").length == 1 ? "" : parts[i].split("=")[1];
      if (isString) {
        sb.append("'<input type=\"hidden\" name=\"" + name 
          + "\" value=\"" + value + "\"/>'");
      } else {
        sb.append("<input type=\"hidden\" name=\"" + name 
          + "\" value=\"" + value + "\"/>");
      }
      if ((i + 1 < parts.length) && (isString)) {
        sb.append(" + \r\n");
      } else {
        sb.append("\r\n");
      }
    }
  }
  return sb.toString();
}
受保护字符串getParametersAsHtmlInput(CSRFTesterModel模型,int行,
布尔值(isString){
字符串s=model.getParameters(行);
字符串[]部分=s.split(&);
StringBuffer sb=新的StringBuffer();
如果((s==null)| |(s.length()==0)){
如果(isString){
sb.追加(“''\r\n”);
}否则{
sb.追加(“\r\n”);
}
}
否则如果(parts.length==1){
字符串[]对=部分[0]。拆分(“”);
如果(isString){
sb.追加(“''\r\n”);
}否则{
sb.追加(“\r\n”);
}
}
否则{
对于(int i=0;i
老实说,考虑到project page的最后一次更新是在2014年7月,Google代码是在2015年3月,这个OWASP工具看起来有点被抛弃了

我希望我能推荐一个更好的CSRF工具,但我从未使用过CSRFTester或任何其他CSRF测试应用程序