手把手教你如何挖洞:CVE-2025-25257 Fortinet FortiWeb 匿名 SQL 注入漏洞动态调试实战
最近一直比较忙,有段时间没有发文章了。后台有人问我写这么多技术文章花了多少时间?我想说再忙挤一挤时间还是有的,关键在于有没有兴趣写;还有人问我怎么学挖洞,正好今天看到这个漏洞,发现比较简单适合拿来入门学习,所以就想从如何深入调试分析的角度,教一下新手怎样分析漏洞。
环境搭建
下载虚拟机环境并提取固件。通过 mount
挂载磁盘,核心文件结构位于 rootfs.gz
:
刚好 binwalk
发布了新版本 binwalkv3
,采用 Rust
语言进行了代码重写,正好下载体验一把:
cargo install binwalk
binwalk -Me rootfs.gz
完美提取到了文件结构:
启动虚拟机后需要进行访问配置:
#配置管理接口
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
语句:
以 get_fabric_user_by_token
函数为例,存在比较明显的字符串拼接:
向上搜索,在 fabric_access_check
函数中存在数据库操作,并且调用了 get_fabric_user_by_token
,输入参数来自于 header
头中的 Authorization
:
继续搜索 fabric_access_check
的调用点,定位到 sub_637E20
,该函数调用了 Apache
框架中 URL
处理的钩子注册函数 ap_hook_handler
:
__int64 sub_637E20()
{
ap_hook_handler(sub_637D60, 0LL, 0LL, 10LL);
return ap_hook_handler(sub_637DC0, 0LL, 0LL, 10LL);
}
路由规则定义为 fabric_widget_detail-handler
:
可以在配置文件 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
<Location ~ "/api/v[0-9]/fabric/widget">
SetHandler fabric_widget-handler
</Location>
-
•
fabric_device_status-handler
->/api/fabric/device/status
<Location "/api/fabric/device/status">
SetHandler fabric_device_status-handler
</Location>
以/api/v1/fabric/widget/abc
为例,构造验证请求。因为这里通过 sscanf
函数进行赋值, 所以字符串中不能含有空格,否则将会被截断,可以利用 /**/
绕过:
调试确定字符串直接拼接到了SQL
语句,导致出现注入漏洞:
完整调用栈如下:
至于漏洞利用过程这里就不讲了,主要教大家如何发现和分析调试漏洞。
修复方式
新版本的 sql
语句采用了预编译模式:
黑客&网络安全如何学习**
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
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,如有侵权,请联系删除。