手把手教你如何挖洞:CVE-2025-25257 Fortinet FortiWeb 匿名 SQL 注入漏洞动态调试实战

手把手教你如何挖洞:CVE-2025-25257 Fortinet FortiWeb 匿名 SQL 注入漏洞动态调试实战

最近一直比较忙,有段时间没有发文章了。后台有人问我写这么多技术文章花了多少时间?我想说再忙挤一挤时间还是有的,关键在于有没有兴趣写;还有人问我怎么学挖洞,正好今天看到这个漏洞,发现比较简单适合拿来入门学习,所以就想从如何深入调试分析的角度,教一下新手怎样分析漏洞。

环境搭建

下载虚拟机环境并提取固件。通过 mount 挂载磁盘,核心文件结构位于 rootfs.gz

null

刚好 binwalk 发布了新版本 binwalkv3 ,采用 Rust 语言进行了代码重写,正好下载体验一把:

cargo install binwalk
binwalk -Me rootfs.gz

完美提取到了文件结构:

null

启动虚拟机后需要进行访问配置:

#配置管理接口
config system interface
edit port1
set ip *.*.*.* 255.255.255.0
set allowaccess ping https ssh http
next
end

#配置网关
config router static
edit 1
set gateway *.*.*.1
set device port1
next
end

#配置dns服务
config system dns
set primary 8.8.8.8
set secondary 8.8.4.4
end

v7.0.x 版本其实也可以通过配置命令进入底层 bash 。系统是 x86_64 结构,可以上传 gdbserver 进行调试。

漏洞分析

FortiWeb 启动的 Web 服务对应 /bin/httpsd 进程:

#netstat -anpt
tcp        0      0 :::8                    :::*                    LISTEN      2804/httpsd
tcp        0      0 :::43                   :::*                    LISTEN      2804/httpsd

# ps -l |grep 2804
S     0  2804     1 99.2m 26096 0:0   08:28 00:00:00 /bin/httpsd
S     0  4348  2804  4320   616 0:0   09:48 00:00:00 /bin/rotatelogs -t /var/log/apache_logs/access_log 1M
S     0  4349  2804 99.4m 16856 0:0   09:48 00:00:00 /bin/httpsd
S     0 10988  2804  100m 22184 0:0   12:23 00:00:00 /bin/httpsd
S     0 12267  2804  100m 21764 0:0   12:23 00:00:00 /bin/httpsd

加载 httpsd ,然后尝试搜索潜在注入触发点,可以找到多个 sql 语句:

null

get_fabric_user_by_token 函数为例,存在比较明显的字符串拼接:

null

向上搜索,在 fabric_access_check 函数中存在数据库操作,并且调用了 get_fabric_user_by_token ,输入参数来自于 header 头中的 Authorization

null

继续搜索 fabric_access_check 的调用点,定位到 sub_637E20 ,该函数调用了 Apache 框架中 URL 处理的钩子注册函数 ap_hook_handler

null

__int64 sub_637E20()
{
  ap_hook_handler(sub_637D60, 0LL, 0LL, 10LL);
  return ap_hook_handler(sub_637DC0, 0LL, 0LL, 10LL);
}

路由规则定义为 fabric_widget_detail-handler

null

可以在配置文件 httpd.conf 中找到对应的 URL 定义:

<Location ~ "/api/v[0-9]/fabric/widget/[a-z]+">
    SetHandler fabric_widget_detail-handler
</Location>

除此之外,还支持以下访问路由规则:

  • fabric_widget-handler -> /api/v[0-9]/fabric/widget

    null

<Location ~ "/api/v[0-9]/fabric/widget">
    SetHandler fabric_widget-handler
</Location>

  • fabric_device_status-handler -> /api/fabric/device/status

    null

<Location "/api/fabric/device/status">
    SetHandler fabric_device_status-handler
</Location>

/api/v1/fabric/widget/abc为例,构造验证请求。因为这里通过 sscanf 函数进行赋值, 所以字符串中不能含有空格,否则将会被截断,可以利用 /**/ 绕过:

null

调试确定字符串直接拼接到了SQL语句,导致出现注入漏洞:

img

完整调用栈如下:

null

至于漏洞利用过程这里就不讲了,主要教大家如何发现和分析调试漏洞。

修复方式

新版本的 sql 语句采用了预编译模式:

null

黑客&网络安全如何学习**

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我们和网安大厂360共同研发的的网安视频教程,之前都是内部资源,专业方面绝对可以秒杀国内99%的机构和个人教学!全网独一份,你不可能在网上找到这么专业的教程。

内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识,而且包含了中级的各种渗透技术,并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频,200多G的资源,不用担心学不全。
在这里插入图片描述
因篇幅有限,仅展示部分资料,需要见下图即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
————————————————

本文转自 https://blog.youkuaiyun.com/bdfcfff77fa/article/details/149438389?spm=1001.2014.3001.5502,如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值