首页
社区
课程
招聘
[原创]D-Link DIR 645 远程命令执行漏洞
发表于: 2018-3-3 08:45 8450

[原创]D-Link DIR 645 远程命令执行漏洞

2018-3-3 08:45
8450

我这几天看了个D-Link DIR 645的漏洞,花了一段时间看PoC,这里简单分享下。遗憾的是我想用binwalk提取这个路由器的文件系统,总是提取失败。漏洞是通过构造对路由器serviec.cgi的POST请求中的data段来达到远程执行命令的目的。这个漏洞据说在615和815中也能实现,但是我试了几台都没有成功,只有645中成功复现了。Cr0n1c最早给出了PoC。链接在这里。

https://packetstormsecurity.com/files/145859/dlinkroutersservice-exec.txt

我们来看看这个代码具体做了什么。

首先,它利用了一个比较旧的漏洞获得了路由器的管理员密码。这个漏洞编号是CWE-200。链接在这里。

https://vuldb.com/?id.7843

这个漏洞就是说我们向路由器上的 /getcfg.php发出请求时,路由器会回复一个包含密码的页面。相关代码如下:

我找到了一个D-Link DIR 645 并且试了下。


我们还可以通过这样的命令行指令获得密码。

不过,值得一提的是,这款路由器的user用户登陆是不需要密码的。第二个漏洞就是我们的远程命令执行了。要利用这个漏洞,首先得用刚刚获得的密码来创建一个session。

我尝试了下,可以成功。

原来的PoC有一些小问题,我改进了下,可以在python2.7下运行。有兴趣的朋友可以去我的github下载。链接在这里。

https://github.com/samohyes/Exploitation/tree/master/D-Link_DIR_645


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2018-3-3 08:46 被samohyes编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 6303
活跃值: (2051)
能力值: ( LV7,RANK:150 )
在线值:
发帖
回帖
粉丝
2
请问如何在qemu里面模拟启动路由器的服务。类似于你的里面一个ip:8888  这样的形式  。我现在能够调试的都是cgi  这样的代码,  如何从web层面搭建起来并进行测试还不知道,希望能不吝赐教。
2018-3-22 23:00
0
雪    币: 763
活跃值: (323)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
CWE是漏洞分类,CWE-200貌似是信息泄露类漏洞...
2018-3-23 09:13
0
雪    币: 207
活跃值: (356)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
买个二手645,不贵
2018-5-9 18:37
0
游客
登录 | 注册 方可回帖
返回
//