Skip to content

Commit e865679

Browse files
committed
README modified
1 parent d3af75a commit e865679

3 files changed

Lines changed: 29 additions & 12 deletions

File tree

JavaDeserializationScanner.png

11.5 KB
Loading

README.md

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,34 @@
11
# Java Deserialization Scanner
2-
Java Deserialization Scanner is a Burp Suite plugin aimed at adding active and passive detection of Java deserialization issues. It was written by Federico Dotta, a Security Expert at @ Mediaservice.net.
2+
Java Deserialization Scanner is a Burp Suite plugin aimed at detect and exploit Java deserialization vulnerabilities. It was written by Federico Dotta, a Security Expert at @ Mediaservice.net.
33

4-
Java Deserialization Scanner uses custom payloads generated with a modified version of "ysoserial", tool created by frohoff and gebl. The original tool (https://github.com/frohoff/ysoserial) generate payloads for the execution of commands on the system, using the Runtime.exec function. Usually, however, it is not possible to see the output of the command and consequently it is not simple to write a scanner based on this kind of function. The modified version (https://github.com/federicodotta/ysoserial) adds the generation of payloads that execute a syncronous sleep function, very useful to check for the presence of the Java deserialization issues in an automated way.
4+
The plugin is made up of three different components:
5+
1. Integration with Burp Suite active and passive scanner
6+
2. Manual tester, for the detection of Java deserialization vulnerabilities on custom insertion points
7+
3. Exploiter, that allow to actively exploit Java deserialization vulnerabilies, using frohoff ysoserial (https://github.com/frohoff/ysoserial)
58

6-
Currently, the passive checks of the Java Deserialiation Scanner reported the presence of serialized Java objects in the HTTP requests (in raw format or encoded in Base64) and the active checks actively scan for the presence of weak deserialization functions in conjuction with the presence of the following weak libraries:
9+
# Author
10+
- Federico Dotta, Security Expert at @ Mediaservice.net
11+
12+
# 1 - Integration with Burp Suite active and passive scanner
13+
Java Deserialization Scanner uses custom payloads generated with a modified version of "ysoserial", tool created by frohoff and gebl, to detect Java deserialization vulnerabilities. The original tool (https://github.com/frohoff/ysoserial) generate payloads for the execution of commands on the system, using the Runtime.exec function. Usually, however, it is not possible to see the output of the command and consequently it is not simple to write a scanner based on this kind of function. The modified version adds the generation of payloads that execute a syncronous sleep function, very useful to check for the presence of the Java deserialization issues in an automated way.
14+
15+
Currently, the passive checks of the Java Deserialiation Scanner reported the presence of serialized Java objects in the HTTP requests (in raw format or encoded in Base64 or in Ascii Hex) and the active checks actively scan for the presence of weak deserialization functions in conjuction with the presence of the following weak libraries:
716

8-
1. Apache Commons Collections 3 (up to 3.2.1), with two different chains
17+
1. Apache Commons Collections 3 (up to 3.2.1), with three different chains
918
2. Apache Commons Collections 4 (up to 4.4.0), with two different chains
10-
3. Spring (up to 4.2.2)
19+
3. Spring (up to 4.2.2), with two different chains
1120
4. Java 6 and Java 7 (<= Jdk7u21) without any weak library
21+
5. Hibernate 5
22+
6. JSON
23+
7. Rome
1224

1325
In the test folder there are some simple Java server applications that can be used to test the plugin. Every application employ a different vulnerable Java library.
1426

15-
With the new version is also possible to execute manual tests with custom insertion points (both using raw payloads or base64 encoded payloads) using a dedicated tab.
27+
# 2 - Manual tester
28+
The plugin offer a dedicated tab to launch the detection with the sleep payloads on custom insertion points, in order to check the Java deserialization vulnerabilities in particular situations in which strange entry points do not allow the detection with the scanner. The results of the manual tester can be inserted between Burp Suite scanner results.
1629

17-
# Author
18-
- Federico Dotta, Security Expert at @ Mediaservice.net
30+
# 3 - Exploiter
31+
After that a Java deserialization vulnerability has been found, it is possible to actively exploit the issue with the Exploiting dedicated tab. The plugin allow to configure the path of frohoff ysoserial and use this tool to generate the exploitation payloads. The exploiter, as the other components, supports three different encodings for the payloads: raw, Base64 or Ascii Hex.
1932

2033
# Screenshot
2134
![alt tag](https://raw.githubusercontent.com/federicodotta/Java-Deserialization-Scanner/master/JavaDeserializationScanner.png)
@@ -25,12 +38,16 @@ With the new version is also possible to execute manual tests with custom insert
2538
2. Install Java Deserialization Scanner from the BApp Store or follow these steps:
2639
3. Download the last release of Java Deserialization Scanner
2740
4. Open Burp -> Extender -> Extensions -> Add -> Choose JavaDeserializationScannerXX.jar file
28-
5. The plugin does not need any configuration to work, but is possible to disable active checks from the dedicated tab
2941

3042
# User Guide
31-
1. After installation, the Java Deserialization Scanner active and passive checks will be added to the Burp Suite scanner
43+
1. After installation, the Java Deserialization Scanner active and passive checks will be added to the Burp Suite scanner (it is possible to disable the checks in the options tab)
3244
2. Simply run the active or passive scanner in order to check also for weak Java deserialization
33-
3. With the dedicated tab is also possible to execute manual testing by setting the injection point and executing the attack with all the payloads
45+
3. With the dedicated tab "Manual testing" it is possible to set the injection point and executing the attack with all the payloads
46+
4. With the dedicated tab "Exploiting" it is possibile to actively exploit Java deserialization vulnerabilites
47+
5. The "Configuration" contains all the needed configuration for the correct working of the plugin
3448

3549
# Improving Java Deserialization Scanner
3650
In order to improve this extension, please report any issue founded in the plugin. Furthermore if you want report me any disclosed Java library usefull for the exploitation of this weakness and, if I have the time, I will add an active check for it in my plugin.
51+
52+
# Disclaimer
53+
This software has been created purely for the purposes of academic research and for the development of effective defensive techniques, and is not intended to be used to attack systems except where explicitly authorized. Project maintainers are not responsible or liable for misuse of the software. Use responsibly.

src/burp/BurpExtender.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1209,7 +1209,7 @@ public void executeManualTest(int encoding) {
12091209
result = result + "<ul>";
12101210

12111211
resultAreaManualTesting.setText("<p><b>SCANNING IN PROGRESS</b></p>"
1212-
+ "<p>Scanning can go on approximately from 1 second up to 60 seconds, based on the number of vulnerable libraries founded</p>");
1212+
+ "<p>Scanning can go on approximately from 1 second up to 3 minutes, based on the number of vulnerable libraries founded</p>");
12131213

12141214
while (iter.hasNext()) {
12151215

0 commit comments

Comments
 (0)