Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-2020-SSRF-via-URL-Parser-Differential — 演示通过 urllib.parse 与 requests 之间的 URL 解析器差异实现 SSRF 利用,包含易受攻击的服务和 PoC 漏洞利用脚本。 | Kitploit
工具/GitHubGitHub/george0papasotiriou/cve-2026-2020-ssrf-via-url-parser-differential
漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试学习与教育
GitHubgeorge0papasotiriou/cve-2026-2020-ssrf-via-url-parser-differential

CVE-2026-2020-SSRF-via-URL-Parser-Differential

演示通过 urllib.parse 与 requests 之间的 URL 解析器差异实现 SSRF 利用,包含易受攻击的服务和 PoC 漏洞利用脚本。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
11个月前尚未审核
分享

CVE-2026-2020 – URL 解析器差异导致的 SSRF

程序代码(Python)

root@kitploit:~
# vulnerable_service.py - Validates URL with urllib.parse, fetches with requests
from flask import Flask, request
import requests
import urllib.parse

app = Flask(__name__)

def is_allowed_url(url):
    parsed = urllib.parse.urlparse(url)
    # Only allow http://localhost and http://127.0.0.1
    return parsed.hostname in ('localhost', '127.0.0.1')

@app.route('/fetch')
def fetch():
    url = request.args.get('url')
    if not is_allowed_url(url):
        return "Blocked", 403
    # Fetch with requests (different parser)
    r = requests.get(url, timeout=5)
    return r.text

if __name__ == '__main__':
    app.run(port=5000)

CVE-2026-2020 – URL 解析器差异导致的 SSRF

Severity: High

概述

某服务使用 Python 的 urllib.parse.urlparse 来校验 URL,但随后使用 requests 库发起请求。两个解析器在处理特殊字符(如 @)时的差异,使攻击者能够绕过白名单并访问内部资源。

漏洞详情

  • 类型: 服务端请求伪造(SSRF)– 解析器差异
  • 影响: 访问内部服务、云元数据泄露。
  • 根本原因: urlparse 将 [email protected] 视为主机名为 localhost(@ 之前的部分是用户名),而 requests 将主机解析为 evil.com。

漏洞利用演示

  1. 启动存在漏洞的服务:
    root@kitploit:~
    pip install flask requests
    python vulnerable_service.py
    
  2. 运行漏洞利用程序:
    root@kitploit:~
    python exploit_ssrf_parser_diff.py
    
下载工具