
Burpsuite Plugin For AES Crack
git clone https://github.com/jas502n/Burp_AES_Plugin/
cd ~/github/Burp_AES_Plugin/AESDecode
vi src/main/java/burp/BurpExtender.java
mvn install
[INFO] --- maven-install-plugin:2.4:install (default-install) @ AESCrack ---
[INFO] Installing /root/github/Burp_AES_Plugin/AESDecode/target/AESCrack-1.0-SNAPSHOT.jar to /root/.m2/repository/com/jas502n/AESCrack/1.0-SNAPSHOT/AESCrack-1.0-SNAPSHOT.jar
[INFO] Installing /root/github/Burp_AES_Plugin/AESDecode/pom.xml to /root/.m2/repository/com/jas502n/AESCrack/1.0-SNAPSHOT/AESCrack-1.0-SNAPSHOT.pom
[INFO] Installing /root/github/Burp_AES_Plugin/AESDecode/target/AESCrack-1.0-SNAPSHOT-jar-with-dependencies.jar to /root/.m2/repository/com/jas502n/AESCrack/1.0-SNAPSHOT/AESCrack-1.0-SNAPSHOT-jar-with-dependencies.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.627 s
[INFO] Finished at: 2020-06-18T00:17:09+08:00
[INFO] ------------------------------------------------------------------------

나만의 Burp Suite 플러그인 작성 방법 https://t0data.gitbooks.io/burpsuite/content/chapter16.html
특정 플랫폼을 무차별 대입하는 BurpSuite 확장 개발 https://gorgias.me/2017/03/29/%E5%BC%80%E5%8F%91BurpSuite%E6%89%A9%E5%B1%95%E7%88%86%E7%A0%B4%E6%9F%90%E5%B9%B3%E5%8F%B0/
Burpsuite API Javadoc https://portswigger.net/burp/extender/api/
CoolCat이 작성한 AesDecode 플러그인, 메뉴 페이지 암호화·복호화 및 무차별 대입 지원 https://github.com/TheKingOfDuck/ https://blog.gzsec.org/archives/
c0ny1의 jsEncrypter https://github.com/c0ny1/jsEncrypter
<dependencies>
<!-- https://mvnrepository.com/artifact/net.portswigger.burp.extender/burp-extender-api -->
<dependency>
<groupId>net.portswigger.burp.extender</groupId>
<artifactId>burp-extender-api</artifactId>
<version>1.7.22</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
IBurpExtender — 공식적으로 implements 필수
IIntruderPayloadProcessor — Intruder의 무차별 대입 기능을 사용해야 하므로 implements 필요
public class BurpExtender implements IBurpExtender, IIntruderPayloadProcessor {
private static IExtensionHelpers helpers;
public final static String extensionName = "AESCrack"; // 插件名称
public final static String version = "1.0";
public final static String AES_IV = "1234567812345678"; // 设置 AES IV 值
public final static String AES_KEY = "key12345key67890"; // 设置 AES KEY 值
public static String encryptAES(String paramString1, String paramString2)
throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, UnsupportedEncodingException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException {
SecretKeySpec key = new SecretKeySpec(paramString2.getBytes(), "AES");
IvParameterSpec iv = new IvParameterSpec("your-iv-value".getBytes()); //set iv
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(1, key, iv);
return helpers.base64Encode(cipher.doFinal(paramString1.getBytes()));
}
processPayload 메서드 (AES KEY 설정)
public byte[] processPayload(byte[] currentPayload, byte[] originalPayload, byte[] baseValue) {
String dataParameter = helpers.bytesToString(currentPayload);
String AesEncodeStr = null;
try {
AesEncodeStr = encryptAES(dataParameter, "your-aes-key"); //set aes key
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (InvalidAlgorithmParameterException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return helpers.stringToBytes(AesEncodeStr);
}
Intellij-idea에서 maven 프로젝트를 컴파일하는 방법 https://blog.csdn.net/u013044029/article/details/71681891
컴파일 및 실행에 성공하면 target 디렉터리에 aes.jar 파일이 생성된다.
의존성이 없는 것(파일 용량 작음) AESCrack-1.0-SNAPSHOT.jar
의존성이 있는 것(파일 용량 큼) AESCrack-1.0-SNAPSHOT-jar-with-dependencies.jar
Burpsuite에서 플러그인을 로드할 때는 의존성이 없는 AESCrack-1.0-SNAPSHOT.jar을 사용하면 된다.

