周末在家闲着,也趁着这个时间来入门学习下路由器漏洞挖掘!网上查阅的D-Link系列的漏洞也不少,那就从D-Link路由器漏洞开始学习,顺便刚好也好跟着创宇paper学习,就当是学习笔记了!
一:准备工作
binwalk
:用来解开固件包- 路由器的固件:ftp://ftp2.dlink.com/PRODUCTS/
完成binwalk
的安装后,”binwalk -Me
固件包名称”来解相对应的固件。
二:漏洞挖掘
D-Link DIR-300 信息泄露漏洞
我们先下载D-Link DIR-300
的固件并且解固件
在解固件之后,进入 suashfs-root/www
文件夹,漏洞出现在/model/__show_info.php
文件。
这里看到已经禁止了$REQUIRE_FILE
的参数为var/etc/httpasswd
和var/etc/hnapasswd
。这样的话看起来我们是无法获取账号密码的。那如果我们从根路径开始配置httpasswd
的路径,那么是不是就可以绕过这个过滤了呢!
payload:(创宇)
1 | localhost/model/__show_info.php?REQUIRE_FILE=/var/etc/httpasswd |
这里设置REQUIRE_FILE=/var/etc/httpasswd
成功绕过上面的 if
判断,进行任意文件读取。
D-Link DIR-645信息泄露漏洞
同样该漏洞出现在 suashfs-root/htdocs
文件夹getcfg.php
文件由于过滤不严格导致信息泄露漏洞
该代码中 $GETCFG_SVC
没有任何过滤直接获取了 POST 传递过来的SERVICES
的值。如果$GETCFG_SVC
不为空,则进行文件读取。这里我们就可以读取存储此设备信息的DEVICE.ACCOUNT.xml.php
文件。
payload:
1 | http://localhost/getcfg.php |
说了这么久了,实战走一波吧!
进入D-Link DIR-645的web登录页面,则显示需要用户与密码则可登录,那么接下来我们来获取他们
利用payload打一波
果然,我们可以清楚地看到账号密码,继续登录验证,登录成功
三:参考
【1】.http://www.devttys0.com/wp-content/uploads/2010/12/dlink_php_vulnerability.pdf