forked from sechacking/Unicode
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Chora
authored and
Chora
committed
Jun 7, 2015
0 parents
commit 3bdde2a
Showing
42 changed files
with
3,514 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<classpath> | ||
<classpathentry kind="src" path="src"/> | ||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/> | ||
<classpathentry kind="output" path="bin"/> | ||
</classpath> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/bin |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<projectDescription> | ||
<name>Unicode</name> | ||
<comment></comment> | ||
<projects> | ||
</projects> | ||
<buildSpec> | ||
<buildCommand> | ||
<name>org.eclipse.jdt.core.javabuilder</name> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
</buildSpec> | ||
<natures> | ||
<nature>org.eclipse.jdt.core.javanature</nature> | ||
</natures> | ||
</projectDescription> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
eclipse.preferences.version=1 | ||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled | ||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 | ||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve | ||
org.eclipse.jdt.core.compiler.compliance=1.7 | ||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate | ||
org.eclipse.jdt.core.compiler.debug.localVariable=generate | ||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate | ||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error | ||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error | ||
org.eclipse.jdt.core.compiler.source=1.7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
package burp; | ||
|
||
import java.io.PrintWriter; | ||
import java.io.UnsupportedEncodingException; | ||
|
||
public class BurpExtender implements IBurpExtender, IHttpListener, | ||
IProxyListener, IScannerListener, IExtensionStateListener | ||
{ | ||
private IBurpExtenderCallbacks callbacks; | ||
private PrintWriter stdout; | ||
|
||
// | ||
// implement IBurpExtender | ||
// | ||
|
||
@Override | ||
public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) | ||
{ | ||
// keep a reference to our callbacks object | ||
this.callbacks = callbacks; | ||
|
||
// set our extension name | ||
callbacks.setExtensionName("Chora Unicode Decode"); | ||
|
||
// obtain our output stream | ||
stdout = new PrintWriter(callbacks.getStdout(), true); | ||
|
||
// register ourselves as an HTTP listener | ||
callbacks.registerHttpListener(this); | ||
|
||
// register ourselves as a Proxy listener | ||
callbacks.registerProxyListener(this); | ||
|
||
// register ourselves as a Scanner listener | ||
callbacks.registerScannerListener(this); | ||
|
||
// register ourselves as an extension state listener | ||
callbacks.registerExtensionStateListener(this); | ||
} | ||
|
||
// | ||
// implement IHttpListener | ||
// | ||
|
||
@Override | ||
public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequestResponse messageInfo) | ||
{ | ||
if(!messageIsRequest) { | ||
try { | ||
String oResponse = new String(messageInfo.getResponse(),"UTF-8"); | ||
char[] convtBuf=new char[2]; | ||
String nResponse = loadConvert(oResponse.toCharArray(),0,oResponse.length(),convtBuf); | ||
messageInfo.setResponse(nResponse.getBytes("UTF-8")); | ||
} catch (UnsupportedEncodingException e) { | ||
// TODO Auto-generated catch block | ||
e.printStackTrace(); | ||
} | ||
} | ||
} | ||
|
||
// | ||
// implement IProxyListener | ||
// | ||
|
||
@Override | ||
public void processProxyMessage(boolean messageIsRequest, IInterceptedProxyMessage message) | ||
{ | ||
} | ||
|
||
// | ||
// implement IScannerListener | ||
// | ||
|
||
@Override | ||
public void newScanIssue(IScanIssue issue) | ||
{ | ||
stdout.println("New scan issue: " + issue.getIssueName()); | ||
} | ||
|
||
// | ||
// implement IExtensionStateListener | ||
// | ||
|
||
@Override | ||
public void extensionUnloaded() | ||
{ | ||
stdout.println("Extension was unloaded"); | ||
} | ||
|
||
private String loadConvert (char[] in, int off, int len, char[] convtBuf) { | ||
if (convtBuf.length < len) { | ||
int newLen = len * 2; | ||
if (newLen < 0) { | ||
newLen = Integer.MAX_VALUE; | ||
} | ||
convtBuf = new char[newLen]; | ||
} | ||
char aChar; | ||
char[] out = convtBuf; | ||
int outLen = 0; | ||
int end = off + len; | ||
|
||
while (off < end) { | ||
aChar = in[off++]; | ||
if (aChar == '\\') { | ||
aChar = in[off++]; | ||
if(aChar == 'u') { | ||
// Read the xxxx | ||
int value=0; | ||
for (int i=0; i<4; i++) { | ||
aChar = in[off++]; | ||
switch (aChar) { | ||
case '0': case '1': case '2': case '3': case '4': | ||
case '5': case '6': case '7': case '8': case '9': | ||
value = (value << 4) + aChar - '0'; | ||
break; | ||
case 'a': case 'b': case 'c': | ||
case 'd': case 'e': case 'f': | ||
value = (value << 4) + 10 + aChar - 'a'; | ||
break; | ||
case 'A': case 'B': case 'C': | ||
case 'D': case 'E': case 'F': | ||
value = (value << 4) + 10 + aChar - 'A'; | ||
break; | ||
default: | ||
throw new IllegalArgumentException( | ||
"Malformed \\uxxxx encoding."); | ||
} | ||
} | ||
out[outLen++] = (char)value; | ||
} else { | ||
if (aChar == 't') aChar = '\t'; | ||
else if (aChar == 'r') aChar = '\r'; | ||
else if (aChar == 'n') aChar = '\n'; | ||
else if (aChar == 'f') aChar = '\f'; | ||
out[outLen++] = aChar; | ||
} | ||
} else { | ||
out[outLen++] = (char)aChar; | ||
} | ||
} | ||
return new String (out, 0, outLen); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package burp; | ||
|
||
/* | ||
* @(#)IBurpExtender.java | ||
* | ||
* Copyright PortSwigger Ltd. All rights reserved. | ||
* | ||
* This code may be used to extend the functionality of Burp Suite Free Edition | ||
* and Burp Suite Professional, provided that this usage does not violate the | ||
* license terms for those products. | ||
*/ | ||
/** | ||
* All extensions must implement this interface. | ||
* | ||
* Implementations must be called BurpExtender, in the package burp, must be | ||
* declared public, and must provide a default (public, no-argument) | ||
* constructor. | ||
*/ | ||
public interface IBurpExtender | ||
{ | ||
/** | ||
* This method is invoked when the extension is loaded. It registers an | ||
* instance of the | ||
* <code>IBurpExtenderCallbacks</code> interface, providing methods that may | ||
* be invoked by the extension to perform various actions. | ||
* | ||
* @param callbacks An | ||
* <code>IBurpExtenderCallbacks</code> object. | ||
*/ | ||
void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks); | ||
} |
Oops, something went wrong.