Skip to content

Commit

Permalink
BurpCommon修正対応
Browse files Browse the repository at this point in the history
  • Loading branch information
isayan committed Mar 12, 2023
1 parent 26e2eda commit 9dbbd91
Show file tree
Hide file tree
Showing 8 changed files with 91 additions and 40 deletions.
Binary file modified libs/BurpExtensionCommons-v3.0.1.0.jar
Binary file not shown.
Binary file added release/YaguraExtension-v3.0.jar
Binary file not shown.
1 change: 0 additions & 1 deletion src/main/java/yagura/view/AutoResponderItemDlg.form
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,6 @@
</Component>
<Component class="javax.swing.JCheckBox" name="chkRegExp">
<Properties>
<Property name="selected" type="boolean" value="true"/>
<Property name="text" type="java.lang.String" value="RegExp"/>
</Properties>
</Component>
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/yagura/view/AutoResponderItemDlg.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import extend.util.external.TransUtil;
import extension.helpers.HttpUtil;
import extension.helpers.SwingUtil;
import extension.view.base.CustomDialog;
import java.util.logging.Logger;
Expand Down Expand Up @@ -114,7 +115,6 @@ public void actionPerformed(java.awt.event.ActionEvent evt) {
}
});

chkRegExp.setSelected(true);
chkRegExp.setText("RegExp");

btnSelectExecute.setIcon(new javax.swing.ImageIcon(getClass().getResource("/yagura/resources/folder_image.png"))); // NOI18N
Expand Down Expand Up @@ -238,7 +238,9 @@ private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:e
String mime = TransUtil.toEmpty(this.cmbContentType.getEditor().getItem());
if (item.getMatch().isEmpty()) {
JOptionPane.showMessageDialog(this, BUNDLE.getString("view.responder.repmatch.empty"), "AutoResponder", JOptionPane.INFORMATION_MESSAGE);
} else if (!item.isValidRegex()) {
} else if (!item.isRegexp() && item.isValidRegex() && !HttpUtil.isValidUrl(item.getMatch())) {
JOptionPane.showMessageDialog(this, BUNDLE.getString("view.responder.match.invalid.url"), "AutoResponder", JOptionPane.INFORMATION_MESSAGE);
} else if (item.isRegexp() && !item.isValidRegex()) {
JOptionPane.showMessageDialog(this, BUNDLE.getString("view.responder.repmatch.regex"), "AutoResponder", JOptionPane.INFORMATION_MESSAGE);
} else if (item.isBodyOnly() && mime.isEmpty()) {
JOptionPane.showMessageDialog(this, BUNDLE.getString("view.responder.mime.empty"), "AutoResponder", JOptionPane.INFORMATION_MESSAGE);
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/yagura/view/CertificateTab.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package yagura.view;

import burp.BurpPreferences;
import extension.helpers.CertUtil;
import extend.util.external.BouncyUtil;
import extension.burp.BurpConfig;
Expand Down Expand Up @@ -446,8 +447,8 @@ private Map.Entry<Key, X509Certificate> getExportCerticate() {
HashMap<String, Map.Entry<Key, X509Certificate>> mapCert = null;
try {
if (this.rdoBurpCA.isSelected()) {
KeyStore ks = BurpConfig.loadCACeart();
mapCert = CertUtil.loadFromKeyStore(ks, BurpConfig.getCAPassword());
KeyStore ks = BurpPreferences.loadCACeart();
mapCert = CertUtil.loadFromKeyStore(ks, BurpPreferences.getCAPassword());
} else {
CertificateItem item = getEditItem();
if (item == null) {
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/yagura/view/SendToItemDlg.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package yagura.view;

import burp.BurpExtension;
import yagura.model.SendToItem;
import java.io.File;
import java.util.List;
Expand Down Expand Up @@ -534,7 +533,6 @@ private void showSendToServerExtendDlg(boolean editMode) {
if (this.sendToServerExtendDlg.getModalResult() == JOptionPane.OK_OPTION) {
HttpExtendProperty prop = this.sendToServerExtendDlg.getProperty();
this.extendProperty.clear();
BurpExtension.helpers().outPrintln("getprop:" + prop.toString());
this.extendProperty.putAll(prop.getProperties());
}
}
Expand Down
65 changes: 33 additions & 32 deletions src/main/resources/yagura/resources/Resource.properties
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
extend.support.version=support is burp v2020 over
extend.start.caption=YaguraExtender start up!
extend.start.text=mouse right button click menu
extend.close.message=the will exit burp suite main and extension?
extend.exists.overwrite.message=%s file already exists. Does it overwrite?
extend.exists.overwrite.confirm=overwrite confirm
token.invalid.token=invalid token
token.invalid.algorithm=invalid algorithm
view.invalid.regex=invalid regex
view.search.regex=regex syntax error
view.sendto.tip=after the setting change, it burp extension reload.
view.sendto.add.empty=menu caption is empty.
view.sendto.add.target=The target server should be started at http:// or https://.
view.sendto.add.target.invalid.url=invalid target server url
view.sendto.add.proxyhost.empty=proxy host is empty.
view.responder.repmatch.empty=Math URL is empty.
view.responder.repmatch.regex=regex syntax error
view.responder.mime.empty=Conent-Type is empty.
view.matchreplace.remove=delete lists?
view.replace.burpimport=burp rule import, delete all lists?
view.replace.allclear=delete all lists?
view.replace.ok.name.empty=name is empty.
view.replace.ok.name.update=input name exists do you overwrite?
view.replaceitem.regex=regex syntax error
view.matchalert.regex=regex syntax error
view.logging.choosedir=the selected directory doesn't exist.
view.logging.notwrite.folder=can not write to the specified folder
view.encoding.message=burp version over 1.4, encoding mode is supported only by setting the default platform.
view.transcoder.chars.empty=the character is not chosen.
view.transcoder.format.error=illigal formt error
view.certificate.noselect=Certificate no selected.
view.certificate.add.certfile.notfound=Certificate file not found.
extend.support.version=support is burp v2020 over
extend.start.caption=YaguraExtender start up!
extend.start.text=mouse right button click menu
extend.close.message=the will exit burp suite main and extension?
extend.exists.overwrite.message=%s file already exists. Does it overwrite?
extend.exists.overwrite.confirm=overwrite confirm
token.invalid.token=invalid token
token.invalid.algorithm=invalid algorithm
view.invalid.regex=invalid regex
view.search.regex=regex syntax error
view.sendto.tip=after the setting change, it burp extension reload.
view.sendto.add.empty=menu caption is empty.
view.sendto.add.target=The target server should be started at http:// or https://.
view.sendto.add.target.invalid.url=invalid target server url
view.sendto.add.proxyhost.empty=proxy host is empty.
view.responder.repmatch.empty=Math URL is empty.
view.responder.repmatch.regex=regex syntax error
view.responder.mime.empty=Conent-Type is empty.
view.responder.match.invalid.url=invalid match url
view.matchreplace.remove=delete lists?
view.replace.burpimport=burp rule import, delete all lists?
view.replace.allclear=delete all lists?
view.replace.ok.name.empty=name is empty.
view.replace.ok.name.update=input name exists do you overwrite?
view.replaceitem.regex=regex syntax error
view.matchalert.regex=regex syntax error
view.logging.choosedir=the selected directory doesn't exist.
view.logging.notwrite.folder=can not write to the specified folder
view.encoding.message=burp version over 1.4, encoding mode is supported only by setting the default platform.
view.transcoder.chars.empty=the character is not chosen.
view.transcoder.format.error=illigal formt error
view.certificate.noselect=Certificate no selected.
view.certificate.add.certfile.notfound=Certificate file not found.
view.certificate.add.certfile.invalid=Unknown certificate format.
52 changes: 51 additions & 1 deletion src/test/java/yagura/model/AutoResponderTest.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package yagura.model;

import extension.helpers.HttpUtil;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.AfterAll;
Expand Down Expand Up @@ -90,9 +91,58 @@ public void testAutoResponderMultiFindItem() {
AutoResponderItem item = property.findItem("https://redirect/nnn");
assertNotNull(item);
}

}
}

/**
*/
@Test
public void testAutoResponderItem() {
{
AutoResponderItem autoResponderItem = new AutoResponderItem();
autoResponderItem.setMatch("redirect");
autoResponderItem.setSelected(true);
autoResponderItem.setRegexp(false);
autoResponderItem.setBodyOnly(true);
autoResponderItem.setReplace("reponse");
autoResponderItem.setContentType("text/html");
assertFalse(autoResponderItem.isRegexp() && !autoResponderItem.isValidRegex());
assertTrue(!autoResponderItem.isRegexp() && autoResponderItem.isValidRegex() && !HttpUtil.isValidUrl(autoResponderItem.getMatch()));
}
{
AutoResponderItem autoResponderItem = new AutoResponderItem();
autoResponderItem.setMatch("redirect");
autoResponderItem.setSelected(true);
autoResponderItem.setRegexp(true);
autoResponderItem.setBodyOnly(true);
autoResponderItem.setReplace("reponse");
autoResponderItem.setContentType("text/html");
assertFalse(autoResponderItem.isRegexp() && !autoResponderItem.isValidRegex());
assertFalse(!autoResponderItem.isRegexp() && autoResponderItem.isValidRegex() && !HttpUtil.isValidUrl(autoResponderItem.getMatch()));
}
{
AutoResponderItem autoResponderItem = new AutoResponderItem();
autoResponderItem.setMatch("http://www.example.com");
autoResponderItem.setSelected(true);
autoResponderItem.setRegexp(false);
autoResponderItem.setBodyOnly(true);
autoResponderItem.setReplace("reponse");
autoResponderItem.setContentType("text/html");
assertFalse(autoResponderItem.isRegexp() && !autoResponderItem.isValidRegex());
assertFalse(!autoResponderItem.isRegexp() && autoResponderItem.isValidRegex() && !HttpUtil.isValidUrl(autoResponderItem.getMatch()));
}
{
AutoResponderItem autoResponderItem = new AutoResponderItem();
autoResponderItem.setMatch("http\\://www\\.example\\.com");
autoResponderItem.setSelected(true);
autoResponderItem.setRegexp(true);
autoResponderItem.setBodyOnly(true);
autoResponderItem.setReplace("reponse");
autoResponderItem.setContentType("text/html");
assertFalse(autoResponderItem.isRegexp() && !autoResponderItem.isValidRegex());
assertFalse(!autoResponderItem.isRegexp() && autoResponderItem.isValidRegex() && !HttpUtil.isValidUrl(autoResponderItem.getMatch()));
}
}


}

0 comments on commit 9dbbd91

Please sign in to comment.