周末在家闲着,也趁着这个时间来入门学习下路由器漏洞挖掘!网上查阅的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