XSS and CSRF vulnerabilities in Zyxel P660RT2 EE

Type securityvulns
Reporter Securityvulns
Modified 2014-08-26T00:00:00


Hello 3APA3A!

These are Cross-Site Scripting and Cross-Site Request Forgery vulnerabilities in Zyxel P660RT2 EE ADSL Router.

Affected products:

Vulnerable is the next model: Zyxel P660RT2 EE. ZyNOS Firmware Version: V3.40 (AXN.1). This model with other firmware versions also must be vulnerable. Zyxel ignored all vulnerabilities in this device and still didn't fix them.


Cross-Site Scripting (WASC-08):

Attack is going via parameter with arbitrary name (as existent, as fictitious, like with name "1" in this example and even without name in case of GET request).

Zyxel P660RT2 EE XSS-2.html

<body onLoad="document.hack.submit()"> <form name="hack" action="" method="post"> <input type="hidden" name="1" value="<body onload=alert(document.cookie)>"> </form> </body>

XSS attack can be made as via POST, as via GET request:

Cross-Site Request Forgery (WASC-09):

Lack of protection against Brute Force (such as captcha) also leads to possibility of conducting of CSRF attacks, which I wrote about in the article Attacks on unprotected login forms (http://lists.webappsec.org/pipermail/websecurity_lists.webappsec.org/2011-April/007773.html). It allows to conduct remote login.

Zyxel P660RT2 EE CSRF.html

<body> <form name="hack" action="" method="post"> <input type="hidden" name="hiddenPassword" value="ee11cbb19052e40b07aac0ca060c23ee"> </form> </body>

For the attack it's needed to know password (which can be got via XSS). And without knowing password it's possible to conduct Remote Login with using of ClickJacking attack (http://lists.webappsec.org/pipermail/websecurity_lists.webappsec.org/2011-October/008090.html) on login form.

Cross-Site Request Forgery (WASC-09):

This is DoS via CSRF. The more open pages, the more overload.

Zyxel P660RT2 EE CSRF-2.html

<body> <form name="hack" action="" method="post"> <input type="hidden" name="Sys_Refrash" value="00000001"> <input type="hidden" name="sysSubmit" value="Apply"> </form> </body>

Turn on refresh every 5 seconds via POST or GET request: (refresh is turned on every 5 seconds by default, it's just needed to open this page)


2014.04.12 - announced at my site. Later informed Zyxel, but vendor ignored. 2014.06.24 - disclosed at my site (http://websecurity.com.ua/7105/).

Best wishes & regards, MustLive Administrator of Websecurity web site http://websecurity.com.ua