[+]redrain//**/

汪汪汪

Hacking the D-Link DSP-W110 Smart Plug

Hacking the D-Link DSP-W110 Smart Plug

-- Embedded Systems hacking

author:redrain**


在14年,/dev/ttyS0的Craig 大神曾经写过一篇hackingD-Link的DSP-W215型号智能插座的文章,并且again again的花式hacking

Hacking the D-Link DSP-W215 Smart Plug

Hacking the DSP-W215, Again

Hacking the DSP-W215, Again, Again

Hacking the DSP-W215, Again, Again, Again

前前后后花式点草了D-Link的DSP系列智能插座,唔,其实还有一款器系列的智能插座也是有问题的,漏洞刚被捅出来,做一篇简要的分析


影响设备

  • D-Link DSP-W110 (Rev A) - v1.05b01

  • 但极有可能还存在其他相似固件的产品中,比如呆湾的fitivision

hacking

注:我这篇文章中用到的解包的固件是别人已经解好的,因为实在没有找到当时版本的固件也买不起这个插座,如果你富裕,可以考虑赞助我,蛤蛤~

由于DSP-W110采用的是lighttpd,而之后的补丁暴露了一个问题,就是存在sqli,而且因为lighttpd是支持无身份验证登录的,所以很方便的给攻击者打开了大门

漏洞成因比较简单,http请求中cookie的内容未经过任何处理,直接传递给了sprintf()调用并为了验证身份入库查询,因此形成了一个sqli

但是,很好玩的是,这个sql查询还传递给了popen(),那么,貌似除了进行sqli,还能直接做命令执行

和之前Craig大神分析的W215一样,这款W110同样没有什么直观的web界面,它只能通过D-Link开发的移动app进行管理,所以使用的必然是HNAP(Home Network Administration Protocol)协议

解包固件后(这破玩意儿我实在是没找到当时版本的固件,而且又买不起。。。所以这里用的是别人已经解好的固件),我们发现在request.c中

lighttpd在处理http请求的时候,他把请求中的cookie字段完整的负值给了hnap_cookie

image

之后,cookie的值直接在mod_hnap.c中被getHNAPCookie函数处理

image

轻松跟一下变量发现这个值直接被sprintf()拼接成了sql语句并直接查询了QAQ

image

如此就造成了第一个漏洞,sqli(这个数据库是sqlite的)

然而,这还不是关键,最好玩的是接下来做的处理,直接把拼好查询给popen了(WTF!!!)

image

这特么是谁做的开发!整一个就是反面教材!真是b了狗了QAQ

好的,给出RCE的POC:

curl --cookie "terribleness='\`echo "ztzissb"\`" 192.168.1.3

###感谢解包固件的不认识的死老外darkarnium

###本文向/dev/ttyS0致敬QAQ

~~最后,我是渣渣,求带~~

Tagged in: hacking, embedded devices, smart plug
comments powered by Disqus