SSD Advisory – DblTek Multiple Vulnerabilities
Credit to Author: SSD / Maor Schwartz| Date: Tue, 21 Nov 2017 12:14:39 +0000
Want to get paid for a vulnerability similar to this one?
Contact us at: sxsxdx@xbxexyxoxnxdxsxexcxuxrxixtxy.xcom
See our full scope at: https://blogs.securiteam.com/index.php/product_scope
Vulnerabilities summary
The following advisory describes 2 (two) vulnerabilities found in DblTek webserver.
DBL is “specialized in VoIP products, especially GoIPs. We design, develop, manufacture, and sell our products directly and via distributors to customers. Our GoIP models now cover 1, 4, 8, 16, and 32-channel in order to meet the wide range of market demands. All our products are priced very attractively and probably the lowest in the market. Because of the price and performance, GoIPs have been widely adopted by system integrators, VoIP service providers, and many other business and individual users.”
The vulnerabilities found are:
- Pre-authentication Information Disclosure
- Command Execution
It is possible to combine the 2 vulnerabilities and gain unauthenticated remote command execution.
Credit
An independent security researcher has reported this vulnerability to Beyond Security’s SecuriTeam Secure Disclosure program
Vendor response
DblTek has released patches to address those vulnerabilities.
Vulnerabilities details
User controlled input is not sufficiently sanitized and can trigger Local File Inclusion.
By sending GET request to /dev/mtdblock/5 an attacker can download the configuration file that contain admin password:
After we got the admin password, we can send a POST request to change_password.csp and trigget the second vulnerability.
User controlled input is not sufficiently sanitized when pass to change_password.csp. An attacker can inject script containing malicious commands in a configuration variable and execute it.
1 2 3 4 | POST /default/en_US/change_password.csp Content–Type: application/x–www–form–urlencoded Authorization: Basic ###BASE64(“admin”, ###LEAKED_PASSWORD###)### level=user&user_level_enable=on&passwd=<%%25call system.exec: ###MALICIOUS_COMMAND###> |
Proof of Concept
Unauthenticated Remote Command Execution: